我正在为供应商应用程序自动化补丁。我想使用 powershell 遍历服务器列表并使用远程处理安装在每个盒子上。然而,一方面让我很头疼。在执行安装脚本之前,我必须调用供应商提供的 cmd 脚本来设置系统变量。所以我在powershell中这样调用脚本:
Invoke-Command -session $session {cmd /k ($args[0]+"\data\env.bat")} -Args $lesDestDir
我看到它执行,因为它在我的 powershell 窗口中呼应了它的工作,但随后调用了安装脚本,即:
Invoke-Command -session $session {perl ".\rollout-2010.pl " $args[0] " NC"} -Args $rollout
立即退出,说它使用的各种系统变量尚未设置。有人可以向我解释系统变量的范围吗?在调用命令完成后它们是否不复存在?我是否需要在一个调用命令中将两个脚本调用串在一起,以便第二个脚本可以访问系统变量或类似的东西?