我正在使用批处理脚本在Windows上执行perl脚本。 我在批处理脚本中设置以下变量:
SET PATH_VAR=C:\Users\
我可以通过以下方式在perl中访问PATH_VAR
:
my $path1 = $ENV{'PATH_VAR'}
我也想将perl中设置的环境变量导出到批处理中。就像我现在正在做的相反。 有办法吗?
PS: 我试过了,但是没用:
$ENV{'PATH_Z'}="Hello World";
答案 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,因此此答案不适用:-(