Batch file 为什么这个代码不起作用?
这是我的第一个问题,如果有点含糊,很抱歉 我现在一直在为一个wile做一个程序,它应该是一个任务时间表,以及这些任务必须完成的时间 一切正常,但我不明白为什么这部分不工作Batch file 为什么这个代码不起作用?,batch-file,Batch File,这是我的第一个问题,如果有点含糊,很抱歉 我现在一直在为一个wile做一个程序,它应该是一个任务时间表,以及这些任务必须完成的时间 一切正常,但我不明白为什么这部分不工作 :edit echo Select Task echo (from 1 to 7) set /p sel= if %sel%=1 ( goto task1 ) 然后它应该把我带到这里来 :task1 pause
:edit
echo Select Task
echo (from 1 to 7)
set /p sel=
if %sel%=1 ( goto task1 )
然后它应该把我带到这里来
:task1
pause
echo Insert Task
echo.
set /p task1=
echo.
echo Set Time
echo.
set /p %time1%=
echo.
pause
行:
如果%sel%=1(转到task1)
非常不完整
这样写:
if "%sel%"=="1" goto task1
正如@Antonio所说,
if
语句存在问题。我还在中发现另一个问题:task1
set /p %time1%=
应该是
set /p time1=
…然后访问www.ss64.com/nt,学习一下批处理脚本。这是您的IF语句。单个等号“=”用作批处理中的赋值运算符:
set var=fubar
要比较两个值,请使用双等于“=”:
希望这会有所帮助,这是我开始编写代码时经常遇到的问题之一,您会习惯的。打开命令提示窗口,然后运行
if/?
以显示此命令的帮助。如您所知,相等运算符是=
,而不是=
或eq
。另外,在使用命令CD更改到批处理文件的目录并通过输入其名称并按RETURN键执行批处理文件后,在命令提示窗口中运行批处理文件时,您可以看到Windows命令解释器输出的关于类似以下语法错误的错误消息。双击批处理文件不利于测试开发中的批处理文件,因为控制台窗口在执行退出时会自动关闭。请至少参阅答案的第一章,这是关于调试批处理文件的。您会发现这很有用。set/p%time1%=
很可能也是错误的。此行将用户输入的字符串(如果输入了任何内容)分配给名称为环境变量的环境变量time1
当前已分配。我假设这一行被执行为set/p=
,这也是一个语法错误,因为批处理执行的这一点上没有定义time1
。您很可能需要set/P“time1=set time:”
,并希望批处理用户真正输入您期望的内容。我标记此问题是因为寻求调试帮助(“此代码为什么不工作?”)的问题必须包括所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小、完整且可验证的示例。
if "%var%"=="fubar" echo It'll be reet!