【问题标题】:How to export environment variable set in perl script to batch shell?如何将 perl 脚本中设置的环境变量导出到批处理 shell?
【发布时间】:2019-01-28 09:08:48
【问题描述】:

我正在使用批处理脚本在 Windows 上执行 perl 脚本。 我在批处理脚本中设置以下变量:

SET PATH_VAR=C:\Users\

我可以在 perl 中访问PATH_VAR,如下所示:

my $path1 = $ENV{'PATH_VAR'}

我还想将 perl 中设置的环境变量导出到批处理。就像我现在正在做的相反。 有没有办法做到这一点?

PS: 我试过了,但它不起作用:

$ENV{'PATH_Z'}="Hello World";

【问题讨论】:

    标签: windows perl batch-file


    【解决方案1】:

    更改环境变量不会影响父进程,这是它们工作方式的一部分,因此您在 Perl 脚本中所做的任何事情都无法更改批处理脚本的环境变量。但是,任何以 exec()system()`` 开头的子进程都会看到您在 Perl 脚本中所做的更改。

    【讨论】:

      【解决方案2】:

      这样做的唯一方法是让 Perl 脚本输出 shell 语句,并让 shell 评估输出。

      Bash 示例:

      $ export FOO=123
      $ echo $FOO
      123
      $ perl -e 'print "export FOO=456\n"' ; echo $FOO
      123
      $ $(perl -e 'print "export FOO=789\n"') ; echo $FOO
      789
      

      编辑:我看到 OP 正在使用 Windows,所以这个答案不适用 :-(

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-17
        • 2023-03-21
        • 2013-09-04
        • 1970-01-01
        • 2021-09-02
        相关资源
        最近更新 更多