gpt4 book ai didi

powershell - Powershell调用命令和系统变量

转载 作者:行者123 更新时间:2023-12-03 01:21:54 24 4
gpt4 key购买 nike

我正在为供应商应用程序自动化补丁。我想使用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

立即退出并说尚未设置使用的各种系统变量。有人可以向我解释系统变量的范围吗?它们在调用命令完成后是否不存在?我是否需要在一个invoke-command中将两个脚本调用串在一起,以便第二个脚本可以访问系统变量或类似的东西?

最佳答案

使用SET命令进行的更改是而不是永久更改,它们仅适用于当前的cmd进程,并保留到cmd进程终止。

如果可能,请使用powershell语法设置环境变量:

Invoke-Command -session $session {$env:myvar = 1}

或者,您可以使用cmd命令分隔符 &来对命令进行字符串化,如下所示:
Invoke-Command -session $session {cmd /k "set myvar = 1" `& "set"}

关于powershell - Powershell调用命令和系统变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11706105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com