如何将值从子进程传递给父级cmd.exe shell?

问题描述:

我有一个运行子进程的Windows cmd.exe脚本,需要从子进程收集输出以设置三个变量。子进程会执行一些工作,并打印出三个值。如何将值从子进程传递给父级cmd.exe shell?

我该如何编码家长收集孩子打印的值?

我可以对进行此操作所需的子进程进行任何修改,但父脚本必须写为cmd.exe批处理文件。

+0

你如何开始你的孩子的过程?用** cmd.exe/c **或**启动cmd.exe/c **或者调用child.bat? – jeb 2010-12-02 15:24:09

+0

目前,我以“perl脚本名称”开头 - 但如果有帮助,我可以使用其他方法之一。 – Martin 2010-12-02 15:39:34

子进程设置环境变量可以接受吗?父母的过程应该能够挑选出来。

child.bat

set VAR1=123 
set VAR2=321 

parent.bat

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

您可以设置从子程序/脚本语言无论您使用环境变量 - 有办法从他们身上设置环境变量。

mr.b的答案恰好是正确的,因为这两个批处理脚本都在同一个cmd.exe进程中运行。实际上,子进程无法写入父进程的环境变量。尝试其他IPC方法。