我想请教一下,powershell的脚本之间如何传递全局变量。

例如:在A脚本里定义一个全局变量,然后调用B脚本,在B脚本里对全局变量的值进行修改,最后在A脚本里判断全局变量的值。 
今天已经解决了,换了一种方法,没有用从子脚本向父脚本返回值。
谢谢了。
不过我查到了方法,分享一下:
在子脚本里赋值:set-variable -name 变量名 -value 值 -scope 1
就可以在父脚本里接收到更改后的变量值。

首先告诉你,没有直接的方法。
可以考虑间接的方法:
1.如果你的变量仅仅是一个string,可以通过脚本A保存在环境变量里面,然后在B中更改,通过A继续读取。
2.如果你的变量是一个复杂对象,可以在A中定义,$a, 然后以参数的形式传递给B,最后以返回值的形式传递给A。
形如: $a= .\test.ps1 -Name "mosser"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-13
这是办不到的,shell脚本中子shell不可能改变父shell的值,即使用export环境变量也不行。
建议用函数实现。
第2个回答  2012-09-20
在子脚本里赋值:set-variable -name 变量名 -value 值 -scope 1
作用域从1改成0,就可以了。
但是为什么可以,不知道。本回答被提问者和网友采纳
相似回答