批处理文件中的输入和变量

时间:2015-01-22 23:47:28

标签: batch-file svn

我正在创建一个批处理文件来更新我的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

1 个答案:

答案 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