Batch file 检查变量是否有值时执行批处理文件中断

Batch file 检查变量是否有值时执行批处理文件中断,batch-file,Batch File,若要检查文件是否加载,请使用以下命令加载其内容: set /p filevar=file.txt 并检查var是否为空: if "%filevar%"="" exit 当脚本chceks文件包含多行时,脚本的执行停止,所以我认为chcecking失败了。为什么脚本失败?如何正确地执行这种检查?首先,您的set/p命令的语法搞乱了。实际上,它会用文本“file.txt”提示用户。我想你的意思是 set /p "filevar=" <file.txt 所有三条语句都将具有相同的结果1 在

若要检查文件是否加载,请使用以下命令加载其内容:

set /p filevar=file.txt
并检查var是否为空:

if "%filevar%"="" exit

当脚本chceks文件包含多行时,脚本的执行停止,所以我认为chcecking失败了。为什么脚本失败?如何正确地执行这种检查?

首先,您的
set/p
命令的语法搞乱了。实际上,它会用文本“file.txt”提示用户。我想你的意思是

set /p "filevar=" <file.txt
所有三条语句都将具有相同的结果1

在控制台窗口中,如果要了解更多信息,请输入
帮助



1值得一提的是,虽然这三个
if
语句在附加代码块外具有相同的结果,但只有第三个语句在括号内可靠地工作(例如在
for
循环中)。如果在设置
%filevar%
的同一代码块中使用前两个文件,则需要延迟扩展才能正常工作。

设置/p filevar=file.txt
不会将file.txt的内容加载到变量
filevar
中。它将字符串“file.txt”写入屏幕并等待一行用户输入。或者只需使用
检查变量是否已定义,如果未定义filevar exit/b
if "%filevar%"=="" exit /b
if "%filevar%" equ "" exit /b
if not defined filevar exit /b