[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已完成]怎样让一个批处理copy完文件后,再执行另一个?

本帖最后由 west 于 2011-4-13 14:25 编辑

现在有2个批处理,copy.bat,  test.bat.
copy.bat里有大量文件的拷贝动作,我希望在copy.bat执行完全部文件的copy后,接着顺序执行test.bat,该怎样实现呢?
我也试过在copy.bat最后一行加start test.bat,但实际文件还没全部copy完,就开始执行test.bat.

代码如下:
1.HandleConfig.bat, 读一个ini,然后同时调用copy.bat,copy2.bat,test.bat:
@echo off
for /f "tokens=1,2 delims== " %%a in (Config.ini) do (
  if /i "%%b" equ "Y" (
    set %%a=Y
    >>config2.ini echo %%a=N
  ) else (
    >>config2.ini echo %%a=%%b
    if /i "%%b" neq "N" set %%a=%%b
  )
)

move /y config2.ini Config.ini

if defined PubBackup call copy.bat %PubBackupDateTime%
if defined Publish call copy2.bat %PublishDateTime%
if defined UpdateServerB call test.bat %PublishDateTime%

2.copy.bat
@echo off
for /f "delims=" %%a in (pathConfig.ini) do set "%%a"
set dates=%~1
IF EXIST "%AServerWebPath%" rd /s /q "%AServerWebPath%"
start /b/wait xcopy /s/h/r/y/c "%cmsWebPath%\*.*" "%AServerWebPath%\">"%publishLogPath%"\%dates%.log
start ReturnBatResult.bat "Publish"
goto :eof
exit

3.test.bat跟copy.bat差不多.

应该命令是执行完了,但复制过程还没完。如果这样我想可以加个判断语句吧,或者加个延时处理。

TOP

1,楼主最好提供具体代码
2,copy 执行完,复制就完成了
3,copy与菜单中“复制”有些不同,特别是在复制文件中断时。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

应该命令是执行完了,但复制过程还没完。如果这样我想可以加个判断语句吧,或者加个延时处理。
acaigg 发表于 2011-4-7 11:21

只是显示问题,稍等一会或者刷新下就看到了

TOP

楼上正解,是我弄错了。我测试了一下确实是执行完一个命令再执行下一个的。
我以前是用其他语言调用批的时候,批还没执行完其他语言就执行了下一步了。呵呵。

TOP

本帖最后由 semiuel 于 2011-4-7 19:53 编辑

call test.bat
另外,尽量别把批处理程序的文件名定义成内部命令的名字.
COPY这条命令首先是一条内部命令,然后才是COPY.BAT

TOP

6# semiuel


应该是call copy.bat吧…………

TOP

返回列表