Board logo

标题: [文件操作] 求助批处理多线程 xcopy的等待问题 [打印本页]

作者: sonewboy    时间: 2023-11-4 13:24     标题: 求助批处理多线程 xcopy的等待问题

从坛内大神得到多进程xcopy代码如下:
  1. @echo off&&setlocal enabledelayedexpansion
  2. set m=10
  3. for /f "delims=" %%g in (list.txt) do (
  4.   start "" %%g
  5.   set /a m-=1
  6.   if !m!==0 ping /n 5 127.1>nul&&set m=10
  7.   )
  8. )
复制代码
list.txt 里是 很多行 xcopy C:\a\*** D:\b\ /d /e /y


但是每个xcopy需要运行的时间不同,经常出现10个进程还没有完成就被强制结束,
想实现计算当前运行的cmd窗口个数,当cmd个数为0时才运行下一批次,

请问怎样取得当前运行的cmd窗口个数?
作者: 523066680    时间: 2023-11-4 13:34

买个固态硬盘 直接单进程复制 √
普通硬盘,命令行多线程复制  ×
作者: 77七    时间: 2023-11-4 15:48

本帖最后由 77七 于 2023-11-4 16:02 编辑
  1. @echo off&&setlocal enabledelayedexpansion
  2. set m=10
  3. for /f "delims=" %%g in (list.txt) do (
  4. start "mark" %%g
  5. set /a m-=1
  6. if !m! equ 0 (
  7. set m=10
  8. call :1
  9. )
  10. )
  11. pause & exit
  12. :1
  13. for /f %%a in ('tasklist /fi "WINDOWTITLE eq mark" ^|find /c "cmd.exe"') do (
  14. if %%a equ 0 (
  15. exit /b
  16. ) else (
  17. timeout 2 >nul
  18. goto :1
  19. )
  20. )
复制代码

作者: ShowCode    时间: 2023-11-4 16:38

回复 1# sonewboy


建议放弃xcopy,改用默认多线程的robocopy,参考:
http://bbs.bathome.net/thread-6283-1-1.html#pid40646




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2