2014-03-27 116 views
1

捕獲返回值這是我的Tcl腳本來從TCL在批量

return 2 

它什麼都不做,只是返回值2。現在我的批處理腳本調用名爲foo這個TCL文件。

tclsh foo.tcl 

返回值可能會不時變化,我需要在批處理文件中獲取此值。是否有辦法做到這一點。我是批處理命令的新手,所以我對此沒有太多的想法。我嘗試了if-else循環,但它給出了語法錯誤。任何想法將不勝感激。

回答

3

要獲得的Tcl的外部來電者看到的結果代碼,你需要exit而不是return

# In Tcl 
exit 2 

然後呼叫方能夠使用退出代碼處理內置到它來檢測。例如使用bash(和其他大多數Unix外殼):

# Not Tcl, but rather bash 
tclsh foo.tcl 
echo "exit code was $?" 

在Windows上,我認爲這是事做ERRORLEVEL但它是因爲我使用的平臺之類的事情很長一段時間。我只記得它煩人...

+0

這並不幫助多納爾。因爲無論您選擇什麼退出值,它總是會返回到ERRORLEVEL 1 –

+0

@UnderDog您知道['IF ERRORLEVEL x'測試退出代碼是否是_at least_'x'](http://blogs.msdn.com/ b/oldnewthing /存檔/ 2008/9月26日/ 8965755.aspx)? –

1

看來%ERRORLEVEL%你想要什麼:

C:\Users\glennj>tclsh 
% exit 3 

C:\Users\glennj>echo %ERRORLEVEL% 
3 
+0

優秀!所有我需要的 –