2011-08-22 77 views
2

我有下面的蝙蝠,但它dosnt似乎工作我想檢查一個文件名在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 
) 

回答

1

有一些小錯誤,但是,這是你的主要困難的原因。

  1. 你可以閱讀從與SET /P命令文件中的行,而不是簡單地用SET

    SET /P FAT=<C:\tom.txt 
    
  2. 在文件存在檢查命令中的關鍵字是EXIST,不EXISTS

    IF EXIST … 
    

    此外,如果您只需要對文件'小號 -existence,你可以簡單地添加NOT

    IF NOT EXIST … 
    

    所以,整個命令可能是這樣的:

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

我相信正確的語法是

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

請注意代碼中的「存在」與「存在」。一對夫婦的其他注意事項:

  1. 文件NUL存在任何驅動器上的任何目錄,因此檢查 爲C:\NUL將始終返回true。
  2. 檢查文件是否存在 在網絡設備上無法正常工作。

查看http://support.microsoft.com/kb/65994瞭解更多信息。

0

我認爲最簡單的解決辦法是做所有的這樣一行:

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

沒有必要,除非你打算再次使用它的變量,它只是意味着另一行代碼。正如Aleks G和Andriy M所說,您需要確保命令和參數拼寫正確。

+0

不正確。 'tom.txt'保證存在。我們想要的文件名存儲在'tom.txt'裏面。 –

+0

是的,你的權利,我的錯誤 –