在Perl中运行SET命令

时间:2016-05-03 10:05:17

标签: windows perl

我正在使用Perl版本5.22,而我正在尝试通过Perl脚本使用System函数设置一个Environment变量。 但是SET命令不起作用。 我正在使用这样的

my $return_val = system(" SET D:\Path\Folder ");
the return_val returns value 256.

1 个答案:

答案 0 :(得分:0)

假设你清理了语法错误,你仍然会遇到一个问题,你似乎误解了环境变量和system命令是如何工作的。

  • 环境变量是传递给任何衍生子进程的进程级别值。他们不会从Child传给父母。

  • system命令会生成子进程以执行某些操作。

你遇到的问题是,即使你在子shell中设置了环境变量,当那个子shell死亡时也是如此。将控制权传递给perl,环境变量随之消失。

  • 如果您需要Perl可以传递给以后子进程的环境变量,请查看使用%ENV哈希值。

  • 如果您想影响perl父进程的环境,那么您希望做的最好的事情是构建一个可由父进程自己处理的shell脚本,批处理文件等