gpt4 book ai didi

powershell - 使用来自另一个 powershell 脚本的参数调用 PowerShell 脚本

转载 作者:行者123 更新时间:2023-12-03 06:54:17 30 4
gpt4 key购买 nike

如何调用从 PowerShell 脚本中获取命名参数的 PowerShell 脚本?

foo.ps1:

param(
[Parameter(Mandatory=$true)][String]$a='',
[Parameter(Mandatory=$true)][ValidateSet(0,1)][int]$b,
[Parameter(Mandatory=$false)][String]$c=''
)
#stuff done with params here

酒吧.ps1

#some processing
$ScriptPath = Split-Path $MyInvocation.InvocationName
$args = "-a 'arg1' -b 2"
$cmd = "$ScriptPath\foo.ps1"

Invoke-Expression $cmd $args

错误:

Invoke-Expression : A positional parameter cannot be found that accepts 
argument '-a MSFT_VirtualDisk (ObjectId =
"{1}\\YELLOWSERVER8\root/Microsoft/Windo...).FriendlyName -b 2'

这是我的最新尝试 - 我尝试了多种谷歌搜索方法,但似乎都不起作用。

如果我从 shell 终端运行 foo.ps1 作为 ./foo.ps1 -a 'arg1' -b 2 它会按预期工作。

最佳答案

发布问题后我偶然发现了答案。为了完整起见,这里是:

酒吧.ps1:

#some processing
$ScriptPath = Split-Path $MyInvocation.InvocationName
$args = @()
$args += ("-a", "arg1")
$args += ("-b", 2)
$cmd = "$ScriptPath\foo.ps1"

Invoke-Expression "$cmd $args"

关于powershell - 使用来自另一个 powershell 脚本的参数调用 PowerShell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322789/

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