2010-12-02 5 views
1

나는 하위 프로세스를 실행하는 윈도우 cmd.exe 스크립트를 가지고 있으며 세 변수를 설정하기 위해 자식으로부터 출력을 수집해야한다. 자식 프로세스는 약간의 작업을 수행하고 3 개의 값을 출력합니다.하위 프로세스에서 상위 cmd.exe 셸로 값을 전달하는 방법은 무엇입니까?

자녀가 인쇄 한 값을 수집하기 위해 부모를 코딩하려면 어떻게해야합니까?

이 작업을 수행하는 데 필요한 하위 프로세스를 수정할 수는 있지만 부모 스크립트는 cmd.exe 배치 파일로 작성해야합니다.

+0

자녀 과정을 어떻게 시작합니까? ** cmd.exe/c ** 또는 ** cmd.exe/c **를 시작하거나 child.bat를 호출 하시겠습니까? – jeb

+0

현재 "perl script-name"으로 시작합니다.하지만 도움이된다면 다른 방법을 사용할 수 있습니다. – Martin

답변

2

자식 프로세스가 환경 변수를 설정할 수 있습니까? 부모 프로세스가이를 선택할 수 있어야합니다.

echo %VAR1% 
echo %VAR2% 
call child.bat 
echo %VAR1% 
echo %VAR2% 

parent.bat child.bat

set VAR1=123 
set VAR2=321 

당신은 당신이 사용하는 어떤 언어 아동 프로그램/스크립트에서 환경 변수를 설정할 수 있습니다 - 그들로부터 환경 변수를 설정하는 방법이 있습니다.

+0

저를 위해 일하십시오! 자식 프로세스 내에서 환경 변수를 설정하는 방법을 찾을 수 없습니다 (perl이며 % ENV 해시를 업데이트하면 부모 프로세스의 변수가 업데이트되지 않습니다). 대신, 나는 자식 파일을 "set var = xxx"명령을 사용하여 인쇄 한 다음 부모로부터 배치 파일로 실행했습니다. – Martin

0

mr.b의 대답은 일괄 처리 스크립트가 모두 동일한 cmd.exe 프로세스에서 실행되고 있기 때문에 발생합니다. 실제로, 자식 프로세스는 부모 프로세스의 환경 변수를 작성할 수 없습니다. 다른 IPC 방법을 시도하십시오.

관련 문제