我需要从批处理文件运行以下命令:
PowerShell -Command "Start-Process cmd -ArgumentList '/C "MKLINK /D "C:\Folder With Spaces\Another Folder" "%UserProfile%\Documents\Folder With Spaces""' -Verb RunAs"
但是,当实际执行此命令时,两个带有空格的文件夹周围的引号将被完全忽略,并且该命令无法正确运行。 逃避本声明中涉及的各种引用的正确方法是什么? 我尝试在文件夹名称周围的引号前面使用`和^,但都不起作用。
powershell.exe
(Windows PowerShell CLI),要使用传递给 "
参数作为要执行的 PowerShell 代码一部分的 -Command
字符,它们必须是 转义,最简单的形式为 \"
.
由于
cmd.exe
的解析怪癖,嵌入在 "
调用中的 cmd /c "..."
字符确实需要额外转义。
PowerShell -Command "Start-Process cmd -ArgumentList '/C \"MKLINK /D \"C:\Folder With Spaces\Another Folder\" \"%UserProfile%\Documents\Folder With Spaces\"\"' -Verb RunAs"