Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 为什么这个代码不起作用?_Batch File - Fatal编程技术网

Batch file 为什么这个代码不起作用?

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

这是我的第一个问题,如果有点含糊,很抱歉

我现在一直在为一个wile做一个程序,它应该是一个任务时间表,以及这些任务必须完成的时间

一切正常,但我不明白为什么这部分不工作

: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!