注意啊!在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 )某一行出现任何错误,他会继续执行下一行。
直接调,会出现问题的。
例子如下:
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 )某一行出现任何错误,他会继续执行下一行。
相关文章推荐
- cmd - 如何在bat文件中调用另一个bat文件
- cmd中的call,start,以及直接调用bat文件的区别
- BAT批处理文件同时打多个CMD窗口执行其他BAT命令
- 【VBscript Shell】通过vbs文件调用bat文件达到隐藏cmd窗口后台运行的效果
- java调用cmd并执行批处理(bat)文件
- JAVA JDBC 调用 oracle 函数的时候,注意格式,{}, 调用关键字 call 勿必要小写。
- vbs 批量修改文件,bat 批处理文件调用执行vbs,并在cmd窗口打印返回值(vbs运行结果)
- vbs 批量修改文件,bat 批处理文件调用执行vbs,并在cmd窗口打印返回值(vbs运行结果)
- java中调用其他文件(可执行程序,word,浏览器,bat……等)
- Java 调用bat文件并传入参数,并且不出现cmd的黑框框
- 收藏:偶要用delphi写几个dll来公开发布出去,让其他工具的程序员调用。应该注意些什么事项 关键字:分类 :个人专区密级 :公开
- 引用其他项目的类文件一定要注意这个类所在的命名空间
- .Bat 文件调用Sql脚本 (也就是sqlplus运行sql脚本)的注意点
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值(如果有的话)
- (TIP)service使用process类调用bat文件时应该注意的一个地方
- js 函数调用其他函数和方法 call,apply关键字
- 在java调用exe,com可执行文件和bat,cmd批处理文件
- 调用一个过程时,并不一定要使用 Call 关键字
- cmd执行调用打开文件
- (转)批处理文件(*.bat和*.cmd)语法