您的位置:首页 > 其它

注意啊!在cmd/bat文件如果要调用其他cmd/bat文件,一定要用call关键字啊!

2011-09-15 18:29 471 查看
注意啊!在cmd/bat文件中,如果要调用其他cmd/bat文件的话,一定要用call关键字啊!

直接调,会出现问题的。

例子如下:

deleteLog-callcentercmd, 调deleteLog-callcenter-one.cmd。

deleteLog-callcentercmd

set /P myvar="Is this regular maintenance or CCA outage due to some production issues? (yes/no)"

IF NOT DEFINED myvar (

echo Action cancelled !

GOTO EXITPOINT

)

IF NOT %myvar%==yes (

echo Action cancelled !

GOTO EXITPOINT

)

:EXECPOINT

set output_file=c:\deleteLogs\outputs-cc.log

Date/t >>%output_file% 2>&1

Time/t >>%output_file% 2>&1

call deleteLog-callcenter-one.cmd slc-ccacc-001.corp.ebay.com >>%output_file% 2>&1

call deleteLog-callcenter-one.cmd slc-ccacc-002.corp.ebay.com >>%output_file% 2>&1

call deleteLog-callcenter-one.cmd slc-ccacc-003.corp.ebay.com >>%output_file% 2>&1

:EXITPOINT

pause

deleteLog-callcenter-one.cmd

psexec \\%1 forfiles /P C:\ccanywhere\log /M *.log /C "CMD /c DEL @FILE"

psexec \\%1 forfiles /P C:\Recycler /M *.log /C "CMD /c DEL @FILE"

如果你是这样调用的 :deleteLog-callcenter-one.cmd slc-ccacc-003.corp.ebay.com >>%output_file% 2>&1

前面没有加Call, 那么问题来了。

问题就是,如果你的子文件(deleteLog-callcenter-one.cmd )某一行出现任何错误的话,他会立马跳出,并且会终止整个程序,包括父文件也会终止退出。这是不对的。

而加了 call后,就没有这个问题了,就算子文件(deleteLog-callcenter-one.cmd )某一行出现任何错误,他会继续执行下一行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐