如何将perl脚本中设置的环境变量导出到批处理shell?

时间:2018-08-22 06:51:13

标签: windows perl batch-file

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

SET PATH_VAR=C:\Users\

我可以通过以下方式在perl中访问PATH_VAR

my $path1 = $ENV{'PATH_VAR'}

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

PS: 我试过了,但是没用:

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

2 个答案:

答案 0 :(得分:2)

更改环境变量不会影响父进程,这是它们工作方式的一部分,因此您在Perl脚本中所做的任何操作都无法更改批处理脚本的环境变量。但是,任何以public class ChatRooms extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ....... // Initializing the TabLayout, ViewPager tabLayout = (TabLayout) findViewById(R.id.tabLayout); viewPager = (ViewPager) findViewById(R.id.viewpager); ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(FragmentChatOne.newInstance("AAA"), resources.getString(R.string.aaa)); adapter.addFragment(FragmentChatTwo.newInstance("BBB"), resources.getString(R.string.bbb)); adapter.addFragment(FragmentChatThree.newInstance("CCC"), resources.getString(R.string.ccc)); viewPager.setAdapter(adapter); tabLayout.setupWithViewPager(viewPager); } exec()system()开头的子进程都将看到您在Perl脚本中所做的更改。

答案 1 :(得分:2)

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

重击示例:

$ 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,因此此答案不适用:-(