gpt4 book ai didi

命令行、引号和新行上的 Powershell 内联命令

转载 作者:行者123 更新时间:2023-12-05 04:56:37 24 4
gpt4 key购买 nike

我有一个从命令行获取参数的 powershell 脚本。

传递的参数是一个带有换行符的字符串,但我无法让它按我希望的那样工作。

命令行运行示例:

powershell.exe -command "& {& 'C:\My Scripts\Script.ps1' "Some Text`nWoo Hoo"}"

上面的脚本只传递了文本Some。如果我在传递的文本周围使用单引号,则 `n 换行符将按字面解释,而不是换行符。

我相信有办法解决这个问题!

谢谢

最佳答案

由于您的整个命令字符串(从 cmd.exe 调用时是必要的)双引号,您必须转义嵌入双引号引号为 \"(即使 PowerShell 中,` 用作转义字符,如嵌入式 `n 中所用 转义序列):

# From cmd.exe
powershell.exe -command "& 'C:\My Scripts\Script.ps1' \"Some Text`nWoo Hoo\""

另请注意,调用 PowerShell CLI 时无需使用 -Command "& { ... }" - 只需 -Command "..."就足够了。

在您的情况下,嵌入-引号 (\"...\"),即使用(转义)expandable string必须将 `n 转义序列插值到实际的换行符。
verbatim(文字)字符串就足够的情况下,您可以使用引号('...').

参见 this answer 的底部部分有关 PowerShell 中字符串文字的更多信息。

关于命令行、引号和新行上的 Powershell 内联命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64815643/

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