我有一个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
Run Code Online (Sandbox Code Playgroud)
我想,Deadly-Bagel 差点就吃到了。不要在 $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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12399 次 |
| 最近记录: |