これ何て呼びますか

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

A 回答 (4件)

COPYに限らず、コマンド実行時の成功/失敗は、ERRORLEVELという環境変数に格納されます。



echo %errorlevel%

で表示できますから、COPYの成功時/失敗時で値が変わることを確認してみて下さい。

--
本題の処理の方ですと、IF文をとラベルを使ったGOTO文を使用します。

COPY AAA BBB
IF ERRORLEVEL 1 GOTO NG
COPY CCC AAA
:NG

で、「もしコピー失敗だったら、NGの行にジャンプ」とか。
    • good
    • 2

OSは何をお使いでしょうか?


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

バッチファイル(xxx.bat)で実行されるということですよね? こんな感じで書けば大丈夫です。

最初のコピーでエラーになれば、"NG!"と表示されて終わります。コピーできれば "OK!"と表示されて終わります。試してみて下さい。

copy AAA BBB
if errorlevel 1 goto _NG
copy BBB CCC
echo OK!
goto _END
:_NG
echo NG!
:_END
    • good
    • 1

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!