批量FOR循环以查找文件

时间:2017-05-19 15:23:26

标签: batch-file for-loop

我有一个我运行的批处理文件,我等待在目录中写入一个文件。目前我有一个PAUSE命令,一旦文件在那里,我只需按一个键,其余的批处理继续。

我想用一个查找文件的FOR循环替换那个PAUSE,并在文件到达后自动运行批处理的其余部分

这是

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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"