0
我有一個批處理文件,我運行並等待文件寫入目錄中。目前我有一個PAUSE命令,一旦文件在那裏,我只需按一個鍵,批處理的其餘部分就會繼續。批處理循環查找文件
我想與一個以取代暫停循環,查找該文件是存在的,並自動運行批處理的其餘部分,一旦文件到達那裏
這是部分
echo Make sure TEST file is ready
PAUSE
ren *.csv test.csv
有任何想法嗎?
我有一個批處理文件,我運行並等待文件寫入目錄中。目前我有一個PAUSE命令,一旦文件在那裏,我只需按一個鍵,批處理的其餘部分就會繼續。批處理循環查找文件
我想與一個以取代暫停循環,查找該文件是存在的,並自動運行批處理的其餘部分,一旦文件到達那裏
這是部分
echo Make sure TEST file is ready
PAUSE
ren *.csv test.csv
有任何想法嗎?
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"
已寫入該文件夾中的文件是具有隨機名稱的csv文件。 –