如何在 CMD 启动的软件传入带空格的路径 | lindexi | 2019-05-25 09:31:46 +0800 | 2019-05-25 09:14:15 +0800 |
在使用 CMD 命令的时候,会将传入的命令按照空格分为多个不同的命令,但是路径经常是带有空格的。特别是想将参数传入到通过命令行启动的软件里面,可以如何做?
假如通过 CMD 命令启动我的一个放在 C:\lindexi 是逗比
的 Foo.exe 程序,那么可以通过下面代码启动
cmd.exe "C:\lindexi 是逗比\Foo.exe"
因为路径里面的 C:\lindexi 是逗比\Foo.exe
有空格,需要通过引号包含
如果我需要给 Foo.exe 传入参数,参数内容是 foo
那么需要通过 /K
或 /C
的命令将参数传入,在 /K
或 /C
后面的参数将会传入到执行的程序,而不是作为 CMD 的参数
通过 /k
可以在执行之后不退出 cmd 程序,通过 /C
可以在执行完程序之后就退出 cmd 程序
例如我需要将 C:\林德熙 是逗比
作为参数传入到 Foo.exe 那么下面代码执行的时候,因为传入 CMD 命令的路径带来空格,需要通过引号包含
但是在 CMD 里面传入多个带引号的路径会被作为多个传入 CMD 的启动参数,刚好参数路径不是可以执行的文件
C:\user\lindexi> cmd /k "C:\lindexi 是逗比\Foo.exe" "C:\林德熙 是逗比"
文件名、目录名或卷标语法不正确
在传入的参数里面存在空格,需要使用最外层的一个引号包含
cmd /k " xx.exe xx参数 "
通过这个方法可以解决 cmd 不认路径带空格,和不认使用引号包含的路径
cmd /k " "C:\lindexi 是逗比\Foo.exe" "C:\林德熙 是逗比" "