如何使用PowerShell创建全局变量?

时间:2017-10-03 10:51:17

标签: powershell

我有两个不同的PowerShell脚本。这两个脚本都将按顺序执行不同的会话。第一个PowerShell脚本应创建一个全局变量并保留一些值。第二个脚本应该读取该全局变量。

如何在第一个脚本中创建这样的全局变量?

2 个答案:

答案 0 :(得分:0)

创建全局变量很简单。做就是了 当你第一次宣布它时$Global:yourvariable。之后,您只需使用$yourvariable即可从任何地方调用该变量。

但是我担心这不会解决你的问题,因为你试图在两个不同的会话上分别运行两个脚本。你怎么能确定第一个脚本会在第二个脚本要求之前生成'全局变量'?

如果您热衷于并行运行它们,请查找Start-Job cmdlet或PowerShell Runspaces。

您可以尝试的另一件事是将全局变量写入两个脚本都可访问的数据库或文件中。使用文件可能会导致所有权死锁或“其他进程正在使用文件”或其他I / O错误。

你想做什么,根本不能用全局变量来完成。这就是他们被称为会议的原因。一个是独立的。但我相信,无论你想做什么,都可以用更简单的方式实现。

答案 1 :(得分:0)

它们是否同时运行?

如果没有,您可能最好使用Export-Clixml从一个脚本导出变量/对象,然后使用Import-Clixml将其导入另一个脚本。

在第一个脚本中:

$someVar | Export-Clixml C:\temp\someVar.xml

在第二个脚本中:

$someVar = Import-Clixml C:\temp\someVar.xml