Board logo

标题: [文件操作] [已完成]怎样让一个批处理copy完文件后,再执行另一个? [打印本页]

作者: west    时间: 2011-4-7 10:36     标题: [已完成]怎样让一个批处理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差不多.
作者: acaigg    时间: 2011-4-7 11:21

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

1,楼主最好提供具体代码
2,copy 执行完,复制就完成了
3,copy与菜单中“复制”有些不同,特别是在复制文件中断时。
作者: CrLf    时间: 2011-4-7 13:03

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

只是显示问题,稍等一会或者刷新下就看到了
作者: acaigg    时间: 2011-4-7 16:57

楼上正解,是我弄错了。我测试了一下确实是执行完一个命令再执行下一个的。
我以前是用其他语言调用批的时候,批还没执行完其他语言就执行了下一步了。呵呵。
作者: semiuel    时间: 2011-4-7 19:52

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

call test.bat
另外,尽量别把批处理程序的文件名定义成内部命令的名字.
COPY这条命令首先是一条内部命令,然后才是COPY.BAT
作者: bluewing009    时间: 2011-4-7 21:29

6# semiuel


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




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