如何在perl调用中使用set cmd并检索相同的内容。

如何在perl调用中使用set cmd并检索相同的内容。,perl,Perl,我希望将以前设置的项传递给我的exe。这将不起作用。每个system()都会启动一个新进程,因此,虽然第一个进程可以设置一个环境变量,但当该进程退出时,它将丢失,因此由下一个system()启动的下一个进程将看不到它。子进程不能影响其父进程的环境 已编辑 也许这会帮助你实现你想要的 system("set a=10"); system("echo %a%"); system("echo %a%|test.exe"); #it passes a vale to test.exe 输出: #!/b

我希望将以前设置的项传递给我的exe。

这将不起作用。每个
system()
都会启动一个新进程,因此,虽然第一个进程可以设置一个环境变量,但当该进程退出时,它将丢失,因此由下一个
system()
启动的下一个进程将看不到它。子进程不能影响其父进程的环境

已编辑

也许这会帮助你实现你想要的

system("set a=10");
system("echo %a%");
system("echo %a%|test.exe"); #it passes a vale to test.exe
输出:

#!/bin/perl
$ENV{"a"}="freddy frog";
print `set b=99 & set`;

那是行不通的。每个
system()
都会启动一个新进程,因此,虽然第一个进程可以设置一个环境变量,但当该进程退出时,它将丢失,因此由下一个
system()
启动的下一个进程将看不到它。子进程不能影响其父进程的环境

已编辑

也许这会帮助你实现你想要的

system("set a=10");
system("echo %a%");
system("echo %a%|test.exe"); #it passes a vale to test.exe
输出:

#!/bin/perl
$ENV{"a"}="freddy frog";
print `set b=99 & set`;

感谢您的宝贵意见,我们能否达到以下类似的cmd;尽管如此,我并没有从perl脚本中获得预期的值,但在批处理文件中,我可以使用系统((设置a=10)&echo%a%”;感谢您的宝贵意见,我们能否达到以下类似的cmd;尽管如此,我并没有从perl脚本中获得预期的值,但在批处理文件中,我可以使用系统((设置a=10)&echo%a%”;