这是我的Tcl脚本
return 2
它什么都不做,只是返回值2.现在我的批处理脚本调用这个名为foo的tcl文件。
tclsh foo.tcl
返回值可能会不时更改,我需要在批处理文件中获取此值。是一种方法来做到这一点。我是批处理命令的新手,所以我对此并不太了解。我尝试了if-else循环,但它给出了语法错误。任何想法都将不胜感激。
答案 0 :(得分:3)
要让Tcl的外部调用者看到结果代码,您需要exit
而不是return
:
# In Tcl
exit 2
然后您的调用者可以使用内置的退出代码处理来检测。例如使用bash(以及大多数其他Unix shell):
# Not Tcl, but rather bash
tclsh foo.tcl
echo "exit code was $?"
在Windows上,我认为这与ERRORLEVEL
有关,但是很长一段时间以来我使用该平台进行此类事情。我记得它很烦人......
答案 1 :(得分:1)
%ERRORLEVEL%
似乎您想要的内容:
C:\Users\glennj>tclsh
% exit 3
C:\Users\glennj>echo %ERRORLEVEL%
3