gpt4 book ai didi

powershell - 在 PowerShell 和 cmd 中转义空格

转载 作者:行者123 更新时间:2023-12-02 22:10:36 25 4
gpt4 key购买 nike

我有一个 PowerShell 脚本,它从命令行调用 .exe 来创建一个 XML 文件,然后 PowerShell 脚本正在读取该文件。

问题是,如果文件路径中有空格,我需要用双引号括起来以将其传递给命令行。当我这样做时,PowerShell 命令会尝试读取双引号作为文件路径的一部分。有没有办法转义空格,既可以将其传递给命令行,也可以在 PowerShell 中使用命令?

必须为一个命令拉出双引号并将它们留在另一个命令中似乎很愚蠢。

问题出在 Get-Content不喜欢双引号的行。

$outputpath = '"C:\Users\bob\Desktop\output new.xml"'
Start -FilePath $sqlpackage -ArgumentList "/action:DeployReport /SourceFile:$dacpacpath /Profile:$profilepath /OutputPath:$outputpath" -NoNewWindow -Wait

[xml]$xmldocument = Get-Content -Path $outputpath

最佳答案

Deadly-Bagel almost had it我认为。不要在 $outputpath 中使用双引号来保持 Get-Content 满意,而是将它们添加到您的参数列表字符串中。

请务必使用反引号 ` 进行转义。实际上,您可能只想对所有路径执行此操作:

$outputpath = 'C:\Users\bob\Desktop\output new.xml'
Start -FilePath $sqlpackage -ArgumentList "/action:DeployReport /SourceFile:`"$dacpacpath`" /Profile:`"$profilepath`" /OutputPath:`"$outputpath`"" -NoNewWindow -Wait

[xml]$xmldocument = Get-Content -Path $outputpath

关于powershell - 在 PowerShell 和 cmd 中转义空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631113/

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