Robocopy 同时复制,然后执行其他批处理命令
Robocopy simultaneous copy after which other batch commands executed
del "%temp%\robocopy1.flag" "%temp%\robocopy2.flag" >nul
start /b cmd /c robocopy /s /mir D: E: ^& IF %ERRORLEVEL% lss 8 echo > "%temp%\robocopy1.flag"
start /b cmd /c robocopy /s /mir D: E: ^& IF %ERRORLEVEL% lss 8 echo > "%temp%\robocopy2.flag"
:wait
timeout 5
if not exist "%temp%\robocopy1.flag" goto wait
if not exist "%temp%\robocopy2.flag" goto wait
pause
echo success
使用cmd /c
和^&
将检查与robocopy结合起来使用临时文件,因为在父进程中不会看到变量:
del "%temp%\robocopy1.flag" "%temp%\robocopy2.flag" >nul
start /b cmd /c robocopy /s /mir F: F:\dest ^& IF %ERRORLEVEL% lss 8 echo ^>"%temp%\robocopy1.flag"
start /b cmd /c robocopy /s /mir F: F:\dest ^& IF %ERRORLEVEL% lss 8 echo ^>"%temp%\robocopy2.flag"
:wait
timeout 1 >nul
if not exist "%temp%\robocopy1.flag" goto wait
if not exist "%temp%\robocopy2.flag" goto wait
rem final robocopy
注意:^
阻止在 robocopy 之前立即执行 if
并将 &
传递给 cmd /c
以便第二个命令将由启动的命令处理器执行 cmd
robocopy 之后。
del "%temp%\robocopy1.flag" "%temp%\robocopy2.flag" >nul
start /b cmd /c robocopy /s /mir D: E: ^& IF %ERRORLEVEL% lss 8 echo > "%temp%\robocopy1.flag"
start /b cmd /c robocopy /s /mir D: E: ^& IF %ERRORLEVEL% lss 8 echo > "%temp%\robocopy2.flag"
:wait
timeout 5
if not exist "%temp%\robocopy1.flag" goto wait
if not exist "%temp%\robocopy2.flag" goto wait
pause
echo success
使用cmd /c
和^&
将检查与robocopy结合起来使用临时文件,因为在父进程中不会看到变量:
del "%temp%\robocopy1.flag" "%temp%\robocopy2.flag" >nul
start /b cmd /c robocopy /s /mir F: F:\dest ^& IF %ERRORLEVEL% lss 8 echo ^>"%temp%\robocopy1.flag"
start /b cmd /c robocopy /s /mir F: F:\dest ^& IF %ERRORLEVEL% lss 8 echo ^>"%temp%\robocopy2.flag"
:wait
timeout 1 >nul
if not exist "%temp%\robocopy1.flag" goto wait
if not exist "%temp%\robocopy2.flag" goto wait
rem final robocopy
注意:^
阻止在 robocopy 之前立即执行 if
并将 &
传递给 cmd /c
以便第二个命令将由启动的命令处理器执行 cmd
robocopy 之后。