1 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 21:33:11 ] 拡張子が .cmd または .bat のバッチファイルの スクリプティング(プログラミング)にかかわる 質問,テクニック(JScript,Perl等の埋め込みなど含む), 関連情報のためのスレです。 【関連スレ】 バッチファイルプログラミング 3.bat pc11.2ch.net/test/read.cgi/tech/1148485555/ WSH(・∀・)スレッド! Part 2 pc11.2ch.net/test/read.cgi/tech/1176698934/ Windows PowerShell (正式版リリース)1.0 pc11.2ch.net/test/read.cgi/tech/1163818863/ HTAをもっと流行らせる計画 pc11.2ch.net/test/read.cgi/tech/1124559962/ ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/ MS-DOS・Win3.1総合スレッド pc11.2ch.net/test/read.cgi/win/1025462258/ ※なんでも無理矢理バッチでやろうとせずWSH等の使用も 検討しましょう。
448 名前:デフォルトの名無しさん [2007/07/23(月) 21:13:46 ] 質問させてください。 バッチで、以下のような選択をさせたいと 思います。 部署を選択してください。[] 1.営業部 2.技術部 3.総務部 上記のような選択で、番号を入力させ部署毎に バッチの処理を変えたいと思ってます。 これをWindows98のMS-DOSプロンプトで行う事は 可能でしょうか。 よろしくお願いします。<(_ _)>
449 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:33:38 ] choice
450 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:44:32 ] >>449 即レスありがとうございます! 調べてみます
451 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:53:20 ] あんまりレベルの低い質問はwindows板へ誘導してあげた方がよくないか? どう見てもパソコン初心者だし
452 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:03:22 ] ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/
453 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:08:06 ] >>451 おまいら(みないなの)がいそうなので誘導はしません
454 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:31:06 ] >おまいら(みないなの) >おまいら(みないなの) >おまいら(みないなの) ……
455 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:51:20 ] Win2kだと SET /P で入力かな それにしても某誘導中の頭の中はDOSで停まってるのかねぇ DOSなら確かに初心者レベルの知識だが WindowsではそもそもCUI自体初心者は使わないのに
456 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:13:26 0] %SystemDrive%みたいな感じでカレントディレクトリのドライブを示すものないですか?
457 名前:デフォルトの名無しさん mailto:sage [2007/07/29(日) 23:24:57 0] >>456 %CD:~0,2%
458 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 23:13:23 ] DLしたアプリケーションが開けない コマンドプロンプトで作られた物だとは思うが 開いた瞬間勝手に閉じてしまう どうすればいいかな?
459 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 23:27:30 ] >>458 コマンドプロンプトの使い方を覚えろ。 話はそれからだ。
460 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 12:02:59 ] >>458 コマンドプロンプトから開けばいい
461 名前:デフォルトの名無しさん [2007/08/13(月) 12:37:49 ] yahooなどのログインを自動的に行うにはどうすればいいんでしょうか? net useを使ってみたんですがうまくいきません。 どのようなコマンドを使うかだけでもいいのでヒントをいただけないでしょうか
462 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 14:10:45 ] >>461 バッチよりWSHやHTAでやったほうがいよ
463 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 14:15:11 ] てかyahooしらんが、 そもそもHTTPセッションで管理されてたらbatでもスクリプトでも色々ムリがあると思われ
464 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 14:25:07 ] >>462-463 ありがとうございます。バッチだと難しいんですね
465 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 15:09:05 ] >>458 コマンドプロンプト開いて(Win+Rでcmd.exeと入力) cd c:\yourappdir yourapp.exe とかやればよし
466 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 17:08:22 ] batのfor文で、in() のカッコの中に%1を入れも動かないんですが、何故なんでしょうか? %1にはD&Dしたテキストファイルのフルパス名が入っているはずなんですが・・
467 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 17:15:03 ] >>466 echoをONにしてコマンドプロンプト上から実行してみろよ。
468 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 17:21:41 ] >>467 実行してみたらfor /f in (%1) doのはずが for 1) do となっていました。("%1")でとしてもダメでした。どうすればいいのでしょうか?
469 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 17:33:21 ] @echo off for /F "delims=" %%i in (%1) do echo %%i pause 特に問題ないが。
470 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 17:40:26 ] >>469 %1のせいではなくて、%%iを%iとしてたためにできなかったみたいです。失礼しました。ありがとうございました!
471 名前:デフォルトの名無しさん [2007/08/20(月) 20:30:39 ] 質問です。 まず状況として、PC1とPC2、PC3がLANでつながっています。 PC1で既存のバッチを実行し、PC1内のファイルから新しいファイルを生成します。 作成されたファイルをPC2に渡して、また別の既存のバッチをPC2自身に実行させ、 渡されたファイルからさらに新しいファイルを生成します。 このファイルをあらかじめ指定した出力先(PC1〜PC3のいずれか) にコピーして、終了。 PC1で開始したら、ここまで自動で処理するようにしたいのです。 考えていた案は、PC1に入れたプログラムで開始を指示すると PC1のバッチを実行し、生成ファイルをPC2にコピー、 atコマンドで1分後にPC2自身にPC2の新規バッチを実行させ、 新規バッチ内で既存バッチを呼び出して処理後、出力先にコピーする、 というものでした。 ところがタスク内ではコピー先にネットワークのPCを指定するとエラーになるようで、 最後の出力先にコピーする部分で行き詰まりました。 この案自体何か考え方がおかしい気もするのですが、名案が浮かばず困っています。 既存のバッチを改変せずに一括して処理する、良い方法はありませんでしょうか?
472 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 22:00:25 ] >>471 > ところがタスク内ではコピー先にネットワークのPCを指定するとエラーになるようで、 > 最後の出力先にコピーする部分で行き詰まりました。 その最後の部分のみが問題だったら、その部分のコマンドとエラー結果を貼るといい。
473 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 22:15:44 ] >>472 実行アカウントの問題でしょ
474 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 22:35:35 ] >>471 atじゃなくて、rshではいかんの?
475 名前:471 mailto:sage [2007/08/20(月) 23:08:12 ] >472 たとえばbatch.batの最後の行が、copy c:\test.txt \\PC2\c\test で at \\PC2 22:54 c:\batch.bat とやったとします。 at打つと54分の実行までは 状態 ID 日付 時刻 コマンド ライン ------------------------------------------------------------------------------- 1 今日 22:54 copy c:\test.txt \\PC2\c\test なんですが、54分過ぎると エラー 1 明日 22:54 copy c:\test.txt \\PC2\c\test こうなります。ログは何も吐かないみたいですが… >473 管理者アカウント取ってるのでat自体は問題なく通ります。 >474 それは知らなかったですね…試してみます。
476 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 07:47:47 ] >>475 copy c:\test.txt \\PC2\c\test の問題なら、 copy c:\test.txt \\PC2\c\test > c:\log.txt 2>&1 みたいな感じで自分でエラーをログファイルに落として確認するとか、 copy直後にpauseで一時停止してエラーを見ればいい。(atコマンドに/interactiveが必要か)
477 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:50:00 ] copyするファイルと同じフォルダをコピー先として指定したい場合、どういう記述で指定すればいいですか?
478 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:53:12 ] >>477 copy ファイル名 新しいファイル名
479 名前:477 mailto:sage [2007/08/21(火) 21:02:23 ] >>478 送るにショートカットを置いて動作させたいと思ってるんですが、 そうしたらバッチファイルのあるフォルダにコピーされてしまったんです。 いちお @echo off copy %1 _title.jpg end みたいにしたんですが...
480 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 21:13:59 ] copy %1 "%~dp1_title.jpg"
481 名前:477 mailto:sage [2007/08/21(火) 21:24:49 ] >>480 ありがとうございます。できました(*^v^*)
482 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 16:54:48 ] WindowsXPって名前つきパイプみたいなもの使えます?
483 名前:デフォルトの名無しさん mailto:sage [2007/08/24(金) 18:03:47 ] >>482 mkfifoみたいなものを探してるなら、無いんじゃないかなあ。 一時ファイルを経由するしかないかと。APIでなら使えるけどね。
484 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 12:09:09 ] %DATE%で当日の日付が取得できるのはわかるんだが 前日とか次の日ってのはどうやって取得すれば良いのかね??
485 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 12:43:29 ] echo 今日は %date% です echo 昨日の日付を入力してください set /P prevdate= echo 明日の日付を入力してください set /P nextdate= echo 前日は %prevdate% 、次の日は %nextdate% です
486 名前:484 mailto:sage [2007/08/29(水) 13:06:01 ] >>485 いや、そりゃわかるんだが もうちょい具体的に書くと "昨日の日付.log"ていうファイルを触りたいときに バッチファイル内でどういうふうに指定すれば良いのか教えてくだしあ。 って感じ
487 名前:485 mailto:sage [2007/08/29(水) 13:16:46 ] 以下のスレの最初の方に書いてあるよ ttp://pc11.2ch.net/test/read.cgi/win/1176558776/
488 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 15:01:05 ] ヒント: >>1 の最後の2行
489 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 20:49:11 ] >>484 「1日前の計算」のところに書いてあるよ www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
490 名前:489 mailto:sage [2007/09/01(土) 20:54:15 ] 自分も聞きたいことが >>489 のサイトの「変数値の部分文字列抽出用の修飾」のとこにでてくる m文字目からn文字分抽出する %date:~m,n% %~t0やfor文の%%~tAにこの修飾は使えないもんですかね? もうひとつ、この手の文字列抽出の修飾は他にもあるんですか? DOS、バッチ関連のサイトを読み漁ってるんですけど見つからなくて。。 gglのキーワードか、リファレンスサイト教えてもらえないでしょうか
491 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 21:54:46 ] >>490 help set help call
492 名前:デフォルトの名無しさん [2007/09/02(日) 00:14:45 ] VBScriptをバッチファイルから呼び出しています 処理結果をerrorlevelへ返してバッチファイル側の分岐条件にしたいのですが VBScriptから値を返す方法がわかりません おねがいします
493 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 00:20:29 ] WScript.Quit
494 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 00:30:45 ] >>493 うまくいきました ありがとうございます
495 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 17:33:51 ] バッチでこんな感じのテキストを作りたいのですが、 こういうのの参考になるコマンドとかwebsiteとか ご存知ないでしょうか、それともテキスト処理 とかcygwinとか使ったほうがいいでしょうか? どなたかよろしくお願いします。 9/1:6:30 9/2:7:00 9/3:7:30 ・・・・ つづく
496 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 17:37:27 ] ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/
497 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 18:06:34 ] >>495 とりあえず9/30まで @echo off set timeval=390 set day=1 :loop set /A hour=%timeval% / 60 set /A min=%timeval% %% 60 set min=0%min% echo 9/%day%:%hour%:%min:~-2% set /A day += 1 set /A timeval += 30 if %day% == 31 goto :end goto loop :end 書いといて何だけど、WSH使った方がいいと思う。
498 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 18:18:54 ] やはり日付を扱うのはwindowsだとWSHとかなんですか。 なんだか苦手意識があって・・・ とりあえずはいただいたものでうまくできそうですので、 それを応用したいと思います。ありがとうございます。
499 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 21:52:20 ] cygwinを使おうと思うような人なら JScriptでもPerlでもわけないというイメージがある。
500 名前:デフォルトの名無しさん [2007/09/05(水) 23:36:47 ] バッチファイルを作りたいのですが、まったくの初心者です OSはXP-Homeです "C:\Program Files\×××\×××.exe" 通常はこれでソフトを起動させる事が出来るんですが 起動しないソフトもあるんですがその場合はどのように書けば良いでしょうか?
501 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 23:42:11 ] >>500 もしや、エクスプローラで拡張子を表示しない人?
502 名前:デフォルトの名無しさん [2007/09/05(水) 23:47:54 ] >>501 確認しましたが拡張子はexeでした
503 名前:デフォルトの名無しさん [2007/09/05(水) 23:49:09 ] 例えば拡張子がtxtなどの場合は同様に起動しませんが これを起動する方法を応用しても出来ないのでしょうか?
504 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:00:04 ] 起動しますが何か。
505 名前:デフォルトの名無しさん [2007/09/06(木) 00:06:28 ] 今やったら起動しました 何か間違ってたみたいですすいません ついでなので起動中のソフトの終了の仕方も教えてください バッチファイルで
506 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:19:21 ] >>505 shutdown -s
507 名前:デフォルトの名無しさん [2007/09/06(木) 00:37:41 ] >>506 shutdown -s "C:\Program Files\2chtubo\2chtubo.exe" shutdown "C:\Program Files\2chtubo\2chtubo.exe" shutdown -s shutdown "C:\Program Files\2chtubo\2chtubo.exe" -s いずれも試しましたがダメでした ちなみに起動や終了ができないソフトは壷です "C:\Program Files\2chtubo\2chtubo.exe" としても起動しませんでした
508 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:38:29 ] 訂正 一番上のはこっちです shutdown -s "C:\Program Files\2chtubo\2chtubo.exe"
509 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:39:32 ] 2chの壷ってただのローカルプロキシサーバになるんじゃなかったっけ?
510 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:43:29 ] そうですが本体はexeですし、設定もしてますよ
511 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:43:44 ] >>505 taskkillコマンドがあるはずなんだが、うちじゃ使えない というわけでwshをおすすめするよ
512 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:45:09 ] >>510 多分起動してる(また多重起動した場合は直ぐに終了されている)と思われ 本体がexeかどうかは関係ないし、設定もこの話題の場合意味が無いと思う
513 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:45:53 ] つ TASKKILL /?
514 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:46:58 ] >>513 taskkillってXP Homeで使えるの? こうなるんだけど D:\Documents and Settings\俺用>taskkill 'taskkill' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
515 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:50:01 ] 確かXP-Proと2000にしかなかった気がする
516 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:54:14 ] XP Pro x64だけどtaskkillあった
517 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 06:03:56 ] cygwin, sysinternals suite入れてないやつはアフォ
518 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 06:14:37 ] cygwin入ってたらcmd.exeの貧弱なシェルスクリプトにこだわる必要ないじゃん
519 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 08:44:50 ] アクティブスクリプトでなくわざわざWindows外部の基盤システムを導入してその上のスクリプトを呼び出す神経がわからん
520 名前:489 mailto:sage [2007/09/06(木) 13:41:21 ] >>491 さん 遅くなりましたがレス有難うございました HELPはかなり重要なことが書かれていますね 全コマンドのHELPをリダイレクトしてテキストに生成するバッチ組んで見ました 印刷して製本して熟読しようと思いますー
521 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 19:00:48 ] >>507 とりあえず shutdown /? 位見てから書き込もうね。 アホすぎて見てらんない。 rd /q/s 〜 なトラップに引っかかるタイプの人でしょ。
522 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 19:56:56 ] そういうshutdownみたいなコマンドの使い方は プログラミングとは言わないから板違いでスレ違いだろ
523 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 23:58:21 ] スクリプトでソフトを全部終了させればいいじゃない
524 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 00:02:39 ] >>523 的に当たらないから矢をでかくした感じだな
525 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 00:57:52 ] 'shutdown' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
526 名前:デフォルトの名無しさん mailto:sage [2007/09/07(金) 20:46:08 ] WindowsXP/2003からの機能だよ
527 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 01:30:52 ] WindowsXP/2003から新たに導入されたコマンドやツールはコピーしておくと便利だな。 msconfigとかもね。まあスレ違いだけど。
528 名前:デフォルトの名無しさん mailto:sage [2007/09/08(土) 02:46:52 ] >>527 コピーした先の環境がEXE Hellに陥る姿をみてわろた
529 名前:デフォルトの名無しさん [2007/09/10(月) 12:38:39 ] こういうのはどうやれば良いのでしょうか? 「○○を実行しますか?(Y/N)」とメッセージを表示させ、 YならラベルYを実行、NならBATファイル終了。
530 名前:529 mailto:sage [2007/09/10(月) 12:49:44 ] 申し遅れました。 環境は、Windows2000です。
531 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 13:12:15 ] そこまで初心者ならこっちのスレへどうぞ ユーザー必読!コマンドライン(DOS Pt.6) pc11.2ch.net/test/read.cgi/win/1176558776/
532 名前:529 mailto:sage [2007/09/10(月) 13:14:07 ] >530 ありがと。 レベル違いすぎてて
533 名前:デフォルトの名無しさん [2007/09/10(月) 14:02:53 ] チョイスとか言ってみる
534 名前:デフォルトの名無しさん [2007/09/10(月) 21:50:31 ] set /p と if /i を使う手がある
535 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:09:07 ] choiceってXPやVistaにもあったっけ?
536 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:26:45 ] >>535 ない。 確かDOSでもかなり後のバージョンでないと入ってなかった気がする。
537 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:33:10 ] batに対してフォルダをD&Dすればそのフォルダを圧縮、 batをダブルクリックで起動した場合には規定のフォルダを圧縮 という動作のために、最初の行に if "%1" == "" goto default と書いたのだけど、D&Dするフォルダに空白が含まれていると%1が if ""some folder"" == "" goto default と展開されるらしくエラー。 かといってダブルクォートをなくして if %1 == "" goto default とした場合はダブルクリック起動で if == "" goto default となってしまうのでエラー。 どうすれば良いでしょうか。
538 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:50:50 ] "%~1"
539 名前:537 mailto:sage [2007/09/11(火) 02:38:11 ] >>538 神様ありがとうございました。
540 名前:デフォルトの名無しさん [2007/09/11(火) 12:00:13 ] バッチファイルで複数の指定ファイルを削除する場合の書き方を教えてください
541 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 12:01:48 ] del a.txt "c:\program files\b.txt" c.txt
542 名前:540 [2007/09/11(火) 12:16:43 ] >>541 ありがとうございました
543 名前:デフォルトの名無しさん [2007/09/11(火) 12:45:09 ] ゲームで極める シェルスクリプトスーパーテクニック www.gihyo.co.jp/books/978-4-7741-3202-0 slashdot.jp/books/article.pl?sid=07/09/06/2334232 動画 jp.youtube.com/watch?v=HaKhw2nUgTk バッチファイルおわった・・・
544 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 13:16:48 ] ファイル消すのにもいちいち質問してるようじゃ 入門書すら存在しないんだろうね
545 名前:デフォルトの名無しさん [2007/09/11(火) 19:14:05 ] 今時バッチの入門書なんて
546 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 20:16:28 ] >>543 そもそも動作環境が違うんだから、比較する意味が無いだろう。 むしろ将来的にパワーシェルがWindows標準になる事を考えれば、 そっちのほうが。 バッチファイルはちょっと複雑な事をさせようとすると、感覚的に わかりづらい記述になるので、バッチファイルを極めるより、WSHを 覚えたほうがマシだね。 ちなみにモレは丁度、一昨日買った所。1キー入力で反応させるのとか目から鱗だった。
547 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 15:32:16 ] 本の宣伝にしか見えないんだけどw
548 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 23:19:39 ] 宣伝にマジレス。漏れおわった・・・・