私はDOSで働いたことがありません。なぜなら、より強力なシェルスクリプトがUNIXにあったからです。初めて私はWindowsで作業していて、DOS/Batchスクリプトについてよく知らない。このエラーレベルはどのように設定されていますか?
リモートマシンを再起動するための小さなスクリプトを作成しようとしていました。 スクリプトを洗練させながら、最後に実行したコマンドの戻りコードの一種である環境var%ERRORLEVEL%について学習しました。
コマンドが実行されたが望みの結果やエラーmsgが生成されない場合、エラーコードはゼロではありません。 リモートシャットダウンを試みていて、ネットワークに存在しないホストを提供しています。 「ネットワークパスが見つかりませんでしたが、%ERRORLEVEL%はまだゼロです」と表示されます。これは、この質問をすること全体のポイントです。
ゼロが成功したコマンドを実行するように指定されているため、%ERRORLEVEL%以外のものをキャプチャする必要がありますか?「ネットワークパスが見つかりません」をスローするときに%ERRORLEVEL%を変更していません。
shutdown command I am using:
shutdown -r -f -t %DELAYOF% -m \\%COMPNAME% -c %COMMENT%
私は、無効な値は%COMPNAME%以下に与える与えた場合、それはプロンプトが「ネットワークパスが見つかりません」しかし%のEERORLEVEL%は変更されていないと言います。
ERRORLEVELをテストする前に実行しているコマンドは何ですか? – hometoast
どのバージョンのWindowsですか? –
ERRORLEVELという名前の環境変数が割り当てられていないことを再確認します(%ERRORLEVEL%が機能しない場合)。引数を指定しないでSETコマンドを実行すると、現在の環境変数がすべて表示されます。 –