如何将值从子进程传递给父级cmd.exe shell?
问题描述:
我有一个运行子进程的Windows cmd.exe脚本,需要从子进程收集输出以设置三个变量。子进程会执行一些工作,并打印出三个值。如何将值从子进程传递给父级cmd.exe shell?
我该如何编码家长收集孩子打印的值?
我可以对进行此操作所需的子进程进行任何修改,但父脚本必须写为cmd.exe批处理文件。
答
子进程设置环境变量可以接受吗?父母的过程应该能够挑选出来。
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方法。
你如何开始你的孩子的过程?用** cmd.exe/c **或**启动cmd.exe/c **或者调用child.bat? – jeb 2010-12-02 15:24:09
目前,我以“perl脚本名称”开头 - 但如果有帮助,我可以使用其他方法之一。 – Martin 2010-12-02 15:39:34