gpt4 book ai didi

c# - 在 Powershell 中使用参数调用 Invoke-Expression

转载 作者:太空狗 更新时间:2023-10-29 18:35:21 24 4
gpt4 key购买 nike

我用 c# 编写了一个 powershell 模块,它有一堆 cmdlet,比如

添加虚拟机

cmdlet 连接到 API 并拉回数据。

但为了与产品的 ssh CLI 保持一致,我编写了一个名为 newtask 的函数,它接受“addvm”作为参数和 $args。

例如

newtask addvm -id 12345

然后我调用 Add-VM 并像这样将 $args 作为字符串传递

Invoke-Expression Add-VM $argstr

问题是 Add-VM 抛出一个错误,它找不到接受参数 System.Object[] 的位置参数

A positional parameter cannot be found that accepts argument 'System.Object[]'

虽然我可以轻松地将“addvm”别名为“Add-VM”,但我正在努力保持与 ssh CLI 的一致性,以便新用户可以快速开始使用此模块。

我认为发送像“-id 12345”这样的字符串就足够了,但事实并非如此。 pscmdlet 是否期望接收其他内容?

提前致谢。

最佳答案

我知道这现在有点老了,但我遇到了类似的问题,一位同事告诉我转义 $argstr 会阻止对象转换为字符串。

Invoke-Expression "Add-VM `$argstr"

关于c# - 在 Powershell 中使用参数调用 Invoke-Expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615658/

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