我有两个不同的PowerShell脚本。这两个脚本都将按顺序执行不同的会话。第一个PowerShell脚本应创建一个全局变量并保留一些值。第二个脚本应该读取该全局变量。
如何在第一个脚本中创建这样的全局变量?
创建全局变量很容易。当你第一次宣布它时,就做$Global:yourvariable
。之后,您可以通过使用$yourvariable
从任何地方调用该变量。
但是我担心这不会解决你的问题,因为你试图在两个不同的会话上分别运行两个脚本。你怎么能确定第一个脚本会在第二个脚本要求之前生成'全局变量'?
如果您热衷于并行运行它们,请查找Start-Job
cmdlet或PowerShell Runspaces。
您可以尝试的另一件事是将全局变量写入两个脚本都可访问的数据库或文件。使用文件可能会导致所有权死锁或“其他进程正在使用文件”或其他I / O错误。
你想做什么,根本无法用全局变量来完成。这就是他们被称为会议的原因。一个是独立的。但我相信,无论你想做什么,都可以用更简单的方式来实现。
他们同时跑吗?
如果没有,你可能最好使用Export-Clixml从一个脚本导出变量/对象,然后使用Import-Clixml将其导入另一个脚本。
在第一个脚本中:
$someVar | Export-Clixml C:\temp\someVar.xml
在第二个脚本中:
$someVar = Import-Clixml C:\temp\someVar.xml