なるほどこの演算子は、Windows (Linux でも可能?) で、複数のコマンドを 1 行に連結/結合するために使用されます。コマンドは、前のコマンドが正常に完了する限り (終了コード 0)、次々に実行されます。
しかし、1 行に 1 つのコマンドを次々に指定するバッチ ファイルで使用できるかどうかはわかりません。 この場合、どうすれば同じ効果が得られますか?cmd1 && cmd2 && cmd3
複数の行に分割するにはどうすればいいですか? どのように終了しますか
cmd1
cmd2
cmd3
最初のコマンドが失敗するとすぐに?
後でこのような質問の答えを自分で見つけられるように、オペレーターの名前も知りたいです。
答え1
cmd1 && cmd2 && cmd3
複数行で書くこともできる
cmd1
if not errorlevel 1 cmd2
if not errorlevel 1 cmd3
各コマンドの実行は、前のコマンドの結果に依存する。
答え2
cmd1 && cmd2 && cmd3
GNU/Linux では、次のようにスクリプト ファイル内でコマンドを複数行に分割できます(たとえば、読みやすくするため)。
cmd1 &&
cmd2 &&
cmd3
答え3
それらの違いは次のとおりです。
cmd1
cmd2
cmd3
Ctrl各コマンドを個別に実行し、1 つのコマンドが終了する前に+を押すとバッチ ジョブを終了できますc。
一方
cmd1 && cmd2 && cmd3
スクリプトを確認せずに、一度にコマンドを次々に起動します。
さらに例を挙げると、
最初の例を挙げると、cmd1 の実行中にスクリプトを編集し、cmd2 を cmd3 に変更すると、cmd1 が終了したときに cmd3 が読み込まれます。
Linux では、これを行うとifdown eth0
ssh セッションが失われるため、代わりにifdown eth0 && ifup eth0
コマンドを連鎖します。
失敗に関して何かしたい場合は、戻りコードとエラーレベルとともに、if ステートメントとスイッチを確認する必要があります。リンク。
答え4
バッチ ファイルの場合、各条件演算 && (または ||) の後に ^ 区切り文字を追加する必要があります。例:
echo 1 && ^
echo 2 && ^
copy >null && ^
echo 4