如果文件已加载或不加载,我使用以下命令加载其内容:
set /p filevar=file.txt
并检查var是否为空:
if "%filevar%"="" exit
当脚本chceks文件有多行时,脚本的执行停止,所以我认为chcecking失败。为什么脚本失败?如何进行这样的检查?
答案 0 :(得分:2)
首先,您已经弄清了set /p
命令的语法。实际上,它会提示用户输入文本" file.txt"。我想你的意思是
set /p "filevar=" <file.txt
如果脚本是从命令行运行的,那么您还应该使用/b
开关和exit
来阻止控制台窗口关闭。
但是,正如杰布所说,要检查左边是否正确,请使用==
或equ
。或者,正如dbenham提醒我的那样,如果您要检查空值,也可以使用if not defined
。
if "%filevar%"=="" exit /b
if "%filevar%" equ "" exit /b
if not defined filevar exit /b
所有三个陈述都具有相同的结果 1 。
在控制台窗口中,输入help if
以获取更多信息。
1 值得一提的是,虽然这三个if
语句在括号内的代码块之外具有相同的结果,但只有第三个语句在括号内可靠地工作(例如在for
循环中)。如果在%filevar%
设置的同一代码块中使用,前两个需要延迟扩展才能正常工作。