web-dev-qa-db-ja.com

エラー後に.batファイルを続行するにはどうすればよいですか

3つのことを行う.batファイルがWindowsにあります

cmd1 arg1 arg2
cmd2 arg3 
cmd3 arg4 arg5 arg6

Cmd1が失敗することもありますが、問題ありません。cmd2とcmd3を引き続き実行して実行したいと思います。しかし、私のバットはcmd1で止まります。どうすればこれを回避できますか?

pdate明確にするために-これらは他の.batファイルではなく、exeコマンドです。うまくいけば、これを達成するためだけに.batファイルのツリーを構築する必要はありません。

32
ConfusedNoob

別のオプションは、アンパスタンド(&

cmd1 & cmd2 & cmd3

Doubleを使用する場合、前のコマンドが正常に完了した場合にのみ実行されます(%ERRORLEVEL%==0

cmd1 && cmd2 && cmd3

二重パイプ(||)、前のコマンドがエラーコード(%ERRORLEVEL% NEQ 0

cmd1 || cmd2 || cmd3

20
Canadian Luke

Cmdsが他の.batファイルであると想定すると、次のようなコマンドがスタックされます。

 call cmd1
 call cmd2
 call cmd3
13
mdpc

これは私のために働きました:

cmd.exe /c cmd1 arg1
cmd2
...

これはcmd.exeコマンドをWindowsコマンドインタープリターの新しいインスタンスで実行するため、失敗したコマンドがバッチスクリプトを中断することはありません。 /cフラグは、コマンドの実行が完了するとすぐに終了するようインタープリターに指示します。

cmd2は、最初のコマンドが失敗した場合でも実行されます。見る cmd /?詳細については、Windowsコマンドプロンプトから。

11
Joseph238