gpt4 book ai didi

powershell - 如何从命令行将字符串参数传递给 Powershell 以用于 ConvertFrom-StringData?

转载 作者:行者123 更新时间:2023-12-01 02:52:47 24 4
gpt4 key购买 nike

我在使用应使用可变数量参数的脚本运行 powershell 时遇到问题。

脚本文件如下所示:

param( [string]$paramString )

$params = ConvertFrom-StringData $paramString
$params

直接在 powershell 中运行脚本会产生预期的结果:
[PS] C:\some\path>.\test.ps1 "a=foo `n b=bar `n c=moo"

Name Value
---- -----
c moo
a foo
b bar

从命令行使用相同的脚本和参数调用 powershell 显示:
C:\some\path>powershell -nologo -file ./test.ps1 "a=foo `n b=bar `n c=moo"

Name Value
---- -----
a foo `n b=bar `n c=moo

似乎传递的字符串采用某种格式,因此 ConvertFrom-StringData函数无法再解析它。

最佳答案

-File 联系是有问题的,因为参数不是由 cmd 评估的(它在 PowerShell 中)并且新行等效项没有扩展,它们是按字面传递的。

如果我们仍然让 PowerShell 使用 -Command 来解决这个问题,问题就可以解决。反而:

powershell -nologo -command "./test.ps1 ""a=foo `n b=bar `n c=moo"""

这很丑陋:我们必须将每个内部 " 加倍在命令中。但它有效。 (命令可以由多个参数定义;我更喜欢使用单个参数:这种方式对我来说看起来更简单)。

关于powershell - 如何从命令行将字符串参数传递给 Powershell 以用于 ConvertFrom-StringData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4284135/

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