Variables 检查文件是否存在
我有下面的bat,但它似乎不起作用我想检查tom.txt中的文件名,如果它存在,我什么也不想做,如果它不存在,我想运行runme.batVariables 检查文件是否存在,variables,batch-file,if-statement,Variables,Batch File,If Statement,我有下面的bat,但它似乎不起作用我想检查tom.txt中的文件名,如果它存在,我什么也不想做,如果它不存在,我想运行runme.bat Echo Setting variable to file name set FAT=<C:\tom.txt ECHO Checking for file, if exists do nothing if not run bat... if exists %FAT% ( end )else( C:\runme.bat ) Echo将变量设置为文件名
Echo Setting variable to file name
set FAT=<C:\tom.txt
ECHO Checking for file, if exists do nothing if not run bat...
if exists %FAT% (
end
)else(
C:\runme.bat
)
Echo将变量设置为文件名
设置FAT=有一些小错误,但是,它们是造成您主要困难的原因
您可以使用SET/p
命令从文件中读取一行,而不仅仅是使用SET
:
SET /P FAT=<C:\tom.txt
此外,如果您只需要对文件不存在作出反应,则只需添加NOT
:
IF NOT EXIST …
因此,整个命令可能如下所示:
IF NOT EXIST %FAT% C:\runme.bat
IF NOT EXIST C:\tom.txt C:\runme.bat
我相信正确的语法是
if exist %FAT% goto NORUN
C:\runme.bat
:NORUN
注意代码中的“exist”和“exists”。还有几件事需要注意:
文件NUL存在于任何驱动器的任何目录中,因此检查
对于C:\NUL
将始终返回true
检查文件是否存在
在网络设备上并不总是正常工作
有关更多信息,请参阅。我认为最简单的解决方案是在一行中完成所有操作,如下所示:
IF NOT EXIST %FAT% C:\runme.bat
IF NOT EXIST C:\tom.txt C:\runme.bat
不需要变量,除非您打算再次使用它,它只意味着另一行代码。正如Aleks G和Andrey M所说,您需要确保命令和参数拼写正确。不正确tom.txt
保证存在。我们想要的文件名存储在tom.txt
中。