私は以下のコードを書こうとしていますが、終了する前にエラーを表示したいのですが、実行するたびにすぐに終了します。if文の中でしばらくの間、バッチファイルをスリープ状態にする方法はありますか?
私も試してみましたtimeout /t 5
は動作していません。
私は以下のコードを書こうとしていますが、終了する前にエラーを表示したいのですが、実行するたびにすぐに終了します。if文の中でしばらくの間、バッチファイルをスリープ状態にする方法はありますか?
私も試してみましたtimeout /t 5
は動作していません。
これは動作するはずです:
@echo off
cd "haha" 2>nul
if %errorlevel%==1 (
echo Failure reason given is %errorlevel%
timeout /t 5
exit /b %errorlevel%
)
ああああああ... 28秒... – geisterfurz007
これは完璧に働いて、ありがとう!もう1つ、エラーをどのように印刷できますか?私はそれは明らかにディレクトリが存在しないことを意味し、とにかくそれが終了した理由についてのエラーを印刷するにはありますか?どうもありがとう! –
'2>ヌル'を削除して質問に答えを入れてください – SachaDee
正しい構文は同じことを意味しているif errorlevel is 1 or greater
OR
if %errorlevel% geq 1 (
を意味
if errorlevel 1 (
です。
現状では、cmd
はあなたが(errorlevel
が1であると仮定)
if 1 1 (
ようなコードを解釈されます。これは構文エラーです。したがって、cmd
にメッセージが表示されます。あなたがポイントをクリックしてクソをすることによって走っているなら、ウインドウは閉じます。プロンプトから実行している場合、cmd
は構文エラーを報告します。
しかし、プロンプトからexit
文を実行すると、cmd
インスタンスが強制終了されることに注意してください。別の理由がない限り、goto :eof
を使用する方が良いでしょう。
timeout /t 5
は動作しますが、カウントダウンを生成します。
timeout /t 5 >nul
は、単に待機する必要があります。問題は、最初にif
の構文を解決しなければならないことです。そうでないとtimeout
命令には到達しません。
お使いのOSは? – Hackoo
If ErrorLevel 1またはIf%ErrorLevel%== 1のいずれかを使用してください。 – Compo
私はWindows上にいます。 –