如何用批次檔檢查檔案是否存在
假設路徑C:\logs下有20個資料夾內
都有一個log檔案叫做20150121.txt
如何用批次檔檢查20個資料夾內是否都有20150121.txt
如果沒有此檔案則將該資料夾名稱寫入到一個記事本做為檢查???
用if exist好像做不到?還是有甚麼特別的寫法呢?
如何用批次檔檢查20個資料夾內是否都有20150121.txt
下面這個只能找有的:
forfiles /P C:\logs /S /M 20150121.txt /C "cmd /C echo @path"
forfiles /P C:\logs /S /D -1 /M *.txt /C "cmd /C echo @path"
forfiles /P C:\logs /S /M 20150121.txt /C "cmd /C echo @path"
那如果我要將沒有20150121.txt的資料夾名稱寫到一個記事本呢?
該如何處理?
goldvip提到:
@ECHO OFF
SET _file=20150121.txt
set _dir=c:\log
不知道這樣寫是否有符合需求...
<pre class="c" name="code">@ECHO OFF
SET _file=20150121.txt
set _dir=c:\log
DIR %_dir% /b /a:d > folder_list.txt
FOR /F %%a IN (folder_list.txt) DO (
ECHO check %_dir%\%%a
IF NOT EXIST %_dir%\%%a\%_file% ECHO %%a %_file%檔案不存在. >> check_result.txt
)
DEL folder_list.txt
PAUSE