2017-05-19 179 views
0

我有一個批處理文件,我運行並等待文件寫入目錄中。目前我有一個PAUSE命令,一旦文件在那裏,我只需按一個鍵,批處理的其餘部分就會繼續。批處理循環查找文件

我想與一個以取代暫停循環,查找該文件是存在的,並自動運行批處理的其餘部分,一旦文件到達那裏

這是部分

echo Make sure TEST file is ready 
PAUSE 
ren *.csv test.csv 

有任何想法嗎?

+0

已寫入該文件夾中的文件是具有隨機名稱的csv文件。 –

回答

0

A for loop不能等待文件存在。

如果沒有匹配的文件存在,您可以使用goto循環和if子句有條件地跳回。確保插入的循環延遲(例如,timeout)不重加載CPU:

:LOOP 
> nul timeout /T 1 /NOBREAK 
if not exist "*.csv" goto :LOOP 
ren "*.csv" "test.csv" 

在情況下也可能存在具有匹配名稱的目錄,你可以使用dir /A:-D搜索匹配的文件僅與conditional operator ||一起:

:LOOP 
> nul timeout /T 1 /NOBREAK 
> nul 2>&1 dir /A:-D "*.csv" || goto :LOOP 
ren "*.csv" "test.csv"