2017-05-23 8 views
0

ユーザー入力に応じて複数のコマンドを実行するために以下のコードを作成しましたが、入力では大文字と小文字が区別されます。変数の大文字小文字を区別しない入力でバッチコードが機能しない

ifステートメントで/Iスイッチを試してみましたが、どちらも動作しません。以下は

コードです:

@Echo off 
SET /P uname=Launch Outlook in safe mode: 
IF "%uname%"==Yes GOTO Error 
IF "%uname%"==No GOTO start 
:Error 
taskkill /IM Outlook.exe /f 
cd c:\Program Files (x86)\Microsoft Office\root\Office16 
start Outlook.exe /safe 
@echo The Script is running please wait && timeout /t 20 
taskkill /IM Outlook.exe /f 
cd %Homepath% 
cd Appdata\Local\Temp 
echo.>myfile.txt && @echo Thanks for using the script,You may close this window.and continue. > myfile.txt 
start outlook.exe 
timeout /t 8 
start notepad myfile.txt 
:End 
:start 
echo "No valid options" 
echo "This window would close in 10 seconds" && timeout /t 10 
:End 
+4

プット*引用符に比較の両方*脇: '場合は/私は "%のunameの%"= = "Yes" ... ' – Stephan

+2

また、あらかじめ決められたレスポンスを探しているときは、' choice.exe'を利用してください。 _予期せぬユーザー入力のためのシナリオをたくさん作成するよりもずっと簡単です。詳細については、 'CHOICE /? 'と入力してください。 – Compo

+2

あなたの 'if'節がStephanによって指摘されたように一致できないという事実に加えて、ユーザが' Yes'も 'No'も入力しないとどうなると思いますか?あなたはどこで執行が続くと思いますか? – aschipfl

答えて

0

は、私が選択コマンドを使用する代わりに

echo Y] Yes 
echo N] No 
choice /c yn /n 
if %errorlevel%==1 goto yes 
if %errorlevel%==2 goto yes 
関連する問題