- ベストアンサー
コマンドプロンプト文法教えてください
COPY AAA BBB のあとに COPY CCC AAA を実行します。 最初のコピーが失敗したら次のコピーは実行しないようにできますか? コピーができたか、失敗したかの判別方法がわかりません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
COPYに限らず、コマンド実行時の成功/失敗は、ERRORLEVELという環境変数に格納されます。 echo %errorlevel% で表示できますから、COPYの成功時/失敗時で値が変わることを確認してみて下さい。 -- 本題の処理の方ですと、IF文をとラベルを使ったGOTO文を使用します。 COPY AAA BBB IF ERRORLEVEL 1 GOTO NG COPY CCC AAA :NG で、「もしコピー失敗だったら、NGの行にジャンプ」とか。
その他の回答 (3)
OSは何をお使いでしょうか? XP/2000の場合は既に回答が出ている方法で問題無いと思います。 95、98やMeのようにcommand.comの子プロセスで動作させる場合は/Zで リターンコードの取得が必要です。 MS-DOS5.0以上ですと、外部コマンドになりますので、実行の際に 実行ファイルが必要だったと記憶しています。 MS-DOS3.3d以前はerrorlevelの実行は出来なかったはずです。
- bono223
- ベストアンサー率31% (71/224)
バッチファイル(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)
%ERRORLEVEL%の値が 0 なら成功 それ以外なら失敗