即使循环不正确,For循环也会在几个周期后退出

时间:2019-03-14 16:16:09

标签: batch-file for-loop

因此,我正在创建一个脚本,它将使我的生活变得更加轻松。想法是运行一个卸载命令,该命令将删除文件夹的内容。因此,如果该文件夹为空,它将继续。

此循环应检查目录是否为空,否则应等待60秒,然后再次循环。

for /F %%f in ('dir /A "C:\Test\*.*"') do (
    echo Waiting on uninstall to complete...
    timeout 60
)

我创建了一个用Word文档填充的测试目录,但是我注意到它会循环5-10次,然后退出该程序的其余部分。

任何有帮助的

1 个答案:

答案 0 :(得分:3)

您的示例对文件夹中的每个文件执行60秒的暂停,如@Squashman在评论中所述。如果您只想检查文件目录是否为空,然后重复执行直到它为空,那么这可能会有所帮助。只需检查文件数,如果文件数不是0,请重新启动循环,此过程将一直持续到文件数达到0为止。

@echo off
:start
for /f %%i in ('dir ^| findstr "File(s)"') do (
    if not "%%~i"=="0" (
        echo %%~i files remaining.. Waiting on uninstall to complete...
        timeout 60
        goto :start
    ) else (
        echo uninstall completed... %%~i files remaining
  ) 
)