2016-08-11 17 views
-1
@echo off 
set /p Shutdown5=Would you like to shutdown your computer in 5 seconds? 
If "%INPUT%" == "y" goto yes 
If "%INPUT%" == "n" goto no 

:yes 
echo Shutting down in 5 
/t 1 
echo Shutting down in 4 
/t 1 
echo Shutting down in 3 
/t 1 
echo Shutting down in 2 
/t 1 
echo Shutting down in 1 
/t 1 
echo Shutting down. 

:no 
exit 

上記のコードは私にとっては役に立たないコードです。誰でも私の間違いを指摘することができますが、私は100%不確かです...このコードでこの不明なエラーを修正するにはどうすればよいですか? (バッチファイル)

+0

あなたは私たちはあなたを助けることができる動作しないものを明確に教えている場合。ユーザーが 'y'や' n'以外の何かを入力した場合、何が起こるか考えなかったと思います... – aschipfl

+0

@aschipfl私は 'y'なら 'yes'に、 'n'ならnoに行きます。 – AidenTooMLG

+0

はい、しかし、例えば 'a'を入力すると実行がどこで続行されるか考えてみましょう。なぜなら、_both_条件が満たされていないときです。ああ、ちょうどあなたが変数 'Shutdown5'を設定していても、あなたが変数' INPUT'を照会していることを認識しました... – aschipfl

答えて

0

/tはコマンドではないので、このスクリプトは機能しません。私はあなたがTIMEOUT /T 1を使用したいと思います。これは1秒間のタイムアウトを意味します。だから、これを試してください:あなたはまた、timeoutコマンドによってエコーされたメッセージを回避したい場合

@echo off 
set /p Shutdown5=Would you like to shutdown your computer in 5 seconds? 
If "%INPUT%" == "y" goto yes 
If "%INPUT%" == "n" goto no 

:yes 
echo Shutting down in 5 
timeout /t 1 
echo Shutting down in 4 
timeout /t 1 
echo Shutting down in 3 
timeout /t 1 
echo Shutting down in 2 
timeout /t 1 
echo Shutting down in 1 
timeout /t 1 
echo Shutting down. 

:no 
exit 

は、代わりにこれを使用する:

timeout /t 1 >nul 2>&1 
+0

あなたは明らかに見逃しました。 'INPUT'は定義されていません。 – DavidPostill

+0

@DavidPostillどうすれば修正できますか? – AidenTooMLG

+0

@AidenTooMLG 'set/p INPUT =コンピュータを5秒以内にシャットダウンしますか? – DavidPostill

関連する問題