tcl exec与cvs upd:为什么退出?

时间:2012-09-26 16:36:14

标签: exec tcl cvs

我的问题非常简单。请考虑以下代码段:

set cvsPath "C:/Program Files (x86)/cvsnt/cvs.exe"
puts [exec $::cvsPath log filename]
puts "------------- END OF SCRIPT ---------------------"

这个打印日志然后“------------- END OF SCRIPT ---------------------”。

set cvsPath "C:/Program Files (x86)/cvsnt/cvs.exe"
puts [exec $::cvsPath -n upd]
puts "------------- END OF SCRIPT ---------------------"

这个打印更新消息并退出。为什么?如何防止退出?

P.S。退出的原因是exec cvs -n upd输入...

2 个答案:

答案 0 :(得分:2)

可能是因为你正在使csv.exe抛出错误。试着抓住它,

set cvsPath "C:/Program Files (x86)/cvsnt/cvs.exe"
if {[catch {puts [exec $::cvsPath -n upd]} result]} {puts $result}
puts "------------- END OF SCRIPT ---------------------"

答案 1 :(得分:0)

cvs -qn upd代替cvs -n upd无效!

以下也有效:

if {[catch {exec $::cvsPath -n upd} result]} {puts $result}
puts "------------- END OF SCRIPT ---------------------"

我应该提到$ result包含更新消息,这意味着cvs -n upd会抛出错误。 cvs -qn upd不投掷的地方。