首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用正确解析的参数从powershell启动新的powershell窗口

如何使用正确解析的参数从powershell启动新的powershell窗口
EN

Stack Overflow用户
提问于 2021-05-05 14:37:51
回答 1查看 42关注 0票数 0

我有一个powershell脚本,它包装了打开十个新的powershell窗口,并且在每个窗口中都使用动态参数调用了powershell脚本MyScript.ps1。我的C:\temp\SystemWrapper.ps1目前是这样的:

代码语言:javascript
复制
$system = "1"
$version = "1.0.0.0"
Write-Host("Triggering system $system / 10 with version $version")
start powershell { Write-Host('Starting system $system / 10 with version $version'); C:\temp\MyScript.ps1 $system $version; Read-Host}

系统包装窗口输出:

代码语言:javascript
复制
Triggering system 1 / 10 with version 1.0.0.0

第二个powershell窗口输出:

代码语言:javascript
复制
Starting system $system/10 with version $version
C:\temp\myScript.ps1 : Cannot validate argument on parameter 'system'. The argument is null or empty. Provide an
argument that is not null or empty, and then try the command again.
At line:1 char:86
+ ... stem/10 with version $version'); C:\temp\myScript.ps1 $system $versio ...
+                                                           ~~~~~~~
    + CategoryInfo          : InvalidData: (:) [myScript.ps1], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,myScript.ps1

在启动第二个powershell窗口时,SystemWrapper.ps1中变量的值不能正确解析,似乎是作为原始字符串$system$version传递的。

第二个powershell窗口应如下所示:

代码语言:javascript
复制
Starting system 1 / 10 with version 1.0.0.0
#... and the rest of the script with the arguments $system and $version properly resolved as input parameter

如何在第二个powershell窗口中获得预期的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-05 22:45:53

使用如下所示的param()块开始您的MyScript脚本:

代码语言:javascript
复制
param (
    $System,
    $Version
)

然后使用以下命令启动它:

代码语言:javascript
复制
Start-Process powershell.exe -ArgumentList "-NoLogo -NoExit -File `"C:\temp\MyScript.ps1`" -System $system -Version $version"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67396236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档