如何在 PowerShell 中转义 space?

How to escape space in PowerShell?

我在 PowerShell 中 运行 这个命令

Start-Process -FilePath 'C:\Program Files\Typora\Typora.exe' -ArgumentList 'C:\Users\Administrator\Desktop\Hello world.md'

但是 Typora 说

C:\User\Administrator\world.md does not exist

看起来像 PowerShell 执行

Start-Process -FilePath 'C:\Program Files\Typora\Typora.exe' 
     -ArgumentList 'C:\Users\Administrator\Desktop\Hello' 'world.md'

我想转义 space 但单引号不起作用...

PowerShell 版本:5.1.19041.610

尝试在 powershell 中添加 ` 以转义空格:

Start-Process -FilePath 'C:\Program Files\Typora\Typora.exe' -ArgumentList 'C:\Users\Administrator\Desktop\Hello`world.md' 

PowerShell 在调用外部可执行文件时可能无法正确引用字符串。参见

  • Curl in PowerShell with custom cookie file
  • PowerShell or CMD errors on space in file path

因此,要解决此问题,您需要通过正确转义将文字 " 传递给 exe 文件

Start-Process -FilePath 'C:\Program Files\Typora\Typora.exe' `
    -ArgumentList '"C:\Users\Administrator\Desktop\Hello world.md"'