我正在创建一个批处理文件来更新我的svn存储库并制作其日志的副本,但是一旦我到达if语句,我得到“goto在这个时候是意外的”,而对于我的输入变量的回声它只是说“回声ECHO正在进行”。大部分时间我都在使用它,但无论输入是什么,它总是会说第一个input == "y"
块是真的。
@echo on
set /p UserInput = Are you sure you want to update your repo?
echo %UserInput%
if %UserInput% == "y" goto Update
if %UserInput% == "n" goto :EOF
:Update
svn update
Echo Creating the basic log.
svn log > BasicLog.log
:: creates the non-verbose log
Echo Creating the verbose log.
svn log -v > verboseLog.log
::creates the verbose log
答案 0 :(得分:2)
在set语句中,=
周围不能有空格。您已经创建了一个名为%UserInput %
的变量。
set /p UserInput=Are you sure you want to update your repo?
对于第二部分,您必须在比较运算符的两个侧使用引号,
if /i "%UserInput%"=="y" goto Update
/i
使比较不区分大小写。
逻辑:考虑如果输入既不是y
也不是n
线索:这是有效的:
if /i not "%UserInput%"=="y" goto somewhere