【问题标题】:Call CMD START copy - background zombie process调用CMD START复制-后台僵尸进程
【发布时间】:2015-06-02 21:23:51
【问题描述】:

运行以下脚本后,它会留下 4 个僵尸 cmd 进程。对此有何解释,如何让进程退出?

call cmd /c start /b copy /y "%VIP_PATH%\*.txt" "P:\"
call cmd /c start /b copy /y "%VIP_PATH%\*.doc" "P:\"

call cmd /c start /b copy /y "%VIP_PATH%\*.xls" "P:\"
call cmd /c start /b copy /y "%VIP_PATH%\*.pdf" "P:\"

【问题讨论】:

  • 埃加德!为什么你的copy 命令有这么多序言? callcmd /cstart /b 添加了哪些功能?你知道,你可以把它浓缩成robocopy "%VIP_PATH%" P:\ *.txt *.doc *.xls *.pdf
  • 这个脚本是一个更大脚本的一部分,所以我需要在后台进行。这些文件被复制到服务器中,所以我希望它们同时运行,以节省一些时间。
  • 嗯,是的,start /b 使 copy 命令非阻塞。但是为什么call cmd /cstart /b 之前呢?
  • 只需执行robocopy 命令,伙计。问题解决了。
  • 在更大的脚本中使用这个,有一些东西可以返回,但仍然留下了这些过程。奇怪的是,使用相同的 sintax "call cmd /c start /b" 来调用另一个批次工作正常。

标签: batch-file cmd call zombie-process


【解决方案1】:

“问题”是当您使用内部命令作为参数调用start /b(在您的情况下为copy)时,执行的是

 "%comspec%" /k yourCommand

也就是说,命令处理器执行指令以使其保持打开状态。

试试

start /b "" cmd /c copy /y "%VIP_PATH%\*.txt" "P:\"

【讨论】:

  • 感谢提醒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多