- ベストアンサー
複数ファイルの処理が終わった後シャットダウンしたい
タイトル通りです 以下の記述をしたbatに複数のファイルをドラッグアンドドロップし、別のbatに処理を投げています for %%a in (%*) do C:\Users\~~~.bat %%a すべてのファイルの処理が終わった後、windowsをシャットダウンしたいのですが、やり方が分かりません 何か方法があれば教えて下さい
- gedfactor
- お礼率40% (2/5)
- Windows系OS
- 回答数5
- ありがとう数7
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
動いているようなので見逃してましたが、call を入れてください。 for %%a in (%*) do call C:\Users\~~~.bat %%a shutdown /s /t 0 基本的に、バッチからバッチを呼び出す場合は、call します。
その他の回答 (4)
- foomufoomu
- ベストアンサー率36% (1018/2761)
たぶん、batの処理が終わらないうちに shutdown が実行されてしまい、しかし、shutdown は、まだ何かが実行中であることを検出したので、動作を中止した(シャットダウンしなかった)。 ということだと思います。 次の方法で、呼び出しているバッチが終わってから次の処理に移るように書けばよいのではないでしょうか。 http://midilin.sakura.ne.jp/midilin/php/ppblog/?UID=1291775652
お礼
ありがとうございます こちらの方法でも試してみましたがやはり動かないようでした notnotさんの提示していただいた方法で動くようになりました
- notnot
- ベストアンサー率47% (4846/10257)
私>もうしそうじゃ無くて、C:\Users\~~~.batから呼び出しているプログラムの終了を待たずに次の処理に進んでしまうと言うことなら、 に対して、 >呼び出しているプログラムは下記ページのAutoEncode_X3.batです と答えていると言うことは、「batから呼び出しているプログラムの終了を待たずに次の処理に進んでしまう」というのが問題なわけですか? また、 >シャットダウンのコマンドを試したのですがシャットダウンできませんでした ということですが、shutdown /s /t 0 を入れるとどういう状態になりますか?エラーメッセージが出ているとかですか?それともコマンドは正常に終了するけど、シャットダウンが始まらないと言うこと??シャットダウンが始まるけど途中で止まる? なにが問題なのか分からないとアドバイスできないです。
補足
分かりにくくてすみません 呼び出しているbatの処理は終わります 例えば3つのファイルをドロップすると、3つともエンコードはされるのでプログラムの終了を待たずに次の処理に進んでしまう、というわけではないです 2行目にshutdown /s /t 0を入れるとシャットダウンは始まりません 何のエラーメッセージも出ないです
- notnot
- ベストアンサー率47% (4846/10257)
シャットダウンのコマンドが分からないというのが質問内容ですか? shutdown /s /t 0 です。 もうしそうじゃ無くて、C:\Users\~~~.batから呼び出しているプログラムの終了を待たずに次の処理に進んでしまうと言うことなら、それはそのプログラムの問題です。何というプログラムですか?
補足
ありがとうございます シャットダウンのコマンドを試したのですがシャットダウンできませんでした 呼び出しているプログラムは下記ページのAutoEncode_X3.batです EDCBと自動CMカット+エンコード導入日記 part 2 : オタクの徒然日記 http://blog.livedoor.jp/fles/archives/31345088.html 具体的には拡張子.tsの動画ファイルを複数ドラッグアンドドロップし、1つずつ.mp4にエンコードするような仕組みです エンコードがすべて終わった段階でパソコンをシャットダウンしたいです
- Willyt
- ベストアンサー率25% (2858/11131)
御質問のコマンドの次の行に shatdown と書けばいいのです。このコマンドにはいろいろオプションがありますから下記を参照して下さい。
補足
ありがとうございます shutdown -s -t 0 とだけ記述したbatファイルを別途作成し for %%a in (%*) do C:\Users\~~~.bat %%a call C:\Users\~~~シャットダウン.bat とやってみましたがやはりシャットダウンはしませんでした ドラッグアンドドロップ用のbatをダブルクリックするとシャットダウンはしたのですが、別のbatでの処理が終わった後にシャットダウンはしませんでした
関連するQ&A
- バッチファイル 2ファイルをfor /f処理したい
バッチファイルで別の2つのファイルを読み込んでfor /f処理するには 変換前のファイルのファイル名と 変換後のファイルのファイル名が それぞれ別のファイルに書かれていて この2つのファイルを読み込んで リネームするバッチファイルを 記述したいのですが 2つのfor /fを使った場合、 一方が他方にネストされてしまうのですが このような場合は どのように記述するのでしょうか。 例えば、 変換前のファイル名が書かれたファイル(s.txt)と 変換後のファイル名が書かれたファイル(d.txt) がある場合、 abc.txtをqrs.txt d f.txtをtuw.txt ghi.txtをx z.txt : にリネームしたいのですが もちろんtest1.batではうまくいきません。 ---test1.bat------------------- for /f %%a in (s.txt) do for /f %%b in (d.txt) do ren "%%a" "%%b" ------------------------------ ---s.txt---------------------- abc.txt d f.txt ghi.txt : ---d.txt---------------------- qrs.txt tuw.txt x z.txt : ------------------------------ 以下の sd.txt のように1つのファイルにして test2.bat のようにすればできますが s.txt と d.txt の2つのファイルのままで処理するには どのように記述すればよいのでしょうか。 ---test2.bat------------------- for /f "tokens=1,2 delims=," %%a in (sd.txt) do ren "%%a" "%%b" ---sd.txt---------------------- abc.txt,qrs.txt d f.txt,tuw.txt ghi.txt,x z.txt : ------------------------------- よろしくお願いします。(Windows7)
- ベストアンサー
- その他(ソフトウェア)
- batファイルで、引数のファイルリストを作りたい。
あるbatファイルを作成しようとしています。 目的は、複数のファイルを選択して、batファイルにドラッグすると、そのパスをテキストファイルに書き込んでほしいのです。 for文を使おうと思ったのですが、以下の内容だとうまくいきません。 type NUL > "./test.txt" for %%i in (%*) do echo %%i >> "./test.txt" 空のファイルは作成されるのですが、ファイル名は記録されません。 何か方法があれば教えていただけないでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- DOSのバッチファイルでカレントフォルダを取得するには?
現在バッチファイルにファイルをドラッグ&ドロップするとそのファイルを処理するようなバッチを組もうとしています。 おおまかな流れとして 1.ファイルのバックアップ 2.test.exeの引数にファイルのパスを渡す といった事をしたいのですが、バッチファイルにドラッグ&ドロップするとカレントフォルダがC:\Documents and Settings\user\になってしまいます。 バッチファイルのある場所をカレントフォルダとするにはどうすればよいのでしょうか。 以下カレントフォルダを確認した結果です。 OS:Windows2000 実行バッチのパス: C:\Documents and Settings\user\デスクトップ\test.bat ---test.bat---- @echo off cd pause test.bat直接起動 C:\Documents and Settings\user\デスクトップ test.batにファイルをD&D C:\Documents and Settings\user 伝わりづらくて申し訳ございません。 宜しくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- bat処理
batファイルを使ってCドライブのユーザーのtempフォルダの中の Excelファイルxlsを一括削除したい Osはwin7とxp for /d %%a in (subdir*) do del "%%a\*.jpg" うまく動きません、よろしくお願いします。
- 締切済み
- Windows XP
- バッチファイルプログラム(拡張子)
あるデータをバイナリに変換するhoge.exeがあります。 これをドラッグ&ドロップで一括処理したいと考えており、下記のようなバッチファイルを作成しました。 %~d1 cd %~dp1 for %%q in (%*) do a.exe %%q > "%%q.bin" このプログラムだと、 a.movというファイルをD&Dするとa.mov.binというファイル出力となってしまいます。 a.binというファイルを出力させるにはどのように 変更すれば良いでしょうか? なお、複数ファイルの処理に対応したいので 最後を%~n1.binにするとうまいきません。
- 締切済み
- C・C++・C#
- 複数のファイルに対し同じ処理を行う方法
複数のファイルのエクセルファイルに対し、同じ処理を行うマクロを教えてほしいです。 処理するファイル数が一定でないため、現在はDo While~Loop構文を用い強引に処理しています。 しかし、この方法では処理が終わる(アクティブファイルが無くなる)とエラーメッセージが出るため、煩わしいです。 Do Until構文で、終了条件を指定したらよさそうなのですが、どのように書けばいいのかわかりません。 現在記述しているものは以下です。 -------------------------------------------------------- Sub 連続処理() Dim BookName As String Dim PathName As String PathName = "D:\A1\連続処理\" BookName = Dir(PathName & "*.xls") Do Until BookName = "" Workbooks.Open PathName & BookName BookName = Dir() Loop Do While (1) ・ ・(処理作業を行うマクロ) ・ Workbooks(ActiveWorkbook.Name).Close savechanges:=True Loop End Sub
- ベストアンサー
- Visual Basic
- コマンドプロンプトのコマンド処理が途中で終わる2
お世話になります。 以前 http://qa.itmedia.co.jp/qa9168537.html にて質問及び解決させていただいたのですが、 確認不足で思った処理にならない部分がありました。 上記URLの内容を抜粋します。 ============================================================= メインbat内にサブ1bat、サブ2batが存在し以下構成になっています。 (サブ1batで作成したデータを用いてサブ2batの処理を行います。) 問題は メインbatを実行した場合、サブ1batが実行された後にサブ2batが実行されず終わってしまいます。 (メインbatにサブ1batだけ、メインbatにサブ2batだけだと、各々問題なく処理が行われることは確認。) 以下、メインbat処理----------------------------------- setlocal enabledelayedexpansion FOR /f "delims=, tokens=1-3" %%i in (テキストファイルパス) do ( IF "%%i"=="1" ( サブ1bat %%j %%k ) ) endlocal setlocal enabledelayedexpansion FOR /f "delims=, tokens=1-3" %%i in (テキストファイルパス) do ( IF "%%i"=="1" ( サブ2bat %%j %%k ) ) endlocal ---------------------------------------- ※テキストファイルパスはループのもとになっているcsvファイルです。 ※各サブbatは戻り値を返しません。 ============================================================= この処理について サブ1bat及びサブ2batそれぞれの呼び出しで callを先頭に記述する必要があると以前回答いただき 処理としてはサブ1サブ2が全て処理されました。 そこで今回再動作検証した時にFORでループする件数が5件あったのですが、 5件だとサブ1batだけ5件処理が行われ、サブ2batの処理は行われないままメインbatが終了してしまいました。 FORでループする件数が1件だと問題ないなくサブ1サブ2それぞれ実行されたのですが、 複数件あると実行されませんでした。 どこに問題があるのかわからないので困っています。 宜しくお願いいたします。。
- 締切済み
- その他(プログラミング・開発)
- .batファイルから複数ユーザが同時にファイルを開くには?
win2000 使用です。 .bat を実行すると、ファイル内で指定されたファイル(主にエクセル,アクセス)を開くという内容で書きます。 ここで"指定されたファイル"ですが、 ネットワーク上のファイルサーバで共有されているものです。 一人目のユーザが.batを実行し ファイルAを編集中とします。 二人目以降のユーザが同じく、.batを実行しファイルAにアクセス使用とすると"他のプロセスが使用中です"とメッセージが表示され、複数のユーザで同時にファイルAを開く事ができません。 GUIのエクスプローラからマウスでクリックすると"読み取り専用"で開く事ができるわけですが、.batファイルからも読み取り専用ファイルで開く等して、 複数のユーザが同時に同じファイルの内容を参照するには、どうすればよいのでしょうか?
- ベストアンサー
- Windows系OS
- ファイル移動処理(コマンドプロンプト batファイル)
ファイル移動処理(コマンドプロンプト batファイル) .batファイルでファイル名に日付がついたファイル(例:yyyymmdd_test.txt)の最新日付から2世代前のファイルまでをディレクトリに移動するような処理を記述したいのですが、やり方がわかりません。 例) 20100924_test.txt →移動対象外 20100925_test.txt →移動対象外 20100926_test.txt →移動対象 20100927_test.txt →移動対象 20100928_test.txt →移動対象 今、この下記の様に記述をしていますが意図した処理になりません。 どなたか助言を頂けないでしょうか? -------------------------------------------------------- mkdir temp set num=0 for %%f in (????????_test.txt) do ( set /a num+=1 if %num%==1 move %f% \temp\%f if %num%==2 move %f% \temp\%f if %num%==3 move %f% \temp\%f )
- 締切済み
- その他(プログラミング・開発)
- バッチファイルで複数のファイルを処理させたい
バッチファイルを書くことで、複数のwavファイルを同時にWindows Media Encoder 9のエンコードスクリプトを用いて可逆圧縮したいと思っているのですが、バッチファイルでドロップした複数のファイルをまとめて処理することは可能なのでしょうか? もし可能なのであれば、その方法をご教示下さい。お願いします。
- 締切済み
- その他(プログラミング・開発)
お礼
ありがとうございます 意図した通りに動きました 分かりにくい説明から解決まで導いていただき本当にありがとうございました