是的,我知道,此任务需要管理员权限,但我没有包含它,因为它不会影响我的问题。
我的问题是: 我打字" y"," n"," Y"或者" N",我总是到
:yes
cls
set /p usrnm=Enter Username:
我不知道为什么。有人有解决方案吗?
谢谢
:start
echo This sets your default Microphone Volume to 70% and runs automatically in background after starting your Computer.
set /p anwsr=Do you wish to continue? (y/n):
If %anwsr%=="y" goto yes
If %anwsr%=="n" goto no
If %anwsr%=="Y" goto yes
If %anwsr%=="N" goto no
If %anwsr%=="" goto start && cls
:yes
cls
set /p usrnm=Enter Username:
If %usrnm%=="" goto yes && cls && echo Username must not be empty!
copy "stop_auto_audio_leveling.bat" "C:\Windows"
copy "invisble.vbs" "C:\Users\%usrnm%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
copy nircmd.exe "C:\Windows"
copy nircmdc.exe "C:\Windows"
goto no
:no
cls
echo Program will now quit. Thank you for using my installer!
pause
exit
答案 0 :(得分:1)
因为在If %anwsr%=="N"
中,anwsr
的内容可能是N
,而不是"N"
。
如果if
命令都没有导致分支,则执行将继续:yes
,因为批处理只是逐行执行命令。
解决方案:
使用If /i "%anwsr%"=="N"
其中/i
表示`"不区分大小写"