• ベストアンサー

コマンドプロンプト文法教えてください

COPY AAA BBB のあとに COPY CCC AAA を実行します。 最初のコピーが失敗したら次のコピーは実行しないようにできますか? コピーができたか、失敗したかの判別方法がわかりません。

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

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

COPYに限らず、コマンド実行時の成功/失敗は、ERRORLEVELという環境変数に格納されます。 echo %errorlevel% で表示できますから、COPYの成功時/失敗時で値が変わることを確認してみて下さい。 -- 本題の処理の方ですと、IF文をとラベルを使ったGOTO文を使用します。 COPY AAA BBB IF ERRORLEVEL 1 GOTO NG COPY CCC AAA :NG で、「もしコピー失敗だったら、NGの行にジャンプ」とか。

その他の回答 (3)

noname#15344
noname#15344
回答No.4

OSは何をお使いでしょうか? XP/2000の場合は既に回答が出ている方法で問題無いと思います。 95、98やMeのようにcommand.comの子プロセスで動作させる場合は/Zで リターンコードの取得が必要です。 MS-DOS5.0以上ですと、外部コマンドになりますので、実行の際に 実行ファイルが必要だったと記憶しています。 MS-DOS3.3d以前はerrorlevelの実行は出来なかったはずです。

  • bono223
  • ベストアンサー率31% (71/224)
回答No.3

バッチファイル(xxx.bat)で実行されるということですよね? こんな感じで書けば大丈夫です。最初のコピーでエラーになれば、"NG!"と表示されて終わります。コピーできれば "OK!"と表示されて終わります。試してみて下さい。 copy AAA BBB if errorlevel 1 goto _NG copy BBB CCC echo OK! goto _END :_NG echo NG! :_END

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

%ERRORLEVEL%の値が 0 なら成功 それ以外なら失敗

関連するQ&A

専門家に質問してみよう