Windows에서 TCL 스크립트로 실행 된 명령 출력에 조직을 가져 오려고합니다. 상황은 결국 펄 스크립트를 호출하는 tcl 스크립트가 있다는 것입니다. 이런 식으로 뭔가 : 표준 출력과 표준 에러 모두STDOUT 및 STDERR에서 TCL 변수에 메시지 할당
펄 스크립트 출력 결과 :
#print message to STDOUT by default
print "process A running ...";
...
if ($fail) {
#print to STDERR
print STDERR "Process A failed.";
}
처음에, 나는 TCL 스크립트에서보고 싶어 모두 STDERR로 인쇄에서 메시지했지만, 지금은 원하는 둘 다. print에서 stdout으로가는 메시지를 하나의 tcl 변수에 저장하고 stderr로 보낸 메시지를 다른 tcl 변수에 저장하는 방법이 있습니까?
puts "Running perl script ..."
catch {[set stdout_var [exec perl C:/myScript.pl >@stdout]]} err_msg
puts "\n\nerrmsg:\n$err_msg"
puts "\n\nstdout:\n$stdout_var"
는 이렇게, 나는 (내가 거기 절반 방법이야)를 ERR_MSG 변수에 STDERR에 인쇄 된 메시지 만받을 그러나, stdout_var 변수 결코 : 이것은이 작동하지 갈 수있는 TCL 내 시도였다 아무것도 설정됩니다. 나는 그것이 STDOUT에 대한 메시지로 설정되기를 기대했지만, 그렇지 않았습니다. > @stdout을 제거하면 stdout_var이 여전히 할당되지 않고 err_msg에 STDERR 및 STDOUT에 인쇄 된 모든 메시지가 포함됩니다.
감사합니다.
을있다. – potrzebie