07/09/24 19:00:56 +Pu3qWa3
>>362
今日会社でその結論にたどり着きました。
諦めてFFFTPでやりとりしようと思います。
家では自動化できるだけマシと思いつつ……。
367:名無し~3.EXE
07/09/25 09:21:29 qp05KsMz
FFFTPでも簡単なことならコマンドラインで指定できるけどね。
ncftpを使ったほうがいいかも。
368:名無し~3.EXE
07/09/29 12:59:58 rhAGaWpx
ファイル名にAとBが含まれているのを選択してmoveしたいのですが、どうしたらいいのでしょうか?
*A*B*と*B*A*と書く方法しか知らないので、ご教授をお願いします。
369:名無し~3.EXE
07/09/29 19:13:18 ONh9+IA8
WindowsのCUI、バージョンアップするたびに強化され、GUI経由でしか出来ないことが減ってきて
管理しやすくなってきたけど、Windows Server 2008ではついにエクスプローラシェルの排除まで
出来るようになるらしい。
URLリンク(www.atmarkit.co.jp)
370:名無し~3.EXE
07/09/29 19:18:04 ONh9+IA8
この勢いで次バージョンあたりでキャラクタコンソールのみのインストールオプションも付けてほしい。
371:名無し~3.EXE
07/09/29 23:04:46 QieKgrdm
>>366
めっちゃ遅レス、かつ>>367もちょこっと言ってる事だけど、Win標準ftp.exeより
高機能なFTPクライアントは結構ある。
例(シェアはシラン)
URLリンク(www.abk.nu)
⇒使わなかったけど、if文とかつかえて面白そう
ftp-for-win32.zip
⇒UNIXの移植版 PASVが使えるけど、mget *でバグがあったような
URLリンク(www.geocities.jp)
⇒1ライナーで使えるのでバッチファイルとかに組み込みやすい。
URLリンク(www.hi-ho.ne.jp)
⇒WSH等で使える。
自分もFTP操作自動化で最近悩んでたので、ついで。
372:名無し~3.EXE
07/09/29 23:16:34 dWv53Cay
>>368
AとBはそれぞれ一個ずつなのか?それとも重複してもいいのか?例 aaabbaaa.txt
また、aとbは文字通りの一文字なのか?それともwordなのか?
まあ、forとfindstrを組み合わせて(必要ならパイプでデータ受け渡し)、正規表現でヒットさせろよ
373:名無し~3.EXE
07/09/30 02:06:32 i+tF55N1
>>372
ありがとうございます。重複してもいいです。
具体的にはファイル名に「福田康夫」と「国会」の2つを順不同で含むファイルをC:\福田康夫\国会へ移動したいのです。
名前が100人分、案件が各20件で計2000の振り分け条件で振り分けたいのですが、フリーソフトを使うとCPU使用率が100%に張り付くので
パッチ処理にトライしている次第です。
ご教授の方法でトライします。結果を報告できるようがんばります。
374:名無し~3.EXE
07/09/30 02:53:16 D3bkO61x
ほんの一例
dir/b | findstr 福田康夫 | findstr 国会 >tmp.txt
for /f "delims=" %%I in ('type tmp.txt') do move "%%~I" c:\福田康夫\国会
del tmp.txt
375:373
07/09/30 05:04:24 /1yS/Qr0
>>374
今、酔っぱらっていますが、すっげー感激。
明日、素面になったらやってみます。
マジ、感激してます。ありがとう御座います。
376:名無し~3.EXE
07/10/05 08:18:44 ysb+mHrv
HDD内のデーターに、操作するとCRC冗長エラー、を出すファイルがあったので
そのドライブに対して、CHKDSK ドライブ: /R をかけたら
昨夜から10時間以上やって29%しか進みせん
タスクマネージャー/プロセスでchkdsk.exeが仕事をしている様子も全然なし。(0%)
1時間前には6%だったので完全には死んではいないと思うのですが…。
(6%で長時間停止->動き出す->29%でまた停止)
これはもうドライブが死亡間近と考えて新しい外付けにデータを退避させることも考えているのですが、
現在やっているCHKDSK と コマンドプロンプトを中断させるのは危険でしょうか?
377:名無し~3.EXE
07/10/05 08:42:31 /YK8Gma1
いつ中断してもいいよ
378:名無し~3.EXE
07/11/01 15:30:20 5dS7zZtr
hosyu
379:名無し~3.EXE
07/11/04 07:04:04 V+2wa1CI
今日初めて知ったこと
C:\>set /a 7*7
49
C:\>_
変数名書かなければ、計算出来たのか。
380:名無し~3.EXE
07/11/05 00:18:42 lgskxUHc
C:\>set /a x=7*7
49
381:名無し~3.EXE
07/11/06 16:25:05 +zVUig6T
バッチの中だと出ないのー
382:名無し~3.EXE
07/11/06 21:22:54 8wMnx2Yd
変数名書こうと書くまいと
プロンプトからなら答えが出るし
バッチからだと出ない
383:名無し~3.EXE
07/11/07 14:38:44 TznxkJFx
質問させてください。
ドライブレターの変更ってどうやったらよいでしょうか?
ハードディスクのレターがAになってるので、Cに変えようと思ったのですが、
コマンドがわからず・・・
384:名無し~3.EXE
07/11/07 14:52:48 BlzrMWmf
カレントディレクトリを変更したいのか、
システム的にドライブレターを変更したいのか、
どっち?
カレントディレクトリの変更ならこのスレ的だろうけど、
システム的にドライブレターを変更したいならここじゃないと思うよ
385:名無し~3.EXE
07/11/07 15:09:18 JFoxjGSq
>>383
HDDがAってどんな環境だ。
PC-9821にWin98でも入れてんのなら、基本的に再インストールしかないと思うよ。
システムの入ったドライブは簡単には移動できないから。
386:名無し~3.EXE
07/11/07 18:04:53 b7Qady4y
Aドライブがハードディスクなら十中八九PC-9821だろ。
387:名無し~3.EXE
07/11/07 18:10:09 TznxkJFx
そうす。
9821す。
HDDをCにしたいって事です。
でもドライブレター変更て、コマンドではできなかったでしたっけ?
なんか、駄目くさい気がしてきました・・・
388:名無し~3.EXE
07/11/07 18:41:55 fWyPbxkF
>>387
インスコ時、ATオプションをつけるとHDDがCになったような希ガス。
外部コマンドのSUBSTでやりくりするとか。
うろ覚えなのでゲイツにでも聞いてくれ。
389:名無し~3.EXE
07/11/07 19:05:03 3xhNtlCa
XPなら、コマンドでドライブレターの変更はできるが
それでもシステム、ブート、ページングのボリュームのドライブレターは変更できないよ
390:名無し~3.EXE
07/11/07 20:43:48 9JvKdpgS
物持ち良いな、98かぁ
391:名無し~3.EXE
07/11/07 22:46:47 TznxkJFx
>>388
ちょっとその方法試してみます。
なんかダメポい気もするので、駄目だったらおとなしくAで使っときます(^^
392:名無し~3.EXE
07/11/07 23:28:26 XEtIoW0A
HDDをCにするとA,Bが当然FDDになるんだけど
1FDDの場合間違ってBにアクセスするとブラックスクリーンになるんだよね~
害はないけど。
393:名無し~3.EXE
07/11/14 01:13:59 iPd4DuNf
2003のコマンドプロンプトで入力途中ついTabキー押したら
ファイル名が補完されて驚いたよ
なんだいLinuxに負けず劣らず便利じゃねぇか
ついでに dir の代わりに ls で
ディレクトリ内容も表示してくれるといいなぁ
394:名無し~3.EXE
07/11/14 01:25:55 TY8Yz81u
doskey ls=dir
395:名無し~3.EXE
07/11/14 01:29:57 PZU5+JwT
>>393
doskey ls=dir /w $*
396:名無し~3.EXE
07/11/14 02:32:20 M6m1VNvq
>>393
powershell入れたらいいと思うよ
397:名無し~3.EXE
07/11/15 01:36:03 wRAvcu5i
>>394-396
ありがとー
lsでディレクトリが表示されるのは非常に快適だ
わかっちゃいるんだがつい手がlsと打ってしまうからね
Powershellってのもなかなか良さそうだ
今度時間のある時に入れてみよう
398:名無し~3.EXE
07/11/24 20:12:56 77fPn1BF
>>392
subst b: c:\
399:名無し~3.EXE
07/11/29 20:34:39 9IgcnDtW
エクセルのファイルを右クリックすると印刷というメニューがでて
それを選択すると印刷ができますが、
同様の挙動をDOSコマンドから得ることはできまつか?
400:名無し~3.EXE
07/11/29 22:37:36 83NzChea
rundll32.exe MSHTML.DLL,PrintHTML エクセルのファイル
401:名無し~3.EXE
07/11/30 04:00:36 tDpWdtj8
マルチでつか?
URLリンク(forums.microsoft.com)
402:名無し~3.EXE
07/11/30 12:46:09 tDpWdtj8
>>399
お探しのものはこれでつか?
URLリンク(www.microsoft.com)
403:名無し~3.EXE
07/12/02 00:11:24 xxMGDSmd
スクリプト使わずにバッチファイルでできんのか?
404:名無し~3.EXE
07/12/02 09:46:33 kErETC/K
バッチファイルってバッチスクリプトを記述したファイルだと思ってたんだけど違うんですね
405:名無し~3.EXE
07/12/02 23:19:31 vAy7xVi5
「バッチスクリプト」って単語を20年パソコン使ってきて初めて聞いた
406:名無し~3.EXE
07/12/02 23:26:41 Y59hieEz
ヘルプには以下のようにある。
>バッチ プログラムまたはスクリプトとも呼ばれるバッチ ファイルを使用すると、
>簡単にルーチン作業または繰り返し作業を行うことができます。
>バッチ ファイルとは、純粋なテキスト ファイルで、1 つ以上のコマンドが含まれており、
>ファイル名拡張子として .bat または .cmd が付いています。
>コマンド プロンプトでそのファイル名を入力すると、Cmd.exe によって
>ファイルに記述されている順番でコマンドが実行されます。
>バッチ ファイルには、任意のコマンドを記述できます。for、goto、if などの特定のコマンドを使用すると、
>バッチ ファイル内のコマンドを条件に応じて実行できます。
>たとえば、if コマンドでは、条件の結果に基づいてコマンドが実行されます。
>そのほかのコマンドを使って、入出力を制御したり、ほかのバッチ ファイルを呼び出すこともできます。
>ほとんどのアプリケーションが返す標準エラー コードは、エラーが発生していない場合は 0、
>エラーが発生した場合は 1 (またはそれ以上の値) です。
>特定のエラー コードの意味を調べるには、アプリケーションのヘルプ ドキュメントを参照してください。
407:名無し~3.EXE
07/12/03 19:35:11 RVtK1L0R
確かにあまり使わないけど、解説本等では目にするよ。
「バッチスクリプト」って。
そもそもスクリプトじゃ何のスクリプトか分からんだろ。
408:名無し~3.EXE
07/12/03 23:25:21 UMhrU1NK
利用可能なコマンド一覧を表示するコマンド無いですか?
409:名無し~3.EXE
07/12/03 23:39:22 uge6z7Xo
ん?helpじゃいかんのか?
それともパスの通ってるところにある全実行ファイルってこと?
410:名無し~3.EXE
07/12/04 00:39:55 Y8Lltu0y
某むゎかふぃーのサポート(しかも法人相手の有償サポ)は
「ウィルスが検知された時にバッチプログラムを実行する機能」が
正常にバッチを実行しない旨、問い合わせをしたら
「EXEファイルしかサポートしてません」とホザきやがったよ。
411:名無し~3.EXE
07/12/04 00:44:09 z2LH0I31
WindowsはEXEファイルしか実行できないんだからそれで十分だろ
412:名無し~3.EXE
07/12/04 00:47:38 K6BIfF3b
てゆーか
「ウィルスが検知された時にバッチプログラムを実行する機能」
と銘打ってるんなら、ダメだろw動かなきゃ
413:名無し~3.EXE
07/12/11 18:01:11 m8423oGD
Windows XPで
cmd.exeを実行したときのコンソールウィンドウの編集モードを
デフォルトで簡易編集モードに設定する方法はないのでしょうか?
ショートカットや、同じ名称のウィンドウなら個別で設定できるのですが
そうじゃなく常に簡易編集モードにする方法が知りたいです。
参考(役に立たなかった説明)
URLリンク(support.microsoft.com)
WinXP ではコマンド プロンプトの簡易編集モードが既定で無効
414:名無し~3.EXE
07/12/11 18:18:39 hxLMQTTa
レジストリに設定しておけばいい
[HKEY_CURRENT_USER\Console]
"QuickEdit"=dword:00000001
415:名無し~3.EXE
07/12/11 21:40:52 m8423oGD
>>414
お!すばらしいです。
既にカスタマイズしたパラメータも下のキーにあるので
これで上書きすればよいですね
416:名無し~3.EXE
07/12/14 15:39:39 EG7UyQah
E:\WORK\hoge>dir /b /o:n
hoga.txt
hoge.txt
ho'''''ge.txt
hogee.txt
ho-----gee.txt
hogo.txt
なにやら不思議なソート結果に…何これ?
417:名無し~3.EXE
07/12/15 20:32:48 J3SQ8eGY
こんにちは、質問させてください。
DOSコマンドでアプリケーションを終了したいのですが、
TASKKILLコマンドを使用して、
taskkill/im realplay.exe/f/t
とやっても、「'taskkill'は内部コマンドまたは外部コマンド、操作可能な・・・」
といったメッセージが返ってきます。
コマンドの問題箇所、もしくは他のコマンドがありましたら、
教えてくださいませ、よろしくおねがいいたします。
418:名無し~3.EXE
07/12/15 20:59:33 wVP0mofE
taskkill /?
419:名無し~3.EXE
07/12/15 21:07:05 83Egwg+h
OSは?2000とかならtaskkillはないよ
サポート ツールにkillがある
420:名無し~3.EXE
07/12/15 21:09:00 dfEri7hZ
XP Homeにもない。
421:名無し~3.EXE
07/12/15 21:21:03 Uqxi5nec
OSはXP HOMEです・・・
サポートツールってMICROSOFTのサイトですか?
422:名無し~3.EXE
07/12/15 21:28:37 dfEri7hZ
>>421
taskkill簡易版というのがある。
XP Professionalのtaskkillコマンドに似せた形式のコマンド。
URLリンク(www.vector.co.jp)
423:名無し~3.EXE
07/12/15 21:34:47 lBxshq29
exitをSysExにして送信すればよい
424:名無し~3.EXE
07/12/15 22:39:05 5rIoihq9
tskill/?
425:名無し~3.EXE
07/12/15 23:11:01 L+mv8qPX
>>422
なるほど、こんなのあるんですね、ありがとうございました!!
426:名無し~3.EXE
07/12/16 02:07:48 4FMgTbfK
>>424は無視ですかそうですか
427:名無し~3.EXE
07/12/17 23:08:28 BFIgzHr0
2000 Support Toolsのkill.exeやtlist.exはMSからダウンロードできない?
428:名無し~3.EXE
07/12/19 20:20:25 AdtoV95K
出来る
429:名無し~3.EXE
07/12/26 00:33:00 rbjdjGQz
\aaaa\bbbb\
↓
\aaaa\bbbb
のような最後の\だけ取ることってどうやれば出来ますか?
430:名無し~3.EXE
07/12/26 00:47:37 HdyjgLd3
if %var:~-1% equ \ set var=%var:~0,-1%
だけどルート(C:\)の場合とかあるから、無条件にとるのは止めたほうがいいぞ。
どっちかというと逆に必ず\で終わるようにするロジックに変えたほうがいい。
if %var:~-1% neq \ (set var=%var%\)
431:名無し~3.EXE
07/12/26 18:48:14 Jz+7hx4Q
しかし誘導厨とはウザいものだな
432:名無し~3.EXE
07/12/26 19:00:57 low3Iayr
向こうのスレとの住みわけ範囲がよく分からない
何話したいんだろうな、向こうは
forとifのオプションの話しか出来ないような気も
433:名無し~3.EXE
07/12/26 22:59:07 RLSVoyeP
んなこたぁ無い
住み分けとかじゃなく、単に捉え方の差だと思う
本来、両方で存在してても全く問題ないと思うんだが
434:名無し~3.EXE
07/12/26 23:06:03 low3Iayr
うん、まぁ住民の大半が被ってるとは思うんだけど
外部コマンドに頼る、又は実用的なものはココ
文法的なこと、ロジカルな問題がアッチ、ってとらえ方であってる?
435:名無し~3.EXE
07/12/26 23:10:01 50mfR39P
いや。
別に誘導する必要はまったく無い。
区分けも不要。
質問は各個撃破でおk
436:名無し~3.EXE
07/12/27 11:03:08 X9+WkMgT
ごみ箱にファイルがあるかないかを聞きたいのですが
XPで隠しファイルを表示にしてもrecycleフォルダがありません。
レジストリから取得でもなんでもいいのですが
どうやったらいいのでしょうか。
437:名無し~3.EXE
07/12/27 13:01:44 2TeHSSTX
ごみ箱を空にするバッチファイルとVBScript
URLリンク(www.vector.co.jp)
が参考になるんじゃね?
438:名無し~3.EXE
07/12/27 15:19:09 X9+WkMgT
>>437
ありがとうございます。
batファイルというかバッチコマンドだけというのは
無理そうですね・・・。
439:名無し~3.EXE
07/12/27 18:27:49 3yzeEI0b
つぎ誘導されてきたらそのまま誘導し返そうか
440:名無し~3.EXE
07/12/27 20:54:45 poBRtKPI
やめとけ。荒れるだけ
441:名無し~3.EXE
07/12/28 01:19:39 f9N/29cr
基地害が誘導してきたものはそのまま誘導し返してok
442:名無し~3.EXE
07/12/28 01:32:06 yjdMHYge
みんな、スルー力を高めようぜ
443:名無し~3.EXE
07/12/28 07:44:57 ElkJaKCc
向こうってどのスレ?好奇心で覗きにいきたんだけど。
444:名無し~3.EXE
07/12/28 10:13:04 70uw9AsQ
【.cmd】 バッチファイルスクリプト %2 【.bat】
スレリンク(tech板)
445:名無し~3.EXE
07/12/28 16:31:06 yjdMHYge
どっちのスレで何聞いてもいいと思うんだが。
状況知らない人に説明すると、向こうのスレには基地外が
一人いて(こっちも見てるはず?)なんでもかんでも、こっちに
誘導しようとしている。
446:名無し~3.EXE
07/12/28 21:45:28 LlF9YfFL
>>438
できるよ
スレリンク(tech板:75番)
みたいに
447:名無し~3.EXE
08/01/18 23:20:48 j9d+PS7f
「ブリーフケース」を作ろうとしてレジストリで .bfc という拡張子のところの
ShellNewのCommandが
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\syncui.dll,Briefcase_Create %2!d! %1
であることから、次のようなコマンド
C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\system32\syncui.dll,Briefcase_Create "D:\Tmp" ブリーフケース"
をコマンドプロンプトから入れてみましたが、メッセージなどは出ませんでしたが、
ブリーフケースは作成されませんでした。このコマンドラインをどのように修正すれ
ばいいでしょう?よろしくお願いします。
448:名無し~3.EXE
08/01/19 00:38:57 sSEzOzL6
↑なんかデスクトップにブリーフケースが出来たよ
449:名無し~3.EXE
08/01/19 08:24:46 /uF4QVUs
>>448
やってみてくださり、ありがとうございました。いまわたしも気がつきました。
確かにデスクトップにできてました。なんで D:\Tmp にできないのか・・・・・、
どこをどう直せばいいのでしょう??
450:名無し~3.EXE
08/01/19 09:27:24 qyNXQNI1
C:\WINDOWS\system32\rundll32.exe C:\WINDOWS\system32\syncui.dll,Briefcase_Create 1 C:\Documents and Settings\user\デスクトップ\新規ブリーフケース
451:名無し~3.EXE
08/01/19 09:54:47 /uF4QVUs
>>450
おお、この 1 が必要だったんですね!わかりました。ありがとうございました!!
452:名無し~3.EXE
08/01/20 19:37:05 WxOVD6GN
パンツ入れかよ
453:名無し~3.EXE
08/01/20 20:49:39 KKGepza4
>452
今の人はブリーフケース知らんかもな。
確かWin98辺りまではあったよ。そういう機能が。
454:名無し~3.EXE
08/01/20 21:45:54 /whP3Oqq
95~Vistaまで、すべて入ってるような気がするが・・・・
455:名無し~3.EXE
08/01/20 22:27:18 T0Gjpk8k
俺は存在自体忘れてたがな
456:名無し~3.EXE
08/01/20 23:58:23 nLJrkLME
名前は知ってるけど使い方は知らん
457:名無し~3.EXE
08/01/21 01:01:11 B/YHJUBh
いつのまにかにclipなんてコマンドが加わってるんだね
458:名無し~3.EXE
08/01/21 01:39:44 fDwpgtYX
>>453
いま西暦何年か言えますか?
459:名無し~3.EXE
08/01/21 02:55:37 Phaws+EF
Win98以前は初期状態のデスクトップにブリーフケースが置かれていたんだよ。
2000になって置かれなくなった。
今でも新規作成から作ることはできるけど、98以降は影が薄くなったのは確か。
460:名無し~3.EXE
08/01/21 08:24:29 Gr9XxhBx
昔、おじいさんがゲイツかなんかに
「わしは何年もつかっとるが未だにブリーフケースの使い道がワカランのじゃ」
みたいに言うジョークがあったな
探してみたけど見つからない、コピペじゃないのかな
461:名無し~3.EXE
08/01/25 00:18:26 8TpBX6Fi
Vista で、Linux の su や sudo に当たるコマンドはありますか?
コマンドプロンプトで操作している時に、一時的に管理者としてコマンドを実行したいのですが…
462:名無し~3.EXE
08/01/25 00:41:00 Bm6HNp9A
>>459
Vistaでも相変わらず作れるしな。誰も使わないのに。
463:名無し~3.EXE
08/01/25 03:11:50 u/EeCoz3
>>461
runas
464:名無し~3.EXE
08/01/25 19:52:16 Bm6HNp9A
>463
ありがとうございます。
でもこのコマンド、びみょ~に使い勝手悪いなぁ…
利用して、自分好みにバッチ組んでみます。
465:名無し~3.EXE
08/01/28 18:20:29 a60OcUKA
---
rem @echo off
rem Filename: inFiles.bat
rem ドラッグandドロップで 特定ファイルのディレクトリ-リストを 取得する 目論見.
DIR /N %~DP1%~NX1 >%~DP1dir-%~NX1.txt
---
これを 作業中フォルダに持ち込み 使用してます.
ドロップファイルなしでも 思惑通り 作業中フォルダ(バッチ本体があるので)
フォルダ全部のリストを取れる
ショートカット"inFiles.LIK"を作成し 作業中フォルダに持ち込み
ドロップファイルなしで 使うと バッチ本体がある場所のディレクトリを
バッチ本体がある場所に 作成する.
当然といえば 当然で "そういう仕様だ" と言われれば それまでなんですが
ショートカット使用でも
バッチ本体を置いた時 と同様の 動作をする方法って ありますか?
466:名無し~3.EXE
08/01/28 18:32:38 hAUaBHMX
>>465
何がしたいのか、よくわからないんだけど、
具体的に、どんな場面で便利になるの?
467:名無し~3.EXE
08/01/28 18:45:32 saC0IqhL
>これを 作業中フォルダに持ち込み 使用してます.
>ドロップファイルなしでも 思惑通り 作業中フォルダ(バッチ本体があるので)
>フォルダ全部のリストを取れる
そんなはずないけど
>ショートカット"inFiles.LIK"を作成し 作業中フォルダに持ち込み
>ドロップファイルなしで 使うと バッチ本体がある場所のディレクトリを
>バッチ本体がある場所に 作成する.
そんなはずないけど
なので
>ショートカット使用でも
>バッチ本体を置いた時 と同様の 動作をする方法って ありますか?
意味ない
468:名無し~3.EXE
08/01/28 19:01:55 a60OcUKA
>>466
>具体的に、どんな場面で便利になるの?
ん......ン 別段 便利には なりませんねw
でも 実行ファイルの ショートカットが 本体と違う挙動を するのって 気になりません?
エラーを悪用してるから 大きなことは 云えませんがw
469:名無し~3.EXE
08/01/28 21:33:41 saC0IqhL
>でも 実行ファイルの ショートカットが 本体と違う挙動を するのって 気になりません?
そんなはずないけど
470:名無し~3.EXE
08/01/28 21:49:04 F8A0PSQA
98の質問してよかですか?
スクリプトを起動するバッチファイルがあります。
スクリプトはjavascriptで作ってあり、標準入力を扱いたいので、インタプリタはcscriptを使っております。
こんな、奴でつ
---------- hoge.bat start ----------
@echo off
cscript %Windir%\hogehoge.js //Nologo %1 %2 %3 %4
---------- hoge.bat end -----------
で、ですね。
これに標準入力からデータ渡すとなぜかインタプリタがwscriptに変わってしまいます。
こんな感じ。
c:>c:\windows\hoge.bat <input.txt
(このあと、hogehoge.jsがwscript経由で起動する)
原因をご存知の方いらっしゃるでしょうか。
ちなみに、この現象はwindows98の時のみ起き、windowsXPでは起こりません。
471:名無し~3.EXE
08/01/28 21:56:33 qpO8RM3B
ショートカットの作業フォルダに%0
472:名無し~3.EXE
08/01/28 22:00:27 F8A0PSQA
470です。
なんか、色々違ってました。スマン
---------- hoge.bat start ----------
@echo off
cscript //Nologo %Windir%\hogehoge.js %1 %2 %3 %4
---------- hoge.bat end -----------
こうだ。
そして、wscriptが起動すんじゃなくて
パラメタが渡っていないようだ。
c:>c:\windows\hoge.bat /a /b <input.txt
'/a' '/b'がhogehoge.jsに届いていない。
バッチファイルの中でechoすると渡ってる風なんだけどなぁ。
473:名無し~3.EXE
08/01/29 01:07:24 HWw+z0EO
スレリンク(tech板:158番)
474:名無し~3.EXE
08/01/29 16:44:24 HWw+z0EO
command /c c:\windows\hoge.bat /a /b <input.txt
475:名無し~3.EXE
08/01/30 16:21:48 KYI6wfbS
スレ違いかも知れませんが、コマンドプロンプトで無線LANの再設定?について詳しい方いませんか?
476:名無し~3.EXE
08/01/30 17:57:54 Ho6Pm+4w
>>475
ipconfig /renew とかの話?
無線パラメータの設定をコマンドラインでできるアダプタなんてあるのか?
477:名無し~3.EXE
08/01/30 20:01:10 KYI6wfbS
>>476
詳しくないんで何ともなんですけど、先月無線LANでPCを使用していた時ブレーカーが落ちて、ルーターの電源が切れて無線LANが使えなくなったんです。
それで色々試せど復帰しなくて、プロバイダーのサポセンに電話したんですけど長々と待たされて、繋がると私が色々試した事を2~3回再度させられて、結局コマンドプロンプトで一度通信をリセットする?プログラムを指示してもらって復帰したんです。
でも先週また同じトラブルがあって、またサポセンに電話するのも億劫で・・・と言う感じです。
長文すみません。
478:名無し~3.EXE
08/01/30 20:15:41 yq8XtZP7
質問です
コマンドプロンプトのrename(ren)で
aaa123.txt
bbb123.txt
ccc123.txt
の三つのファイルを
123を変えないまま
xxx123.txt
yyy123.txt
zzz123.txt
一度で変更するにはどう打てばいいでしょうか?
479:名無し~3.EXE
08/01/30 20:50:24 w7DIOj03
ren aaa123.txt xxx123.txt|ren bbb123.txt yyy123.txt|ren ccc123.txt zzz123.txt
480:名無し~3.EXE
08/01/31 01:03:19 eBoblFAp
>>477
初心者スレ池
481:名無し~3.EXE
08/01/31 10:58:16 Zu1cJ4hG
>>480
わかりました、すみません
482:名無し~3.EXE
08/01/31 19:06:40 CwN/BF0B
>>474
遅レスすまそ。
command /c で出来た。アリガトン
command.comが関係しとるとは思わなんだ。
NT系列では必要の無い操作だから
wowの仕様が微妙に違うんだな。
勉強になったよ。
483:名無し~3.EXE
08/02/01 01:45:58 zNm7t6Hy
9xなら JS2COM 使えば?
484:名無し~3.EXE
08/02/01 21:38:02 uYx0CpkT
>>483
ウホッ。こりゃ便利。
アリガトン
485:名無し~3.EXE
08/02/07 01:18:24 JJWunJvn
1つの親フォルダの中に数百個のファイルと、
それと同名のフォルダの組が並列に入っています。
これらのファイルを、その同名のフォルダに移動するには
どうしたらよいでしょうか?
aaa.txt bbb.txt ccc.txt ..... aaa.folder bbb.folder ccc.folder.....
がありaaa.txtをaaa.folderの中へ
bbb.txtをbbb.folderの中へという感じで全て移動したいんです。
あと関係ないんですけど
mklink /Dとmklink /Jは何が違うんですか?
486:名無し~3.EXE
08/02/07 09:48:44 i1Y+9IDF
for/?
487:名無し~3.EXE
08/02/07 19:35:04 JJWunJvn
>>486
ありがとうございます!できました!
488:名無し~3.EXE
08/02/16 15:23:13 bHZJ+HSt
バッチファイルを作ってそれに対象のファイルをD&Dすることで作業を半自動化しています。
でっすが困ったことにバッチファイルの中に%1を記述して、そこにD&Dしたファイルへの
絶対パスを格納しようとしてもその中に全角スペースがあると正常に動作しないのです。例えば
C:\temp\aabbcc.txt
みたいなファイルをD&Dする分には問題ないのですが
C:\temp\aa bb cc.txt
みたいなファイルをD&DするとC:\temp\aaまでが第一引数
そのあとのbbとcc.txtはそれぞれ第二、第三引数として扱われてしまうのです。
コマンドプロンプトに直接記述したときは間に全角スペースがあっても全体で一つのパスとして
扱われますし、バッチファイル内の記述するときに引数を""で囲んでも解決しませんでした。
どうすればよろしいでしょうか?
489:名無し~3.EXE
08/02/16 17:23:01 gHdxG/Ym
うそだろ、そんなわけない
490:名無し~3.EXE
08/02/16 17:41:52 gHdxG/Ym
ごめん、ほんとだ。ドロップハンドラの障害だから、
VBSFileのドロップハンドラをbatfileに指定してやればいいよ。
491:名無し~3.EXE
08/02/16 17:45:29 bHZJ+HSt
>>489
自分もそう思いたいところなんですが・・・
@echo off
echo %1
echo %~1
echo "%1"
pause
試しに上記の内容の.batファイルを作ってそこに前述の
C:\temp\aa bb cc.txtをD&Dしてみたところ、表示結果が
C:\temp\aa
C:\temp\aa
"C:\temp\aa"
続行するには何かキーを押してください . . .
でした、友人にもお願いして試してみてもらったところ同じ状況みたいです@XP SP2
492:名無し~3.EXE
08/02/16 18:29:02 bHZJ+HSt
>>490
入れ違いになってしまいましたが、ありがとうございます。
これは一種のバグ・・・でいいんでしょうか?
問題は自分がVBSのことが全くわからないことですね orz
493:名無し~3.EXE
08/02/16 19:00:54 gHdxG/Ym
>問題は自分がVBSのことが全くわからないことですね orz
VBSはかんけーねー
VBSFileのドロップハンドラを借用するだけ
あるいは、回避策
c:\tempをc:\temp folderにすれば?
494:名無し~3.EXE
08/02/16 19:58:43 gHdxG/Ym
ドロップハンドラはかんけーねーみたい
cmd.exeの引数分離の障害仕様だね
495:名無し~3.EXE
08/02/16 20:13:55 bHZJ+HSt
>>493-494
どうもありがとうございます。ドロップパンドラはググっても理解できません
でしたが、これで踏ん切りがついたので回避策を使うことにします。
仕様か、なんて全てを包み込むような包容力のある言葉なんd(ry
496:名無し~3.EXE
08/02/28 23:52:46 hFNRGAEX
Vistaのコマンドプロンプトに以前のようにファイルをドロップしたいのですが
ウラワザとかありませんか?
497:名無し~3.EXE
08/02/29 00:32:17 le6aVPk+
URLリンク(support.microsoft.com)
498:名無し~3.EXE
08/02/29 00:41:18 fnZx8Tum
>>497
具体的にどのセキュリティ強化が原因で使えなくなってるかわかりますか?
「指が滑った時」対策だったら泣ける。
499:名無し~3.EXE
08/02/29 01:41:43 MYE21105
てかそんなこと出来たのか。
500:名無し~3.EXE
08/03/01 21:32:02 2GYI1cga
無線LANをつかっているのですがしょっちゅう回線が切れるので困ってます。
ネットワークの修復をするとつながるようになるので、
>>217を参考に以下の修復バッチファイルを作ったのですが、
これをファイル出力させずに行うことはできますか?
---IP_recovery.bat-----------------------
ping 192.168.11.1 -n 1 > C:\b.txt
for /f "SKIP=3" %%A in (C:\b.txt) do if %%A NEQ Destination (echo %%A) else (
shut
ping localhost -n 5
connect
ping localhost -n 15
ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns)
del C:\b.txt
--------------------------------------
501:名無し~3.EXE
08/03/01 21:32:41 2GYI1cga
回線が切れている時のb.txt---------------
Pinging 192.168.11.1 with 32 bytes of data:
Destination host unreachable.
Ping statistics for 192.168.11.1:
Packets: Sent = 5, Received = 0, Lost = 5 (100% loss),
--------------------------------------
502:名無し~3.EXE
08/03/01 21:52:32 INNPJ5X6
XPならErrorLevelで。
503:名無し~3.EXE
08/03/01 23:48:41 kJ7OZr7A
for /f "SKIP=3" %%A in ('ping 192.168.11.1 -n 1 ') do if %%A NEQ Destination (echo %%A) else (
504:500
08/03/02 01:54:27 W3Xs2/Nf
>>502-503
思ったように動かすことができました。
ありがとうございます。
情報を元にネットで調べて、上2行を以下に変えたら動作がすっきりしました。
ping 192.168.11.1 -n 1 | find "Destination host unreachable"
IF ERRORLEVEL 1 GOTO eine
IF ERRORLEVEL 0 GOTO Nutteloos
505:名無し~3.EXE
08/03/03 22:32:53 uMn3e7q3
質問があります。
set n=1
set a%n%=5
とするとa1という変数に5を代入できますよね?
でもif文でa%n%と値を比較しようとすると上手くいきません
ifで比較する前に
set /a hikaku=a%n%
とやって
if %hikaku%==5 echo sex
これは通るのですが
何か馬鹿っぽいですが他によい方法はありませんか?
/iオプションを試してみてもうまくいきません…
506:名無し~3.EXE
08/03/03 23:03:40 criNZiK5
つ 遅延環境変数
507:名無し~3.EXE
08/03/04 00:32:51 JYsrlTMe
できました。感動です
理屈はよくわからないですが大括弧小括弧みたいなイメージでいいんですか
とりあえずバッチでオセロ作るのを目標にがんばっています
508:名無し~3.EXE
08/03/04 00:36:48 Xq8J3uel
つ遅延展開
509:名無し~3.EXE
08/03/04 00:39:21 VMDLSFIe
>>507
> 大括弧小括弧みたいなイメージ
全然違う。
即時展開される変数は、バッチファイルを読み込んだ時点で置換されてるので
実行時は変数ではなく定数になっている。
510:名無し~3.EXE
08/03/04 00:57:01 JYsrlTMe
ん~
たとえばA%n%という抽象的な変数に
具体的にn=1,2,3…
と繰り返し値を与えて
A1,A2,A3…という変数は作れるし
それぞれに値もセットできます。遅延設定なしで。
なのでバッチを読み込んだ時点で云々というのは腑に落ちないんですが。
511:名無し~3.EXE
08/03/04 01:03:31 /r2l60M6
1行実行するごとにバッチファイルを読み込みなおしてるんだよ。
だから自己書き換え型のbatも作れる。
512:名無し~3.EXE
08/03/04 04:36:25 Xq8J3uel
遅延展開を使わずに
if A%n%==6 echo six
てできるか?
513:名無し~3.EXE
08/03/04 10:52:48 oHAbhod6
お札の都市伝説発見!
URLリンク(upload.wikimedia.org)
画像が表示されたら右クリック、Iを押す→Pを押す
514:名無し~3.EXE
08/03/04 17:21:53 JYzbQmWK
しへいのいんさつははんざいですよ
515:名無し~3.EXE
08/03/04 17:44:24 r5xViyTY
普通に印刷できちゃったんだけど
516:名無し~3.EXE
08/03/04 17:49:28 DEYMSbAn
>>513
すばらしい。新種のソーシャルウイルスだな
517:名無し~3.EXE
08/03/05 04:23:16 OmO7J7IA
できるのとやってはいけないのは別・・・
コピー機やオフセット印刷機はプロテクトがあって出来ないらしいけど。
518:名無し~3.EXE
08/03/08 13:02:22 t1Hf5Bsj
コマンドプロンプトで押したキーをそのまま取得する方法はないですよね?
PAUSEで押したキーを変数にセットするような。
519:名無し~3.EXE
08/03/08 13:31:31 ghC3PRgD
set /p AAA=なんか入力
520:名無し~3.EXE
08/03/08 15:53:09 qQq+YK5u
通りすがりです。
set にオプションあったのかあ。勉強になりました。
521:名無し~3.EXE
08/03/08 18:00:16 t1Hf5Bsj
すいません
set /p オプションは当然ながら使い倒しているわけですが
毎回エンター押さないといけないじゃないですか?
PAUSEはエンター押さなくても先に進むから
PAUSEで(なくても良いが)押したキーを取得する方法があるのかなってことです
でもなさげですね
522:名無し~3.EXE
08/03/08 18:37:48 TBGhFK6F
choice.exeを使え
523:名無し~3.EXE
08/03/12 13:53:29 EvP5WuBC
>>517 線画で肖像とかがあったりすると誤認することがあるらしいな
524:名無し~3.EXE
08/03/12 20:36:34 ea+zIKS9
すごく初歩的な質問なのですが
set wao=wa o
if %wao%==%wao% echo wao
って設定するとスペースが邪魔をしてエラーになりますが
この手のエラーを出さないための方針としては
何が一番良いんでしょうか。
スペースを""ではさむと回避できるのですが
根本的な解決になっていないような気がして…
525:名無し~3.EXE
08/03/12 22:16:39 ujpaACV/
>>513
何が起きるの?
プリンタないから確認できん。
526:名無し~3.EXE
08/03/12 22:24:33 wj+st/27
>>525
ご飯が一日3度、定期的に出ます
527:名無し~3.EXE
08/03/13 00:17:06 0XIdaW4C
set wao=wa^ o
if "%wao%"=="%wao%" echo wao
528:名無し~3.EXE
08/03/13 00:24:53 eYgnqYL9
>527
ありがとうございます…
これでまた頑張れます
529:名無し~3.EXE
08/03/13 02:09:43 xekHwBEI
setlocal enabledelayedexpansion
set wao=wa o
if !wao!==!wao! echo wao
530:名無し~3.EXE
08/03/14 21:41:09 Fj5KIEt7
パイプで渡された文字列を環境変数にSETするバッチを書くことって可能?
ECHO HOGE | XSET.BAT で%XSET%にHOGEが入るような。
もしくはそういう補助ツールってあります?ぐぐっても見つからんかった。
結構よくやる処理なので、手軽に使えるようにコマンド化できればな、と。
531:名無し~3.EXE
08/03/14 22:12:27 k/rPIO78
for /f %%x in ('more') do set xset=%%x
532:名無し~3.EXE
08/03/14 23:00:50 Fj5KIEt7
>531
ありがとう。
試しにCMD.EXEからECHO HOGE | XSET.BATをやってみたところ
SET XSET=HOGEは実行されるけど、バッチから戻ってくるときに
%XSET%の内容が消去(初期化?)されちゃってるみたいで
ECHO %XSET%しても%XSET%と表示される。
単にSET=HOGEとだけ書いたバッチをCMD.EXE上から実行した場合は
戻ってきても保持されてるんだけど。
なんでだ??
よう分からん…。
533:名無し~3.EXE
08/03/14 23:15:53 k/rPIO78
パイプの前後はそれぞれ子プロセスで実行される
534:名無し~3.EXE
08/03/14 23:24:24 k/rPIO78
for /f %%x in ('ECHO HOGE') do set xset=%%x
535:名無し~3.EXE
08/03/14 23:42:36 Fj5KIEt7
>533
つまりバッチで>530を実現するのは無理ってことですか?
>534
530が出来ればバッチの中でそれやらなくても良いのにな
ってのがスタートだったので。
536:名無し~3.EXE
08/03/15 03:52:41 1v13GlOD
>もしくはそういう補助ツールってあります?ぐぐっても見つからんかった。
それは子プロセスで実行される
537:名無し~3.EXE
08/03/15 19:03:43 /rgREz5R
すいません、行き詰ってしまったので助けてください。ワイルドカードを使って
指定ディレクトリ以下から条件に合致したファイル名を選び出し、それを
環境変数にセットするという方法まではわかりました。
例)
for /f "delims=" %%A in ('dir /b "C:\temp\test AAC PID * DELAY *ms.aac"') do (
set aac_audio_source="C:\temp\%%A"
)
これを一歩進めて、ディレクトリから選び出したファイル名の中のさらに
一部分の文字列だけを選び出して環境変数にセットしたいのです。
具体的には上記の例のうち二番目のワイルドカード、msの直前にくる文字列です。
この部分はDGIndexという動画関係ソフトによって出力されたファイルのうち、音声のファイルが
映像に対してどれだけの遅延をしているかを示しているものなのですが
当然DGIndexの処理が完了するまでこの値はわかりません。
(それなりに時間がかかるのでバッチの最初の段階で処理させ、その後上記のディレクトリ検索を行う)
実際に出力されたファイルの当該箇所には三桁以下の半角英数が書かれています、加えて
その数字の前には"-"(マイナス半角)がついているケースとそうでないケースがあります。
例) -254 112
ただし半角二桁の数字は見たことがあるのですが、半角一桁や逆に半角四桁以上
が実際にファイルに書き加えられることがあるのかは未確認のためわかりません。
こうのような操作はバッチファイルで完結することは可能でしょうか?
538:名無し~3.EXE
08/03/15 19:13:01 /rgREz5R
書き忘れましたが・・・もしDGIndexに"test"という名前のファイルを入力した場合
それによって出力されるのが上で例に挙げたファイル名の"test AAC PID * DELAY *ms.aac"です。
つまり"AAC PID * DELAY *ms.aac"の部分がDGIndexによって元のファイル名に追加される
部分であり、ここはワイルドカードで代替している箇所を除けば固定です。
539:名無し~3.EXE
08/03/15 20:29:29 1v13GlOD
set/?
540:名無し~3.EXE
08/03/17 19:17:48 4TC48wem
>>538
"delims="とは区切りなしで「test AAC PID * DELAY *ms.aac」全部を%Aに入れることを意味する。
バラバラで入れたければ区切り文字を設定してトークンで必要なものだけ取り出す。
for /? をちゃんと読むべし。
541:名無し~3.EXE
08/03/20 01:44:51 ZfuqeoxK
すいません、非常-に遅くなりましたが>>537-538です。
>>539-540
目を通してみたのですが、delims=で扱えるのは単一の文字だけですよね。
文字列が扱えるのであればDELAY とms.aacを指定してtoken=2とかに
してやればよさそうですが、なにぶんファイル名が変動するのでそうもいかないようです。
じゃぁsetの方で制御しようと考えた場合、DELAY とms.aacの間の文字数が
固定であれば%PATH:~-10%のような後ろから文字数をカウントしていって
抜き出し、さらにもう一度その抜き出した文字列を%PATH:~0,4%のように頭から
カウントして抜きだせばいいのですが、前述のようにこの抜き出したい文字列は
場合によって多少文字数が変動します。
理想を言えば、「"DELAY "と"ms.aac"の間に挟まれた文字列」という条件で
抜き出せるのが一番いいのですけれども・・・
542:名無し~3.EXE
08/03/20 02:09:01 vljTMuMh
>>541
1文字ずつ切り出して比較すりゃいいじゃん。
543:名無し~3.EXE
08/03/20 02:59:37 TH4V7lbY
要点を2行くらいで言えない?
544:名無し~3.EXE
08/03/20 05:21:26 N1GwNiEt
"test AAC PID * DELAY *ms.aac"(testと*は変動)から
*(-を含む数字,桁数変動)を抜き出して環境変数にsetしたい。
545:名無し~3.EXE
08/03/20 05:26:18 N1GwNiEt
>539な気がする。
546:名無し~3.EXE
08/03/20 08:46:33 YOGH1HJm
*内にmが無いならスペースとmを区切り文字にして4番と6番をゲットすればいい。
547:名無し~3.EXE
08/03/20 09:28:52 sC923knp
testが空白やmを含まないとは限らないと思うよ。
>537で"test AAC PID * DELAY *ms.aac"は既に
%aac_audio_source%に取得できてるわけだから
set aac_audio_source=%aac_audio_source:*DELAY =%
set aac_audio_source=%aac_audio_source:ms.aac=%
とかやって削ること考えた方が良いんじゃないかな。
これもtestがDELAY を含んでたらアウトだけど。
548:名無し~3.EXE
08/03/20 10:16:11 YOGH1HJm
こういうのはWSH使って正規表現で一発でやりゃいいのによ。
549:名無し~3.EXE
08/03/20 13:38:49 TH4V7lbY
これにて一件落着
550:名無し~3.EXE
08/03/20 20:02:59 ZfuqeoxK
いろいろとレスありがとうございます、要点としては>>544>>547の通りです。
>>547氏の方法は良さそうですね。testの部分は実際の運用では録画の
番組名になるのでWin上でファイル名に使える文字は何でも入る可能性が
ありますが、DELAYが番組名に使われることはまず無いので問題ないんでしょう。
自分も*に入るのが4文字以下だと仮定して
set aac_audio_source=%aac_audio_source:~-14%
としたあと"tokens=2 delims=m "という方法も考えましたが>>547の方が明らかにスマートでした
>>548-549
もうバッチで一千行以上書いてしまったので今更後には引けないというw
551:名無し~3.EXE
08/03/20 20:07:48 TH4V7lbY
>もうバッチで一千行以上書いてしまったので今更後には引けないというw
逆だな。バッチで一千行以上も書くようなら、やめたほうがいいな。
552:名無し~3.EXE
08/03/20 21:27:38 YOGH1HJm
俺もWSHなりで書き直した方がいいと思うぞ。千行が百行になったりしてな。
…さすがにそれはないか?
数百にはなりそうだが。
553:名無し~3.EXE
08/03/21 01:36:37 undob5I3
>544で2行でまとめられる内容を>537-538に渡って延々と
書き続けてるくらいだからバッチでも数百行にできるんじゃねーの?w
554:名無し~3.EXE
08/03/21 01:38:20 AMlsUloI
情報小出しにされるより一千倍マシ
555:名無し~3.EXE
08/03/21 03:56:18 shXKIS+x
具体的に何がしたいか?を書けば話題に飢えたこのスレの住人なら自分で作りそうな。
556:名無し~3.EXE
08/03/21 14:08:15 1ACbc417
>具体的に何がしたいか?を書けば
って何千行にもなりそうな
557:名無し~3.EXE
08/03/22 01:00:18 gZSy0T3O
可愛い女の子とセクースしたいが自分じゃ無理だ
558:名無し~3.EXE
08/03/24 02:50:55 P1cfgm/y
bashでゆうとこの、`cmd ~~` に値するコマンド若しくは表記のしかたはありますか?
例
bash # rm -f `cat /var/tmp/delete_files.txt` --> delete_filesに記載されているfileをまとめて削除。
いや、別にこれは例えでなんで特に意味がありませんが、
やりたいことは、二つ目の(``に囲まれた)cmdの戻り値を、一つ目のコマンドに引数として渡したいです。
559:名無し~3.EXE
08/03/24 02:52:27 8aWQMqjf
そのうち900行はコメントだったりして
560:名無し~3.EXE
08/03/24 03:02:58 PDxz0orZ
>558
for /?
過去ログに山ほど例が載ってる。
561:名無し~3.EXE
08/03/24 04:01:30 P1cfgm/y
>>560
ありがとうございます。一応希望のことはできました。
戻り値が一つでも、FORループ使わないといけないんですね。
話は変わりますが、cmd.exeで、Unixのシグナル `kill ~`に相当するcmdは、
’taskkill’以外には無いんでしょうか?
ググってみたり、msnってみたりしたんですが、「Win32APIはシグナルを提供してない」
みたいな記述を見つけたんですが・・・。
それでも、サービスに登録されているbackgrundなサーバーアプリを
net stop ~ で終了シグナルを送ってるんで、できそうなんですが・・。
562:名無し~3.EXE
08/03/24 07:10:08 L0lX/0q/
1つ答えると、また別の質問をする、厨の典型的パターンだな
情報小出しにするなよ。WMIでも使っとけ。
563:名無し~3.EXE
08/03/24 14:21:07 WUdOBBSC
XP-Homeで起動コマンドを利用したいのですがうまく動作しません。
以下のどちらもやりましたがまったく何も起こりませんでした。
Homeでは利用出来ないコマンドなんでしょうか?
start ×××.exe
start "C:\Program Files\×××\×××.exe"
564:名無し~3.EXE
08/03/24 14:53:08 WUdOBBSC
書き忘れてましたので追加します。
EXEファイルのあるフォルダ内にバッチファイルを置いてクリックすると起動します。
でもデスクトップに置いてクリックするとダメなようです。
一つだけでなく複数のEXEファイルを起動したいのですが、どのように書けば良いのでしょうか?
565:名無し~3.EXE
08/03/24 15:09:10 0QXfngW0
>>563
start /?
特に、""で囲った1つ目が何を意味することになるか良く考えること。
566:名無し~3.EXE
08/03/24 15:10:02 mqeigdTH
>563
前者は、カレントディレクトリかパスの通ったディレクトリに×××.exeが無いと動かない。
後者はタイトルと認識されてしまうので
start "" "C:\~\×××.exe"
と書いた方が良さげ。
567:名無し~3.EXE
08/03/24 15:10:06 qluytLNu
start/?
568:563
08/03/24 18:27:25 GUB5eIlQ
>>565-567
うまく起動しました。
本当にありがとうございました。
やっぱこっちで聞いたのは正解でした。m(_ _)m
569:名無し~3.EXE
08/03/25 00:39:16 XIhyPtz1
>568
それ、向こうの普通の住人に軽く失礼だよ。
570:名無し~3.EXE
08/03/25 10:19:16 KGCFsKLj
>>569
あそこのスレ覗いてみたら、酷いからw
まあ言われて当然だけどな
571:名無し~3.EXE
08/03/25 11:42:47 ivCYVsqO
で、そのスレとはどこ?
572:名無し~3.EXE
08/03/25 11:44:47 GVezYnPG
あそこはリアル精神障害者の粘着がいて
なんでもかんでもここに誘導しようとするのな
573:名無し~3.EXE
08/03/25 11:54:02 1y11T6/h
>>571
スレっていうか板だけどな。
ム板バッチファイルスレ。
574:名無し~3.EXE
08/03/25 19:01:19 +d3VDJbp
好きでキチガイの相手してるワケじゃないんだがなぁ…。
バッチ以外の話は一切誘導しないのに、バッチの話が始まると
必ず、パソコンの使い方はWin板のコマンドスレへ、と誘導する。
575:名無し~3.EXE
08/03/26 13:18:41 gE4+Tmq6
>>561
net stopが裏でやっていることとUnixシグナルの仕組みは別物。
576:名無し~3.EXE
08/03/28 12:02:59 lhYUJs3e
XP SP2 の call で exe も何でも実行できるのは仕様ですか?
2000でも同じかな…
577:名無し~3.EXE
08/03/28 20:48:29 +6KAMnBD
使用OSはXPのSP2なのですが、デスクトップヒープを見たいと思い、
Desktop Heap Monitorを使用しようとしたのですが、インストールには成功しても
以下のようにドライバを読み込めなかったりなど行き詰ってしまいました…
どうすれば解決できるのかどうかよろしくお願いいたします…
URLリンク(sund1.sakura.ne.jp)
URLリンク(sund1.sakura.ne.jp)
URLリンク(sund1.sakura.ne.jp)
578:名無し~3.EXE
08/03/29 01:08:36 cjLqnGDe
exe は実行できるが、何でも実行できるわけないだろ
579:名無し~3.EXE
08/03/29 02:13:39 DDcV0gzf
「何でも」にも限度はあると思うが、
”関連付け”されたファイルなら、それこそ「何でも」実行できる。
たとえば、txt ファイルはメモ帳や他のエディタに関連付けされてるから、
下記のコードも問題なく実行できる。
------------
call unko.txt
------------
さらに、↓でもOK。
------------
unko.txt
------------
580:名無し~3.EXE
08/03/29 02:32:04 cjLqnGDe
それは
xxxで実行できるものはほぼcall xxxで実行できる
581:名無し~3.EXE
08/03/29 17:57:31 e7BCQMf+
call って start みたいなものなんだなって思ったんですが、
むしろ cmd /c と等価と考えればいいのかな。
start は cmd /k ですか。
582:名無し~3.EXE
08/03/29 18:04:25 cjLqnGDe
そういう妄想は無意味だ
所詮にてるところもあればちがうところもある
583:名無し~3.EXE
08/03/29 18:20:32 e7BCQMf+
まあそうなんですが、そう考えると分かりやすいので…
明らかに違うのは、 cmd /c だと当然のように cmd.exe がもう一つ
実行されることですね。これは環境変数に影響しますね。
ほかにも違いはあるのかな。
584:名無し~3.EXE
08/03/29 18:27:52 cjLqnGDe
call notepad.exe
cmd/c notepad.exe
だけみれば
call≒start
cmd/c≒start/w
になるし意味ないだろ?
585:名無し~3.EXE
08/03/29 18:51:15 e7BCQMf+
なるほど。そういう動きしますね。
確かに「等価」なんて書くのは乱暴でした。
hoge.cmd がある環境と hoge.exe がある環境があって、
これを呼び出すバッチを両方の環境で共通にしたいと
思っていたのですが、call dir とか何気なく実行して
みたら思いがけず結果がでてきて>>576を書きました。
幸いexeはコンソールアプリケーションだったのでcallで
バッチもexeも実行できそうなんですが、そうでなかったら
やっぱり切り分けする必要がありそうですね。
いろいろ知識が増えました。ありがとうございます。
586:名無し~3.EXE
08/04/04 16:11:15 c0lFiKIy
ちょっと先生方にお力を
(↓サンプル)
FOR %i IN (*.txt) DO @echo %i
で.txtをひらい出そうとすると
test.txt
testtest.txt
test.txttest ←
test.txttxt ←
test.txtAAAAAA ←
余分なものもひらってしまいます
*.txt*やってるわけじゃないのにコマンドプロンプトはどういう理屈で上のものをひらうでしょうか
.txtで終わってるテキストだけ正しく抽出するにはどうやったら
出来たら上のFORをベースに改良する方法でお願いします
現在FORで組んでしまってるので根本的に別方法はまずいので
587:名無し~3.EXE
08/04/04 16:31:21 O5RX4LBM
FOR %i IN (*.txt) DO @if %~xi==.txt echo %i
588:名無し~3.EXE
08/04/04 18:42:54 HotDOmeE
>>586
今気づいたけど dir も同じよくわからん仕様
dir *.txt → 586の全部
dir *.txtt → 該当無し
dir *.txttxt → test.txttxt
dir *.tx → 該当無し
拡張子が3文字の時に限り後に何が付いていても全部表示する謎仕様。
さらに、*.txt* だと名前順だが、 *.txt だとベースは名前順だがtxt以降に
文字があるファイルはエントリ順になる超謎仕様。
さすがMS。
589:名無し~3.EXE
08/04/04 18:49:16 O5RX4LBM
謎なものか
dir /x してみ
590:名無し~3.EXE
08/04/04 19:14:07 c0lFiKIy
>>587-589
出来ました
こういう仕様になってるのには何か深い理由がありそうですね。
こういう事情を知らずに各種ソフトの.iniファイルを別のものに一時交換するときに
.iniAAAAA とかを多用しているので困っていました
どうもありがとうございました
591:590
08/04/04 19:43:54 c0lFiKIy
わあああ、ちょっと実験したら今まで信じてきたやつも全部アウトか
*.txtAAAとかあればそれも全部混ざってコピーされてしまう
なんで気がつかなかったんだろう。反省しろよ俺
無知は恐ろしいと実感反省した4月4日をMyコマンド記念日としよう
par1よりこれも全部アウト
「888 名前:名無し~3.EXE 投稿日:02/01/20(日) 13:05
>>884
@echo off
for %%i in (*.txt) do type %%i >> new.txt
これをバッチファイルとして保存してダブルクリックしろ。
全てのテキストファイルが連結されて、
new.txtというファイルが作られる。
889 名前:名無し~3.EXE 投稿日:02/01/20(日) 13:21
それだけなら copy *.txt new.txt でいいでしょ。」
たぶん中上級者の方々には既知の話だったんでしょうね
スレ汚しスマソ
592:名無し~3.EXE
08/04/04 20:15:21 7OrQUO4u
8.3名の生成機能、もういい加減デフォルトOffにすべきだよなぁ。。。
つーか10年くらい前でもよかった。
593:名無し~3.EXE
08/04/05 07:25:56 16jOobyH
DOS時代に「名前8文字」「拡張子3文字」だったのを未だに引きずってるんだなあ。
594:名無し~3.EXE
08/04/05 19:16:07 oeBKfFDa
重複行の削除を外部ソフトを入れずにやる方法をネットで検索したらこんなのがありました
--------------------------------------uniq.bat
echo off
set prev=
if not exist "%1" goto error
for /f "tokens=* delims=" %%L in ( %1 ) do call :sub %%L
goto exit
:sub
if not "%prev%"=="%*" set prev=%*&&echo %*
goto :EOF
:error
echo.
echo 表示したいファイル名を指定してください。
echo [例] uniq.bat file.txt
echo.
:exit
空白改行等には対応してないとのこと
これは画面上に表示するだけなのでファイルに出力するために
echo %* の後に>>new.txtとかつけてもエラーが出ます
newファイルに出力するためにはどうしたらいいでしょうか?
検索したサイトはなぜかサイトを開くたびにスクリプト警報が出まくるので
2chブラウザでもリンクさせないようにしましたのでご了解ください
www.fpcu.jp/dosvcmd/bbs/log/unixdoswindows/3-0062.html
595:名無し~3.EXE
08/04/05 19:19:45 oeBKfFDa
補足しますと
newファイル出力だけが必要で、画面表示は必要ないということです
&&echo %*を&&(echo %*)>>new.txtとかに変えても全部エラーでした
596:名無し~3.EXE
08/04/05 20:21:46 opCsAdvJ
uniq.bat >new.txt
597:名無し~3.EXE
08/04/06 13:45:44 +PcLNC77
uniq.bat file.txt>new.txt
でしょ。
ところで、画面への出力とファイルへの出力を同時にやる方法は無いのかな?
内部で交互に出力しなきゃダメ?
598:名無し~3.EXE
08/04/06 16:21:31 nlrXvzZ0
>uniq.bat file.txt>new.txt
>でしょ。
はて、なんか違ってるのかな?
>ところで、画面への出力とファイルへの出力を同時にやる方法は無いのかな?
あるけど?
599:名無し~3.EXE
08/04/06 18:07:00 wqKcgo9M
>>598
> はて、なんか違ってるのかな?
> あるけど?
無知蒙昧の煽り厨かよ。
役立つ情報を書けないんなら書くなヴォケ!
600:名無し~3.EXE
08/04/06 18:31:05 nlrXvzZ0
>>599 >>599
601:名無し~3.EXE
08/04/06 18:47:07 +PcLNC77
>>598
> あるけど?
どうやんの?
602:名無し~3.EXE
08/04/06 18:49:15 ejmUfes1
アフィニティマスクで1を指定して設定した場合シングルコアで作動しますが
これをデュアルコアで作動するように戻すには数値は何を入れれば良いのでしょうか?
603:名無し~3.EXE
08/04/06 18:52:10 ejmUfes1
すいません書き忘れてました
クアッドコアの数値もお願いします
604:名無し~3.EXE
08/04/06 18:55:56 nlrXvzZ0
>>601
>>uniq.bat file.txt>new.txt
>>でしょ。
>はて、なんか違ってるのかな?
のほうは?
605:名無し~3.EXE
08/04/06 18:58:08 +PcLNC77
>>604
単なる煽りなのか?
:error 以降の出力を得たいだけだったら別にfile.txtは要らんけどな。
そんな池沼レスする気だったの?
606:名無し~3.EXE
08/04/06 19:06:41 c2QC8Myi
最近2chで増えつつある、出し惜しみ厨の典型だな
607:名無し~3.EXE
08/04/06 19:10:36 +PcLNC77
出し惜しみどころか最初から知らないような気がしてきたよ。
やりたいことはmencoderの画面出力をそのままログファイルにも残したいってことなんだけど。
stdoutをそのままファイルにリダイレクトしてしまうとエンコード中の進行度が見れない。
608:名無し~3.EXE
08/04/06 19:12:59 nlrXvzZ0
ぷっ
609:名無し~3.EXE
08/04/06 19:25:04 c2QC8Myi
>>607
tee.exe T 字型二股ソケット でググれば、たぶんできると思う。
が、俺はやったこと無いが興味はあるので、成功したら、やりかたと結果を書いてくれ
610:名無し~3.EXE
08/04/06 19:35:33 +PcLNC77
>>609
ありがとう。
あんまり使ってないけどcygwinは入れてたんだった。数種類のコマンドしか使ったこと無かったから
存在を知らんかったorz
tee.exe あったよw
611:名無し~3.EXE
08/04/06 19:51:04 +PcLNC77
>>609
mencoder 色々オプション | tee -a log.txt
これで画面出力と同じものをファイルにゲットできた。
厳密にはちょっと違うけど、それは元々わかってた問題だからOK。
どこかの口だけさんと違って感謝!
612:名無し~3.EXE
08/04/06 19:58:49 nlrXvzZ0
teeでなくてもできるけどw
613:名無し~3.EXE
08/04/06 20:22:49 +PcLNC77
もうこっちのやりたいことは終わったからレス不要
614:名無し~3.EXE
08/04/06 22:12:32 MGkgFDSO
どなたか>>602-603をお願いします
615:名無し~3.EXE
08/04/06 22:17:42 MGkgFDSO
すいませんよそ聞きます
失礼しました
616:名無し~3.EXE
08/04/12 14:20:05 psbvetMj
cygwin使わずにできんのか
617:名無し~3.EXE
08/04/12 21:34:37 8rjR8tpP
動画をバッチ処理したいのですが
解像度かアスペクト比で処理を分岐させたい場合
どのように書けばよいでしょうか?
618:名無し~3.EXE
08/04/12 21:55:12 frEZV/rR
if
619:617
08/04/12 22:10:27 8rjR8tpP
>>618
もう少し具体的な回答をお願いします。
例えば解像度が1280x720の場合
echo LanczosResize(428,320)>> %avsfile%
解像度が960x720の場合
echo LanczosResize(480,270)>> %avsfile%
と処理を分岐させたい時
どのように書けばよいでしょうか?
620:名無し~3.EXE
08/04/12 22:14:42 bsDmcclx
具体的にって言われても動画の解像度なんて映画館によってまちまちだろ?
621:名無し~3.EXE
08/04/12 22:16:01 6vn8GrIL
動画の解像度情報とかバッチファイル中でどうやって取得する気かと小一時間(ry
いやもしそういったツールがあるなら俺も是非欲しいが
622:名無し~3.EXE
08/04/12 22:40:15 8rjR8tpP
>>621
クリップボードに解像度情報などを送るソフトはあります。
URLリンク(kurohane.net)
にある真空波動研SuperLite
です。
2行目に解像度などがクリップボードに送られるので
それを分岐処理に使いたいです。
623:名無し~3.EXE
08/04/12 22:47:17 bsDmcclx
クリップボードの解像度情報とかバッチファイル中でどうやって取得する気かと小一時間(ry
いやもしそういったツールがあるなら俺も是非欲しいが
624:名無し~3.EXE
08/04/12 22:58:29 L9AzdWZJ
クリップボードに解像度情報が入ってれば
cliputilなり何なりを経由してforででも
行解析すれば取得は可能じゃない?
真空波動研は使ってないからコマンドラインから
操作できるか知らないけど。
625:617
08/04/12 23:09:06 8rjR8tpP
>>624
真空波動研はコマンドラインから使えるのですが
行解析はどのように行えばよいでしょうか?
クリップボードには
[cap20071129090938.avi]
1920x1080 24Bit Motion JPEG(MJPG) 29.97fps 53943f 124553.95kb/s
PCM 48.00kHz 16Bit 2ch 1536.00kb/s
[RIFF(AVI2.0)] 00:29:59.898 (1799.898sec) / 28,368,765,952Bytes
真空波動研SuperLite 080308 / DLL 080308
のようなデータが送られるので
1920/1080が1.7より大きいか小さいかで分岐処理を書きたいのですが
どのように書けばよいでしょうか?
626:名無し~3.EXE
08/04/12 23:53:40 ma+dusF0
面倒くせーからクリップボードの内容をテキストに出力して
そこから必要行を抜き出して分岐判断させれ
627:617
08/04/13 00:16:33 pAruhQL3
>>626
625のように2行目に
1920x1080 24Bit Motion JPEG(MJPG) 29.97fps 53943f 124553.95kb/s
と書かれたテキストファイルから1920/1080の計算結果を得るには
どのように書けばよいのでしょうか?
628:名無し~3.EXE
08/04/13 00:42:52 2Fn25r/4
for /?
find /?
findstr /?
if /?
set /?
辺りかな?
629:617
08/04/13 01:30:00 pAruhQL3
>>628
URLリンク(www.tsg.ne.jp)
にあるクリップボードのテキストをDOSで扱うためのツールを使って
for /f "skip=1 tokens=1,2 delims=x " %%A in ('C:\Plugin\cliputil.exe -paste') do
で1920と1080を取り出せそうなのですが
ここから先がわかりません。
どのように書けばよいでしょうか?
630:名無し~3.EXE
08/04/13 10:21:35 q3/8LHKx
typeでテキストを表示したアドレスをlynxにぶち込むにはどういう方法がありますか?
631:617
08/04/13 18:25:52 pAruhQL3
もうあきらめてPerlで処理しました。
perlに頼ると負けた気分になるけど
今日中には終わらせたかったので。
632:名無し~3.EXE
08/04/13 19:43:28 QXIVF9vj
そういえば標準で数値計算に浮動小数点数使えるコマンドってあったっけ
633:名無し~3.EXE
08/04/13 20:40:16 U2MS+S2g
>>631
つか、バッチでどうしてもやらざるを得ない理由がなければ、
Perlのほうが断然便利だよ。
バッチは、OSのVersionによって解釈の意味が変わったり、
コマンド直打ちとバッチ内で記述する書式が違っていたりと、
とにかくクセがありすぎる。
パズルを組み立てて楽しむ程度の心の余裕がないとムリ。
即効性と実用度で言えばPerlが断然勝利。
さいごに、参考にPerlで解決した方法を書いてもらえれば、
スレ的に有益になるだろう。
634:名無し~3.EXE
08/04/13 21:19:04 bRCjXHsW
連番数字を作るとき数字なら開始終わりSETPが使えるので(1.1.100)とかで
簡単に作れますよね、これを
アルファベットで連文字作りたいときはどうやったらいいでしょう
aaaaaa~zzzzz
シロートがリファレンス読んで何とか2文字バージョンまでは作ったけど
FOR %i IN (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO @(FOR %j IN (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) DO @echo %i%j)
1)6文字バジョーンはどうやったらいいでしょうか?
2)それと実際に使うとは全出力ではなくbaaaaa~czzzzzまで出力とかしたいので
フレキシブルな出力変更可能なやり方で
1)2)を満たすもの。でも2)が困難だったら1)だけでも
どなたかお願いします
635:631
08/04/14 01:48:28 OkNafE+v
>>633
じゃぁ解決した方法だけをば
バッチ処理でfileリストと真空波動研の結果リストをファイルに保存
perlに処理を移して626さんのとおりの処理をさせて
エンコバッチファイルをperlに書き出させてそれをcall
以上です。
636:名無し~3.EXE
08/04/22 11:20:21 /OOwZtgR
コマンドラインから、net use コマンドを使うことなく(ドライブ文字を割り当てないで)
ファイルをコピーしたいのですが、可能でしょうか?
エクスプローラからの操作であれば、\\10. 1. 2. 30\ のように入力してUSER/PASSWORDを
入力すれば、ドライブレターを使うことなくファイルがコピーできますが、この操作がしたいのです。
637:名無し~3.EXE
08/04/22 11:27:10 Zu/QpkUZ
net use で必ずドライブに割り当てないといけないわけじゃないよ。
net use \\host\path PASSWORD /user:USERNAME
copy ほげほげ
net use \\host\path /delete
とか。
638:636
08/04/22 11:46:48 fvGqunE0
>>637
即レスありがとうございます。
ドライブ名無しで試してエラーが出たので、net use はダメかと思っていたのですが、
レス通りだとできました。自分で試した構文が間違っていたようです。ありがとうございました!
639:名無し~3.EXE
08/04/23 14:50:16 P+H+JVhc
Ctrl+Cキーで中断したバッチ処理を再開するにはどうしたらいいのでしょうか?
また、中断されている処理があるかどうか確認する事は出来ますか?
よろしくお願いします。
640:名無し~3.EXE
08/04/23 15:11:36 aJ9ihgZR
バッチ ジョブを終了しますか (Y/N)?
641:名無し~3.EXE
08/04/23 23:38:12 wxDe1tZY
Y
642:名無し~3.EXE
08/04/24 01:46:00 PjPeKbCJ
YES! YES! YES!
643:名無し~3.EXE
08/04/24 02:25:29 /KwaoZJn
How many files (0-15) ?
644:639
08/04/24 08:29:44 OFIsBZW/
>>640-642
ありがとうございます。 教えて頂いた通りに「Y」を押すことで無事終了することが出来ました !
いあ…すみません 中断してたのはバッチじゃなかったです…
もう少し調べてくるっス
645:名無し~3.EXE
08/04/24 20:31:24 s1mKrdXj
ちょ
646:名無し~3.EXE
08/04/26 06:53:32 S2f4sNFX
byteをMBに変換するために変数で割り算やってます
試しにこんな感じで事前の予備実験してみて上手くいったので
(わざと割り切れない数字でやってみた例)
@echo off
for /L %%k in (10485763,1048575,104857513) do (
set /a NN=%%k/1048576
echo=約!NN!MB
)
Pause
上と同じ set /a NN=%%k/1048576 を使って、コレをやってみたら
全然だめなんです。「32ビットなんたら」が出たり
エラーが出ないときは計算結果が間違ってたり
@echo off
for /F "tokens=1-3 delims= " %%i in ('fsutil volume diskfree c:') do (
set /a NN=%%k/1048576
echo=%%i%%j約!NN!MB
)
Pause
エラーメッセ-ジ"数値は 32 ビットで表記される数値です"
をGoogleで検索してもヒット無しで得られる情報ゼロ
647:名無し~3.EXE
08/04/26 09:16:13 +HXIEmBQ
32 ビットで表記される数値とは、-2,147,483,648 から +2,147,483,647 までの値の符号付き整数を表します。
648:名無し~3.EXE
08/04/26 10:13:23 noTmo+SZ
>>646
for ... ( ... )
って書き方は有効なのかな?
649:名無し~3.EXE
08/04/26 10:30:49 noTmo+SZ
ああ、ごめんなさい、偉そうな書き方したけど間違った理解をしてました。
( ) のブロック内での変数の扱われ方ですね。
if 1==1 (
set xxx=hoge
echo %xxx%
)
のようなとき、%xxx%はブロックに入る前の値しか参照できないようですね。
で646をよくみたら… ほんとにそれ動いたのって感じですね…
650:名無し~3.EXE
08/04/26 10:50:19 +HXIEmBQ
>>648-649
何いってんだ? cmd /? からやり直せ。
651:名無し~3.EXE
08/04/26 11:05:58 noTmo+SZ
>>650
すんません、理解しました。。。
set hoge=aaa && echo %hoge%
みたいなのが思った通りに動いてくれなかったのもこれなんだなぁ
652:646
08/04/26 12:00:02 dIylg/Sf
>>647
どうも。直し方が分からないし変な横槍入ってめんどくさいので割り算は諦めて
バイト値の下6桁を削って簡易表示でやることにしました
約!NN:~0,-7!MB
でわみなさんgood-by
653:名無し~3.EXE
08/04/27 01:37:19 xz87xW1t
if文の中にechoを入れたいのですが、そのecho文中に () があるとそれをifの
グループ化機能と誤認して構文エラーになってしまいます。
echo文全体を () や '' で括ったり、( と ) の前にそれぞれ^を加えてもダメでした。
何か手はありませんか?
654:名無し~3.EXE
08/04/27 09:29:55 Svy4QoHk
>>653
括弧の前に ^ をおいてエスケープ
655:名無し~3.EXE
08/04/27 10:00:16 0TiqPju+
シングルで囲むとどーなるか
656:名無し~3.EXE
08/04/27 11:09:18 eQlwkWfL
>>655
自分で試せよ。
657:名無し~3.EXE
08/04/27 16:34:30 xz87xW1t
>>654
ありがとうございます、( ) がechoの文中で完結してる場合は必要ないけれども
複数のコマンドにまたがるようにして ( ) が使われてる場合 ^ が必要みたいですね。
ところでif文中のechoは表示できる文字数に制限があるみたいで(半角英数120文字程度?)
そのechoの内容をファイルにリダイレクトしようとしても途中までしか書き込めませんでした。
今回に限って言えば、if文からgotoで抜け出し、そっちにechoを書いて
リダイレクトする判断は結果としては正しかったようです ^ ^;
658:名無し~3.EXE
08/04/27 18:58:17 ec2ADBWt
>>657
> ところでif文中のechoは表示できる文字数に制限があるみたいで(半角英数120文字程度?)
@echo off
if 1==1 (
echo aaa
echo bbb
echo (ccc^)
echo ddd
) else (
echo eee
)
if 1==1 (
echo fff
echo 12345678911234567892…中略300文字…1234567890
echo 12345678911234567892…中略300文字…1234567890> tmp.txt
)
全く問題なし。
659:名無し~3.EXE
08/05/10 00:41:56 jOW3pjRB
batの引数について質問です。
---test.bat---
if "%1"=="" goto Error
set var=%1
echo %var%
perl aaa.pl %1
goto End
:Error
echo 引数を入れて下さい...
:End
echo 終了します...
---終わり---
の内容な.batを書いたんですが、これを > test.bat 01 02
として実行させると、perl aaa.pl には "01"のみ引数として渡されます。(ここまではわかります。)
で、実はこの aaa.pl に複数の引数(場合によっては10個以上)を渡したいです。(しかも実行するごとに引数の内容が変わります)
そこで、
> test.bat "01 02" として実行させると、’02""=="" の使い方が誤っています。’と怒られます。
> test.bat "01 aa bb" とすると、’aa の使い方が・・・’とやはり怒られて、実行できません。
これは、if "%1"=="" の部分で、%1が展開されて if ""01 02""=="" goto・・・ と、構文エラーになってしまうためかと思われます。
そこで、if %1=="" としてやると、一応ifの部分はパス出来ますが、perl aaa.pl "01 02"となってしまい、
aaa.pl側からは一つの引数として扱われます。(perl側からは、複数の引数として渡したい)
さらにこの場合だと、
> test.bat と引数なしで実行した場合は ’goto の使い方が誤っています。’ と言われてしまいます。
今度もやはり if %1=="" が、 if =="" goto・・・ と展開されてしまい、構文エラーになってしまいます。
660:659
08/05/10 00:42:27 jOW3pjRB
長くなってしまいましたが、まとめますと、
> test.bat "01 02 AA BB CC ・・・" (引数の数は可変。10個以上の場合もあり)
と、コマンドラインから実行して、
perl aaa.pl 01 02 AA BB CC ・・・ (.batの引数からダブルクオートを省いたものをそのまま.plに渡す)
とゆうことがしたいです。
さらに > test.bat と、引数なしで実行されてしまった場合は、:Errorのブロックを実行して警告を出力させたいです。
もうひとつついでに言いますと、
goto Errorで飛んだ先の :Errorブロックのみを実行させたいんですが、
上のスクリプトだと、その下の:Endブロックも実行されてしまい、
引数を入れて下さい...
終了します...
と出力されてしまいます。
:Endの前に exit を書き足すと、コマンドプロンプト自体が終了してしまいます。これもどうにかしたいです。
661:名無し~3.EXE
08/05/10 00:51:01 2oG4P/Du
perlが使えるなら、全部perlで処理したほうが効率的では?
バッチは、代替がない環境で仕方なく使うものだと俺は理解しているが
662:659,660
08/05/10 01:02:51 jOW3pjRB
>>661
ええ、実は目的の動作はPerlだけですでに出来上がってるんですが、ふとbatでやってみようと思って、
昨日一日かけて色々ググッてみたり、いくつかスクリプト書いたりしたんですが、
どうしても出来なくて、ヒジョーにクヤシイ!!って思った次第です。
で、こちらの達人方にご指導いただければと思いまして・・。
663:名無し~3.EXE
08/05/10 01:21:23 eXbatmiN
%*
goto :eof
664:660
08/05/10 01:56:15 jOW3pjRB
>>663
うおおお!!できました。
引数が100個あってもちゃんと渡せます。
感動しました。ありがとうございます。
665:名無し~3.EXE
08/05/16 22:13:06 k4qTlZ8j
フォルダの中を消すには、どうするとよいですか?
rd /s
だと、フォルダごと消える。
複数あるのでバッチ処理したいが、何かよい方法は無いですか?
666:名無し~3.EXE
08/05/16 22:19:39 V84Krwca
rd /s フォルダ\*
でどですか
667:名無し~3.EXE
08/05/17 07:37:18 Tfmv5vbb
rd /s /q フォルダ
md フォルダ
まぁタイムスタンプが変わってしまうけどな
668:名無し~3.EXE
08/05/17 17:15:03 948oFaXd
cd フォルダ
rd /s .
669:名無し~3.EXE
08/05/17 23:39:45 PBIKhabT
バッチファイルでプログラムに00 01 02 03 ・・・といった連番になっている引数をわたしたい。
普通にfor文でやると頭に0がつかないので複数のfor文を組み合わせて実行しています。
ただ桁数が増えるとforと変数が多くなってわかりにくくなってしまします。
もうすこしいい方法はないでしょうか?
670:名無し~3.EXE
08/05/18 00:15:50 9CUWfmLK
for /l
671:名無し~3.EXE
08/05/18 00:29:22 Ox8jPhTX
@echo off
setlocal enabledelayedexpansion
set args=
set temp=
for /L %%i in (0, 1, 12) do (
set temp=00000000%%i
set args=!args! !temp:~-4!
)
echo args=%args%
pause
672:名無し~3.EXE
08/05/18 00:45:56 Ox8jPhTX
temp はまずかった
673:名無し~3.EXE
08/05/18 01:37:13 sec9T0KN
for /L %%i in (0, 1, 9) do for /L %%j in (0, 1, 9) do (
674:名無し~3.EXE
08/05/18 01:43:47 FcpR8lz9
>>671
ありがとうございます。できました。
setと環境変数の勉強がたりなかったようなので勉強しなおそうと思います。
675:名無し~3.EXE
08/05/18 10:34:31 TvxyqS1+
質問です。お願いします。
作成した下のbatファイルをdos窓からコマンド入力して
正常動作は確認できたんですが
windows xp で ファイル右クリックから呼び出すように
(SendToに置いて呼び出す)するとif文が一切判断されず
そこで終了してしまいます。
実行時のDOSの種類が違うんでしょうか?
--
:start
コマンド処理 %1
shift
IF "%1"=="" GOTO :eof
goto start
--
676:名無し~3.EXE
08/05/18 10:55:34 paRoTs6C
%1 を %~1 にするとかじゃね?
どうでもいいけど、コマンドの大文字小文字は
統一したほうがいいよ
677:名無し~3.EXE
08/05/18 13:43:59 sec9T0KN
>>675
for %%1 IN (%*) DO コマンド処理 %%1
678:名無し~3.EXE
08/05/18 14:16:17 L+mLCnGS
shift したら %1 は無くなるだろ。
679:名無し~3.EXE
08/05/18 15:04:01 ku4xMzVb
>>676
質問者じゃないけど、この2つの違いって何ですか?
680:675
08/05/18 19:43:39 TvxyqS1+
>>677 の方法で処理できました。
if を大文字にしていたのは 試行錯誤の残骸で
shift の位置は確かに適切ではないですね
ありがとうございました >> all
681:名無し~3.EXE
08/05/18 20:49:26 a9xwvrWi
IF "%1"=="" GOTO :eof
goto start
↓
set x=%1
IF not defined x GOTO :eof
goto start
682:名無し~3.EXE
08/05/19 08:20:58 nvSZDr4K
>>679
%~1は二重引用符「"」を取ったもの。
%1に「"abc"」という文字列が入っていた場合、
if "%1"=="" goto :eof → if ""abc""=="" goto :eof
""=="" なので常に goto :eof を実行。
683:名無し~3.EXE
08/05/19 13:26:33 EjVEkl8f
ちがうよ
if ""abc""=="" goto :eof
を
if ""abc""=="" echo true
ってやってみな
たぶん
if ""a c""=="" goto :eof
でエラーになってるんだろ
バッチファイルの関連付けを
cmd /k "%1" %*
に変えて実行結果を確認しろ
684:名無し~3.EXE
08/05/22 22:06:39 Vl7E04+C
スンマソン
バッチでIPアドレスの設定は可能でしょうか?
あとディスク使用量を出すコマンドはあるでしょうか?
よろしくです
685:名無し~3.EXE
08/05/23 07:17:56 PYuFRnph
>>684
netsh interface ip set address name="ローカル エリア接続" source=static addr=192.168.1.1 mask=255.255.255.0
netsh interface ip set address name="ローカル エリア接続" gateway=192.168.1.254 gwmetric=0
netsh interface ip set dns name="ローカル エリア接続" source=static addr=192.168.1.253 register=PRIMARY
686:名無し~3.EXE
08/05/23 10:07:11 ZLhGN8vH
fsutil volume diskfree c:
空きとドライブの全容量が出るからそこから逆算すれば。
687:名無し~3.EXE
08/05/23 19:00:56 HPZlYjUP
dir /s c:\
688:名無し~3.EXE
08/05/25 14:35:32 o3W/fKZ/
Accessのローカルのクライアントマシンに存在するmdbファイルを世代管理を使ってサーバーにバックアップを取る仕組みを考えております。
世代管理は例えば今日からで言えば20080525.mdb ~ 20080601.mdbまで一週間分保持するものとし6/2になれば5/25日のバックアップファイルは消され一番古いものが5/26日となります。
また同一日付でこのバッチが起動された場合は同じ日付のバックアップの保存先のmdbファイルが新しい方の日付で更新される仕組みを考えております。
これをどうしてもコマンドプロンプトのbatファイルにて作成したいのですが、ベテランの方ご教授していただけますか?
以前このような世代管理を行っていた方はいたのですが、現状その方に聞ける事情ではなくインターネットで調べてもうまいような検索結果がヒットしません。
どなたかご教授の程お願い致します。
689:名無し~3.EXE
08/05/25 14:59:19 QPVRGIlk
>>688
日付をつけるとややこしくなりそうだし、どうせ消すのなら
backup_mon.bat
copy xxxx.mdb backup_mon.mdb
みたいなのを1週間分つくって、
タスクマネージャで起動かけるとかじゃだめ?
これだと古いのは勝手に消えるし。
690:689
08/05/25 15:03:40 QPVRGIlk
× タスクマネージャ
○ タスクスケジューラ
orz
691:名無し~3.EXE
08/05/25 15:44:38 wEJGvu77
TXTファイルから各行の最後尾文字列だけ抽出するバッチファイル
1,2332,311133,444,555,66666,1行目成功
1,2,1111,33333333333333333,2行目成功
22444222,1111,333,444,5,6,7,3行目成功
以下略
最後尾が何番目のトークンかは不定
最後尾の前に並ぶ文字列に規則性無し
上のTXTファイルから
1行目成功
2行目成功
3行目成功
以下略
と取り出すもの
○行成功というは仮に書いてるだけでこの文字列にも規則性は無し
検索したらniftyのフォーラムで同様の質問している人がいたが解答に出会えないまま
このバッチファイルは考え方としてどんなものがあるでしょうか?
アイデアだけでも歓迎
ヒントをくれたらバッチファイルはしこしこ組みまする
692:名無し~3.EXE
08/05/25 16:21:12 zbkosXn7
一般的な方法じゃないけど、
各行の後ろの何文字かを取り出して、
,をスペースに変換して、
一番最後のワードを結果とするのはどうですかね。
693:名無し~3.EXE
08/05/25 18:25:46 k5O0hNsJ
for /f "delims=" %%L in (hoge.txt) do (
for %%I in (%%L) do set str=%%I
call echo %%str%%
)
694:名無し~3.EXE
08/05/25 18:42:07 wEJGvu77
>>693
出来ました<(_ _)>
695:名無し~3.EXE
08/05/26 12:03:03 2uqHEmAT
今更Windows2000なのですが、画面の解像度とかカラーモードをバッチで設定することは可能ですか?
696:名無し~3.EXE
08/05/26 13:45:51 SfOkgupv
コマンド1個だけじゃ無理だろうね。
いろいろ手順を踏めばできないこともないが、
適当な外部ツールを起動させるだけのバッチを作ったほうが手間的に得
697:名無し~3.EXE
08/05/26 13:56:06 NdJLY4Hf
>>695
つURLリンク(www.vector.co.jp)
698:695
08/05/26 14:11:14 2uqHEmAT
即答ありがとうございます。>>697のツールを試してみることにします。
699:名無し~3.EXE
08/05/27 19:59:09 /w3vmy7X
コマンドプロンプトにおける、\"の挙動ってどうなっているのでしょうか?
"s/'//g" | more
という引数を渡すと "s/'//g" のみが引数として渡り
結果がページ毎に止まって出力されます。しかし
"s/'/\"/g" | more
という引数を渡すと "s/'/\"/g" と "|" と "more" の3つが引数として渡ってしまいます。
後者2つをそれぞれパイプ、moreとして扱って貰うにはどうしたら良いのでしょうか?
700:名無し~3.EXE
08/05/27 20:15:01 /w3vmy7X
ちなみに、いくつかのコマンドで試しましたが
どれもやはり | more が引数として取られてしまいました。
>gawk "BEGIN{ for(i in ARGV) print ARGV[i]; }" "s/'/\"/g" | more
gawk
s/'/"/g
|
more
>perl -e "print join' ',@ARGV" "s/'/\"/g" | more
s/'/"/g | more
>ruby -e "p ARGV" "s/'/\"/g" | more
["s/'/\"/g", "|", "more"]
701:名無し~3.EXE
08/05/27 22:24:26 24yESl2I
^
702:名無し~3.EXE
08/05/27 22:43:51 /w3vmy7X
エスケープは ^ でしたっけ。しかしそうすると今度は
>perl -e "print join',',@ARGV" "s/'/^"/g" | more
s/'/^/g | more
| more までが全て1つの引数として扱われてしまいました。
703:名無し~3.EXE
08/05/27 22:48:28 hncFSdKH
括弧は?
704:名無し~3.EXE
08/05/28 11:01:30 ae35Ovs8
cmdを起動する時に、詳細設定の環境変数を弄らずに
path %path%;c:\bin やdoskey等を打ち込んだ状態にしたいのですが、どうすればできますか?
705:名無し~3.EXE
08/05/28 13:49:11 PlLgl/L0
cmd起動用のバッチでも書け
706:名無し~3.EXE
08/05/28 14:16:28 lcT2TWdz
cmd /k "path %path%;c:\bin & doskey"
707:名無し~3.EXE
08/05/28 14:23:02 lcT2TWdz
\042
\x22
708:名無し~3.EXE
08/05/28 14:47:27 ae35Ovs8
>>706
ありがとうございます
709:名無し~3.EXE
08/05/28 21:52:55 bRtNuYLO
>703
こういうことでしょうか?
>( perl -e "print join',',@ARGV" "s/'/^"/g" ) | more
More?
More?
More?
More?
>( perl -e "print join',',@ARGV" "s/'/\"/g" ) | more
More?
More?
More?
More?
More? が終わりません…。
>707
>perl -e "print @ARGV" "\x22"\042"" | more
\x22\042
すみません、よく分からないです…。
どなたか、ダブルクォートを引数として渡して
パイプ以降はちゃんとパイプとして認識されるような書き方を知らないでしょうか…。
710:名無し~3.EXE
08/05/28 22:20:25 wRMFx7lg
バイナリファイルの先頭1MBだけコピーしたいのですが、
この用途に適したコマンドまたはツールはないでしょうか。
ファイルのハッシュを計算する際、フルにスキャンすると時間がかかるので、
個体認識さえできればよい、という前提で探していますが、
CUIツールは見つからず、ヘルプいただけると助かります。
711:名無し~3.EXE
08/05/29 01:18:04 JW1TfnJu
call :hoge > hoge
more hoge
del hoge
goto :eof
:hoge
perl -e "print join',',@ARGV" "s/'/^"/g"
712:名無し~3.EXE
08/05/29 02:05:00 EjL5v9Ji
ちょっと長くなりますがschtasksについて質問させてください。
テキストファイルをリモートサーバ上にコピーするバッチcollect.batと、
それをschtasksを使ってAdmin権限で実行するプレバッチについて。
配布して実行した結果、プレバッチ内のschtasks処理がされずに
失敗したものがほとんどで、成功したものは配布対象の1割程度
でした。バッチを作成した環境やテスト環境では成功していました。
プレバッチでは
set LOGFILE=D:\LOG\collect.log
echo [%TIME:~0,8% start] >> %LOGFILE%
schtasks /create /u:administrator /p:**** /tn collect
/tr D:\collect.bat /sc once /start %TIME:~0,5% >>%LOGFILE%
schtasks /run /tn collect >> %LOGFILE%
echo [%TIME:~0,8% end] >> %LOGFILE%
こんな感じにしていますが、なぜかschtasksコマンドの結果が
collect.logには何も残っていません。
プレバッチの実行はこのログからも確実にされていることが
分かっています。
Task Schedulerサービスは実行されていますが、サービス未起動
でもschtasksが返すメッセージが残るはずなので不思議です。
成功した環境と失敗した環境との違いも、今の所はわかりません。
環境はWindowsXP Pro SP2です。
schtasksが正常に実行されないのはなぜでしょうか?
713:名無し~3.EXE
08/05/29 11:03:38 kmN2kcgk
>>710
dd でいいんじゃないかな
URLリンク(genluck.blog78.fc2.com)
cygwinとかgnuwin32とかにもあると思う。
714:名無し~3.EXE
08/05/29 13:15:02 vznSjYc6
>>712
schtasksのエラーのメッセージは標準エラー出力に出るんじゃね?
schtasks ~ >> %LOGFILE% 2>&1
715:名無し~3.EXE
08/05/29 21:38:50 wqEdMWdF
>>713
ありがとうございます。おかげさまで、かなり高速で処理できました。
まさかWindows環境で、あの便利なDDが使えるとは・・・
/of にHDDのデバイス名を割り当てたら死んでしまうので、
バッチで作る際は、その点だけ要注意ですね。
716:名無し~3.EXE
08/05/30 20:58:00 fOxd9QQm
>711
う~ん、バッチファイルの話では無いのでこちらで聞いていたのですが
…とりあえず、色々考えてみます。ありがとうございました。
717:名無し~3.EXE
08/05/30 22:34:33 9ky/2+Nz
それより正規表現で>>707の意味を調べろよ
718:名無し~3.EXE
08/05/31 01:06:58 zEJ6JTHT
\ ただの文字
" 開始引用符は終了引用符までのすべての文字をただの文字として扱う
^ 引用符中でなければ次の文字が持っている機能をエスケープする
したがって s/'/^"/g となる。プログラムに "s/'/"/g" を渡したいのなら ^"s/'/^"/g^"
となる。
ただしプログラム側が " に対して特別な処理をしていてcmd.exeが渡した引数と異なる値
になるかもしれない。
VC++ 2003ではs/'/^"/gはプログラム側でGetCommandLine()するとs/'/"/gだったが、
argv[1]はs/'//gになった。
s/'/^"""/g|moreはGetCommandLine()ではs/'/"""/gとなりargv[1]はs/'/"/gになった。
コンパイラやプログラム側の処理でどうなるかはわからないが、たぶん正解は
s/'/^"""/g|more
719:名無し~3.EXE
08/05/31 12:55:23 LVZHNqTn
引数に空白とタブルクォートが両方入るならどうなる?
720:名無し~3.EXE
08/05/31 17:28:29 W5p9QjDe
このプログラム argecho.c をコンパイルして試してみた。
#include <stdio.h>
#include <string.h>
#include <windows.h>
int main(int argc,char **argv)
{
char *p;
int i;
p = GetCommandLine();
if ( p == NULL ) {
exit(1);
}
printf("GetCommandLine=[%s]\n",p);
for ( i = 0 ; i < argc ; i++ ) {
printf("argv[%d]=[%s]\n",i,argv[i]);
}
return 0;
}
>argecho s/" "'/\^"/g arg2 |more
GetCommandLine=[argecho s/" "'/\"/g arg2 ]
argv[0]=[argecho]
argv[1]=[s/ '/"/g]
argv[2]=[arg2]
>argecho \^"s/" "'/\^"/g\^" arg2 |more
GetCommandLine=[argecho \"s/" "'/\"/g\" arg2 ]
argv[0]=[argecho]
argv[1]=["s/ '/"/g"]
argv[2]=[arg2]
(VC++ 2003の)ランタイムルーチンがコマンドラインをargv[]に分解するときに \ は " をエスケープする意味があるのでこうなった。
フリーのコンパイラ(Visual C++ 2005 Express Edition, Borland C++ Compiler 5.5など)をインストールして追試してみてくれ。
721:名無し~3.EXE
08/05/31 22:11:49 Uj21DRlS
以前、似たような試験をしてみたところ、
Visual C++ 2005 Express Edition と MinGW の gcc は同じ結果で
Borland c++ 5.5 だけ結果が違ってた。
Windows では、コマンドラインを解釈するのはランタイムライブラリ。
コナパイラが変われば解釈も変わる。
同じ Visual C++ でも将来のバージョンで変わるかもしれない。
コンパイラに依存するような書き方をするのは不安だよね。
危ない橋をわたるより、もっと確実な方法を取ったほうがいいよ。
722:名無し~3.EXE
08/05/31 22:20:32 1exRLpNU
んじゃ、batの結果
@echo off
echo %%*=[%*]
echo %%0=[%0]
echo %%1=[%1]
echo %%2=[%2]
Vistaのcmd.exe
C:\>arg s/" "'/\^"/g arg2 |more
%*=[s/" "'/\"/g arg2]
%0=[arg]
%1=[s/" "'/\"/g arg2]
%2=[]
C:\>arg \^"s/" "'/\^"/g\^" arg2 |more
%*=[\"s/" "'/\"/g\" arg2]
%0=[arg]
%1=[\"s/"]
%2=["'/\"/g\" arg2]
723:名無し~3.EXE
08/05/31 22:36:47 1exRLpNU
ついでにVistaのcommand.com (dosonly)
とても素直です。
C:\>ARG s/" "'/\^"/g arg2 |more
%*=[*]
%0=[ARG]
%1=[s/"]
%2=["'/\^"/g]
%3=[arg2]
C:\>ARG \^"s/" "'/\^"/g\^" arg2 |more
%*=[*]
%0=[ARG]
%1=[\^"s/"]
%2=["'/\^"/g\^"]
%3=[arg2]
C:\>VER
MS-DOS Version 5.00.500
724:名無し~3.EXE
08/06/01 00:09:57 GAaQjz3F
色々ありがとうございました。
>718-723 の説明で完全に理解しました。
私の勘違いはどうやらいくつかあったようで
・\をcmdが処理していると思っていた
(cmd的にはただの文字であり、アプリ側で処理していた)
・引用符は空白の入った引数を括るためのものだと思っていた
(空白に限らず、"以外全ての文字をただの文字として扱わせるものだった)
・引用符は1つの引数全体を括るものだと思っていた
(引数の途中から途中を括ることができる)
・引用符中であろうと ^ はエスケープとして機能するハズだと思っていた
(引用符は空白を括るだけでなく ^ すらも文字列化してしまう)
>702 は""の中に ^ があった為、エスケープされず
次の"で引用符としての効果が終了、
/gの後が2つめの引用符の開始になってしまったのですね。
725:名無し~3.EXE
08/06/01 11:12:36 dypgy/G+
>723
>ついでにVistaのcommand.com (dosonly)
>とても素直です。
ナイーブなまんま。 日本に来て英語喋り続けるんだYO!
726:名無し~3.EXE
08/06/01 22:21:54 Sj5PJvNr
すんません
すごい低俗な質問なんですが
ren(rename)がうまくいきませぬ
たとえばデスクトップにあるテストって名前のフォルダの名称を変更する場合
C:\Documents and Settings\****\デスクトップ>ren テスト テスト1
こういうやり方をしてうまくいかないのは
やっぱりがおかしいんでしょうか○....rz
727:名無し~3.EXE
08/06/01 22:29:59 Sj5PJvNr
いえきっと
やっぱり頭がおかしいんだといいたかった・・・(´・ω・`)
728:名無し~3.EXE
08/06/01 23:30:35 qvFoSpKB
>>726
普通にできるが?
「テスト」内のファイルを使用中にリネームしようとしてるんじゃないの?
729:名無し~3.EXE
08/06/01 23:40:24 Sj5PJvNr
>>728
いえ開いてなんていないですが・・
これであってるんですか
同見ても無反応・・・
730:名無し~3.EXE
08/06/01 23:41:55 Sj5PJvNr
すません途中送信してしまたorz
>>728
いえ開いてなんていないですが・・
これであってるんですか
同見ても無反応・・・
で、renってファイルがデスクトップに作成されちまいやす
731:名無し~3.EXE
08/06/01 23:58:36 3OfuHUqF
>>730
まさか「デスクトップ>ren テスト テスト1」を打ってる?
デスクトップにcdして、それから「ren テスト テスト1」だぞ
732:名無し~3.EXE
08/06/02 00:04:46 D3dgcEjP
C:\Documents and Settings\****\デスクトップ>
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑これは「プロンプト」と言って、入力しなくていい。
ren テスト テスト1
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑あなたが入力するのは、コレ!
つまり、
C:\Documents and Settings\****\デスクトップ>ren テスト テスト1
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ここだけ入力するとこ
733:名無し~3.EXE
08/06/02 00:06:34 Sj5PJvNr
>>731
cd<C:\Documents and Settings\Akihiko\デスクトップ
ren テスト テスト1
こういうことでしたか無知ですいません
ググりまくったんですが
どこ見てもコマンドの説明とかあるんですが構成とかまったくなくて○..rz
ばかですいまそん
ほんとはファイルの名前だけ入れ替えとかやりたかったんですが
これだけのことにこんな手間取るなんて・・・
諦めて半年くらいROMってきます
ありがとうorz
734:733
08/06/02 00:08:33 Cid0TIPt
>>732
ouch!
レスがついてる!
親切にありがとう
一番大事なとこが抜けてたんですね
バッチファイルが作りたかったんですorz
ほんと素人すぎてすいまでした
735:名無し~3.EXE
08/06/02 00:14:22 Cid0TIPt
すいまでした→すいませんでした
頭がパンクしました○rz
736:名無し~3.EXE
08/06/02 00:30:58 1WXTzPCh
ちったあ推敲してから書き込め
737:名無し~3.EXE
08/06/02 13:54:20 3tN2UbSe
睡魔だったんだろ?解るよ。
738:名無し~3.EXE
08/06/02 17:53:55 /+k/rMka BE:666238638-2BP(802)
オリンピックも近い事ですしね…
739:名無し~3.EXE
08/06/03 18:08:38 7j2Uu5Ce
URLリンク(ossan.fam.cx)
740:名無し~3.EXE
08/06/04 15:09:56 E/mtZnYt
100個位のバッチを4個づつ走らせる方法を教えてください
具体的にいうと、XP homeでstartからのバッチでシングルスレッドのx264(とavisynth)を
よっつ同時起動して1つ終了するたびに1つ起動するようにしたいです
イメージとしては
start /min 000.bat
start /min 001.bat
start /min 002.bat
start /min 003.bat
:ここで条件判定
start /min 004.bat
:ここでも条件判定
start /min 005.bat
:ここでも...
start /min 006.bat
...
みたいな感じでやりたいです
/wait付けて4分割で良さそうですが、それぞれ計算量(計算時間?)は違うはずなので非効率的です
個々のバッチの最後に条件判定の種を仕込む方法もあると思いますが、もちろん同時に終了する可能性もあるので、それぞれのバッチでうまく同期?する必要が有ります
その辺も考慮した方法をお願いします。
741:名無し~3.EXE
08/06/04 15:16:49 MFKCUv/N
モレはふつーに、100行あったら、25行づつ4枚のBATファイル書いてるけど。
特に問題無いよ。
742:名無し~3.EXE
08/06/04 15:26:33 E/mtZnYt
オレも今まではそうだったんだけど、もっと賢くできないかなぁ?とか思ったけど
オレに出来る範囲だとomp使ってexe作る位しか思いつかなかったから、試しに聞いてみた
どうぞよろしく~
743:名無し~3.EXE
08/06/04 15:30:47 znlAZcWV
WSHでExec使えばえーがな
744:名無し~3.EXE
08/06/04 15:41:12 E/mtZnYt
>>743
正規表現がどうかしたの?とかおもったけどww
調べてみたら割と簡単に出来そうで助かりました
ありがとうございましたノシ
745:名無し~3.EXE
08/06/04 15:46:52 E/mtZnYt
訂正
X ありがとうございましたノシ
O ありがとうございましたm(_ _)m
746:名無し~3.EXE
08/06/04 16:03:08 mGvFQhiJ
>>742
BATじゃなくて、AutoHotkeyやwshを使ったほうが確実だよ。起動したバッチの
PIDを監視して、それが消滅したら次のタスクへ、なんてのも数行でできる。
AutoHotkeyの例
Loop,100
{
cmd=やりたいこと%A_Index%.bat
runwait %cmd%,,Hide,pid
if errorlevel<>0
msgbox,エラーでたよ。PID=%pid% errorlevel=%errorlevel% つづけたいならOK押せ
}
「A_Index」は、ループ内で回った回数のこと。ループのたびに数値が1ずつ
上がっていくから、やりたいこと1.bat→やりたいこと2.bat→やりたいこと3.bat
・・・やりたいこと100.bat→END
と、順番に処理してくれる。
hideは、ウインドウを一切表示させない意味。pidは実行した際のpidが入る。
実行後、errorlevelが0以外なら、なんらかのエラーが出てるはずだから
そのときだけbeepを鳴らしたり、ダイアログを出すとかも可能。
エンコ用途なら、ダイアログを10秒以上放置したら自動で次の処理とかもできる。
このスレでも何度か出てるけど、いまどきBATをつかうのは
単独で起動させるプログラムにオプションを与えるための整理役と、
緊急時や、社内ポリシーの制限で「仕方なく」使うようなもの。
わかりにくくて制限だらけのBATをパズルのように使いこなすよりも、
もっと簡単に操作可能な方法を組み合わせたほうが効率的だよ。
747:名無し~3.EXE
08/06/04 17:57:35 B4CJCE84
んなアホな。それだったら
「質問された事をコマンドライン以外でやろうとしたらどうなるか?」スレになってしまう
ここは「それでも時代遅れのコマンドラインでなんとかやろうとしたらどうなるか?」と追求したり、それを質問をするスレだわ
コマンドラインが時代遅れである事は聞いてる人の側でもむしろ前提
746方式だと、これから誰かが何か聞いてくるたびに、質問されても無い別のスクリプトを教えるつもりなのか?
お勉強発表会は否定しないがその該当スレでやるか?ソフ板の総合質問系のスレでやるヨロシ
748:名無し~3.EXE
08/06/04 18:18:50 mGvFQhiJ
>>747
あーごめん。言葉足らずだった。
質問者が
>mp使ってexe作る位しか思いつかなかったから
ということだから、質問者のやりたいことだけを手っ取り早く
実現するなら、全部バッチでやるよりも簡単な方法があるよ、という話
749:名無し~3.EXE
08/06/04 21:49:55 7+YNsR+N
すいません。教えて下さい。
ファイルをD&Dしたときにそれをコピーしてある名前にする
っていう単純なバッチが作りたいんですが
全角スペースを含む日本語ファイル名だとうまく動きません
いい解決方法ないでしょうか
@echo off
cd /d "%~dp0"
copy "%~1" temp.txt
echo Finish.
pause
750:名無し~3.EXE
08/06/04 22:09:00 iEWLl5O8
>>749
>>488-495
751:名無し~3.EXE
08/06/05 09:36:57 lU41qR+3
>>750
ありがとうございました
いろいろぐぐったんですがいい方法も見つからなかったので
スペースは手作業で消すことにします
752:名無し~3.EXE
08/06/05 09:50:21 wBw/Rao8
set x=%2
if defined x (copy "%*" temp.txt) else copy %1 temp.txt
753:名無し~3.EXE
08/06/05 10:27:50 lU41qR+3
>>752
あーなるほど
分離してしまうならつなげろってことですか
気付きませんでしたorz
ありがとうございました
754:名無し~3.EXE
08/06/05 18:41:34 wBw/Rao8
>>740
set /a n=0
for /f "delims=" %%I in (list.txt) do call :run %%I
goto :eof
:run
for /f "skip=3 delims=" %%J in ('dir /b executing.*') do (
sleep 5
goto :run
)
set /a n+=1
type nul >executing.%n%
start cmd /c " %1 & del executing.%n%"
goto :eof