• ベストアンサー

バッチファイルの動作の質問です

Windowsでバッチファイルを動作させる際に バッチファイルは上から順に処理が進んでいくと思うのですが、 エラーが出た場合は、バッチファイルの処理は止まり 次には進まないものでしょうか? バッチファイルでrobocopyをしようとしています。 よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

Windowsのバッチファイルはバッチファイルの構文エラーを除いて 基本的にあなたがコマンドプロンプトでその通りに打つのと同じ動作をする。 つまり、エラーはエラーとして次に進む。 ~~~sample.batここから~~~ @echo off dir /w bbb.exe ←存在しないexeを叩く dir /w ~~~sample.batここまで~~~ これを実行すると、以下の結果になる。 ドライブ C のボリュームラベル云々 ボリュームシリアル番号は云々 C:\Users\hogeのディレクトリ [.] [..] [.android] [Contacts] [Desktop] [Documents] [Downloads] [Favorits] [Links] [Music] [Pictures] [Videos] n個のファイル n個のディレクトリ 'bbb.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ドライブ C のボリュームラベル云々 ボリュームシリアル番号は云々 C:\Users\hogeのディレクトリ [.] [..] [.android] [Contacts] [Desktop] [Documents] [Downloads] [Favorits] [Links] [Music] [Pictures] [Videos] n個のファイル n個のディレクトリ bbb.exeをコマンドプロンプトで起動しようとしたときと同じようにエラーが表示され、 その次のdir /wに制御が移る。 じゃあ逆にエラーが起きたらそこで止めたい時は? バッチファイルを極めたいなら上記の内容を理解した上で ERRORLEVEL 環境変数などの理解にステップアップしていくといいだろう。

nenosuke
質問者

お礼

回答どうもありがとうございます。 どのように動作が進むのかがよくわかりました。 ERRORLEVELという用語は知らなかったので、 勉強してみたいと思います 大変参考になりました。

関連するQ&A

  • バッチファイルの実行方法

    Windows Server 2003で、Robocopy.exe(Resource KitToolsからインストールしたもの)の連続処理のために、下記のようなバッチファイル(.bat)を用意しました。 robocopy "D:\a" "F:\a" /E /copy:DT /NP /LOG:c:\robocopy.txt /TEE robocopy "D:\b" "F:\b" /E /copy:DT /NP /LOG+:c:\robocopy.txt /TEE .... コマンドの各行は間違っていないようです(cmd.exeに各行を打ち込んで実行すると正常に処理されます)。しかし.batをダブルクリックするとコマンドプロンプト画面内でバッチファイルの1行目がすごい勢いで流れるだけで、処理されません(コマンドプロンプトを強制終了するしかありません)。 最初は.batをダブルクリックすると正常に処理されていたのですが、急にこうなりました。なぜでしょうか? command.comから.batファイルを実行すると正常に処理されます。command.comから実行しないといけないものなのでしょうか? バッチファイルの拡張子を.batにするか、.comにするか関係があるでしょうか?

  • ROBOCOPYのバッチ処理

    ROBOCOPYでは、一番上の階層は指定できないのでしょうか? 指定の仕方がまずいのでしょうか? エラーで止まってしまいます。 ROBOCOPY "D:\" "X:\" /MIR /XO また、初歩的な質問なのですが、バッチ処理では上から順に処理されていくと考えてよろしいくのでしょうか? 例えば下記のようにした場合 @ecoh off ROBOCOPY "D:\TEST1" "X:\TEST1" /MIR /XO ROBOCOPY "D:\TEST2" "X:\TEST2" /MIR /XO ROBOCOPY "D:\TEST3" "X:\TEST3" /MIR /XO D:\TEST1からX:\TEST1へのコピーが終わってから、D:\TEST2からX:\TEST2へのコピーが始まると考えてよろしいでしょうか? 同時に実行されて、マシンのリソースを過剰に喰ってしまわないかと心配しております。 よろしくお願い致します。

  • バッチでのファイル読み込み

    バッチでファイルの内容を最下行から順に上に読み込んでいく方法を教えてください。

  • バッチファイルの作法をまとめたサイトとかありますか?

    システムの運用に使うためのWindowsのバッチファイル(.bat)で、 たとえばログのはき方はこうやった方がいいとか、 エラー処理はこうやれ、とか、 ファイルの最初と最後ではこうゆう処理を入れといた方がいい、とか、 そうゆうのをまとめたサイトありますか? あるいは、見本みたいなバッチファイルがあれば教えてください。 バッチファイルの部分的な使い方(日付の出し方等、ピンポイント)は 探せば見つかるのですが。。。

  • バッチファイル 時間指定

    バッチファイルをスタートアップに入れています。 手軽で便利なのですが、起動するたびに出てしまうので、if文か何かを使って、前回の実行してから12時間経っていない場合はバッチファイルを終了させるようにできないでしょうか。 robocopyを使ったバッチで、オプションでログを作成するようにしています。そのテキストファイルの作成時間で12時間経っているかどうか判断できればと思っています。

  • Win2K8 R2のタスクでバッチが動作しない

    Windows2008 R2のタスクスケジューラでバッチファイルが実行できない状態に陥っています。 環境・状況等は以下のとおりです。 ・バッチファイルを単体で実行させたときには、問題なく実行できる。 ・ネットワーク上のサーバのあるフォルダをrobocopyするジョブ。 ・タスクスケジューラから実行できている他のバッチファイルを流用して作成。(このジョブも別のサーバのバックアップをしている) ・実行結果は、0x1。 ・タスクスケジューラ登録時には、administratorで登録し、パスワードも入れている。 問題のバッチファイルを直接叩いたときには、何のエラーもなく、約3時間要するrobocopyでのバックアップが稼動しますが、 タスクスケジューラに登録して実行しようとすると、タスクスケジューラの履歴をみると、スタートはしているがすぐに終了して おり、バッチファイル内に記述したrobocopyが稼動していないようです。 バッチファイルの内容は ----------------------- @echo off set LOGFILE=c:\bat\fd_backup\backup.log date /t>%LOGFILE% echo 開始時刻>>%LOGFILE% time /t>>%LOGFILE% echo. >>%LOGFILE% echo Run backup.bat>>%LOGFILE% echo. >>%LOGFILE% ROBOCOPY \\server1\backup\ D:\BACKUP\server1-back\ /MIR /NP /FP /TS /COPYALL /TEE /R:0 /LOG+:%LOGFILE% echo. >>%LOGFILE% echo 終了時刻>>%LOGFILE% time /t>>%LOGFILE% ------------------------- もうひとつ登録してあるバッチファイルは、robocopyの全く同じコマンドで、対象としているサーバと保存先やログファイル名が 異なるだけで問題なくタスクとして稼動しています。 ネット上でいろいろと調べてチェックしてみましたが、おかしいところが見当たらず、困っています。 アドバイスよろしくお願い致します。

  • バッチファイルについて教えてください。

    バッチファイルで、iniファイルの内容を一部書き換える方法を教えてください。 OSによって、iniファイルが格納されている場所が違います。 C:\Program Files\bbbb\aaaa.ini または C:\Program Files\aaaa.iniのどちらかにあるaaaa.iniの内容を書き換えるバッチファイルを作りたいです。 書き換える内容は、下記になります。 POP3Server="192.168.1.201" ⇒ POP3Server="192.168.1.208" SMTPServer="192.168.1.201" ⇒ POP3Server="192.168.1.208" です。 直接、変更するには台数が多く(100台くらい)できればバッチファイルで 実施したいのですが、今までXCOPYやROBOCOPY等の簡易的なバッチ ファイルしかなく作ったことがなく、ご教授いただければと思います。 宜しくお願いします。

  • バッチファイルのコマンド

    なんかバッチファイルで ROBOCOPY D:\RAMImage F:\icache\cache /e こんな感じ↑のバッチファイルを実行するとF:\icache\cacheフォルダの中にもうひとつのcacheフォルダとそれ以下のファイルができてしまうのですがなぜですか? OSはVistaです。 よろしくおねがいします。

  • robocopyを使用したい。バッチファイルをつくりたい。

    現在、大学の研究室のサーバ管理をやらせてもらっています。 サーバーのバックアップをとりたいのです。 PCが一台あまっていたこともあり、セカンダリーサーバーを立ち上げ、バッチファイルを作り、スケジューラーで読み込ませて、毎日バックアップをとりたいのですが、バッチファイル(WSH?)というものがいまいちよくわかりません。 自分は、大学の課題でCやC++を使用しただけで、それほど詳しくありません。 バッチファイルの書式、ルール、等々ネットで調べてもよくわかりません。 httpのように、ある程度ルールに従って書式が決まっているのでしょうか? それと、題名にも記しているようにrobocopyコマンドを使用してミラーリング(?)をしたいのです。 バッチファイルの書式、また、どこにrobocopyコマンドを記入すればいいのか、良い例題があれば教えてください。 お願いします。

  • バッチファイルについて質問です

    質問お願いします!! たとえばコマンドプロンプトから "1.exe" & "2.exe" を実行すると同時に処理(起動)されるのですが バッチファイルにして実行すると1を閉じててから2が起動する。 という感じになるのですがなぜなのでしょうか? そもそもコマンドプロンプトからの実行と バッチファイルでの実行で違いはあるのでしょうか?? コマンドは全くの初心者なのですが急いでいたので 質問させていただきました。。。 windows vista です。 どなかたどうぞよろしくお願い致します。

専門家に質問してみよう