我有一个 PowerShell 脚本,正在通过命令行调用一个 .exe 来创建一个 XML 文件,然后 PowerShell 脚本正在读取该文件。
问题在于,如果我在文件路径中有空格,我需要将其用双引号括起来才能将其传递给命令行。但是当我这样做时,PowerShell 命令会尝试将双引号作为文件路径的一部分读取。有没有一种方法可以转义空格,既可以传递给命令行,又可以在 PowerShell 内部使用命令?
显然,必须从一个命令中去除双引号,而在另一个命令中保留它们,这似乎很愚蠢。
问题出在 Get-Content 行,它无法识别双引号。
问题在于,如果我在文件路径中有空格,我需要将其用双引号括起来才能将其传递给命令行。但是当我这样做时,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
/SourceFile:'$dacpacpath'
- Matt$sqlpackage
程序接受单引号作为有效的引号字符时,它才能正常工作。 - user4003407