检查文件是否存在

时间:2011-08-22 08:23:47

标签: variables batch-file if-statement

我有以下蝙蝠,但它似乎工作我想检查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
)

3 个答案:

答案 0 :(得分:1)

有一些小错误,但这些错误是造成重大困难的原因。

  1. 您可以使用SET /P命令从文件中读取一行,而不只是使用SET

    SET /P FAT=<C:\tom.txt
    
  2. 文件存在检查命令中的关键字为 EXIST ,而不是EXISTS

    IF EXIST …
    

    此外,如果您只需要对文件的 - 存在做出反应,您只需添加NOT

    IF NOT EXIST …
    

    所以,整个命令可能是这样的:

    IF NOT EXIST %FAT% C:\runme.bat
    

答案 1 :(得分:0)

我相信正确的语法是

if exist %FAT% goto NORUN
C:\runme.bat
:NORUN

注意代码中“存在”与“存在”。还有一些需要注意的事项:

  1. 文件NUL存在于任何驱动器上的任何目录中,因此检查 对于C:\NUL,将始终返回true。
  2. 检查文件是否存在 并不总是在网络设备上正常工作。
  3. 有关详细信息,请参阅http://support.microsoft.com/kb/65994

答案 2 :(得分:0)

我认为最简单的解决方案是在这一行上完成所有这些:

IF NOT EXIST C:\tom.txt C:\runme.bat

除非您打算再次使用它,否则不需要变量,它只是意味着另一行代码。正如Aleks G和Andriy M所说,你需要确保命令和参数拼写正确。