【问题标题】:CMD - Wait for parallel command lines to finish?CMD - 等待并行命令行完成?
【发布时间】:2012-10-16 18:37:01
【问题描述】:

我通过命令行(win7 cmd)并行执行4个任务:

start defrag /A c:
start defrag /A d:
start defrag /A e:
start  defrag /A f:
dir 

但是dir 命令在第一行之后执行。

我希望dir 命令在所有 4 个完成后执行。

我该怎么做?

【问题讨论】:

    标签: windows cmd windows-7


    【解决方案1】:

    您可以使用defrag /M 选项在多个驱动器上启动碎片整理,然后使用defrag /T 选项等待每个驱动器完成。 defrag /T 只等待一个卷完成,但由于你想等待所有卷,这对你有用:

    REM This will start defrag running concurrently on all four drives:
    defrag c: d: e: f: /M
    
    REM Wait for each drive to complete.  But since you want to wait of them, that is okay.
    REM The order is unimportant
    defrag c: /T
    defrag d: /T
    defrag e: /T
    defrag f: /T
    
    REM They are all done.  You are set to whatever you want to do next.
    dir
    

    【讨论】:

      【解决方案2】:

      这将导致defrag /A [drive] 为 c、d、e 和 f 运行,等待每个完成后再开始下一个。最后,它将退出并运行dir

      for %%i in (c d e f) do start "" /B /WAIT defrag /A %%i:
      
      dir
      

      【讨论】:

        【解决方案3】:

        试试这个:

        start defrag /A c:
        start defrag /A d:
        start defrag /A e:
        start defrag /A f:
        
        :StartLoop
        :: Check whether any of the defrags are running...
        tasklist|Findstr /i /c:"defrag"
        :: Exiting the loop if tasklist didn't find any defrags.
        If %errorlevel% NEQ 0 (
           GoTo :ExitLoop
        )
        choice /T 10 /D Y /M "Waiting for 10 seconds..."
        GoTo :StartLoop
        :ExitLoop
        dir 
        

        【讨论】:

        • 谢谢%errorlevel% 将如何获得它的价值? (它在选择之前......)
        • 如果在至少一个文件的至少一行中找到匹配项,则 FINDSTR 将 %ERRORLEVEL% 设置为 0 (False)。 ....谢谢。 p.s.我这样做是为了在睡眠后唤醒我的硬盘并让它们旋转。 defrag /A 将运行最少的测试,所以没问题。 ( dir /s 只是从 fat/ntfs 读取 - 所以这个命令真的让他们旋转)
        • 是的,::rem 相同。感谢投票。 %errorlevel% 是一个环境变量,它告诉您前面的命令是如何执行的。如果命令正常,则该值为零,否则该值不为零。检查dostips.com,它是 DOS 脚本的绝佳来源。
        猜你喜欢
        • 2011-09-20
        • 2015-06-13
        • 2011-10-20
        • 2018-04-27
        • 1970-01-01
        • 1970-01-01
        • 2020-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多