Windows中的cmd wmic逃避噩梦

时间:2019-01-24 10:11:18

标签: windows cmd escaping

我正在尝试从cmd启动一个进程并返回其PID(进程ID)。

该命令有效,但是转义有问题,因为某些命令参数使其失败。

我要运行的命令是这个命令:

start /B wmic process call create "\"d:\software\winnmp\bin\PHP\php-7.1.12/php.exe\" \"D:\projects\php\masked/artisan\" queue:work --queue=high,default,low" | find "ProcessId"

这将返回“无效动词切换”。

我将其范围缩小为高,默认,低参数中的逗号,因为如果运行此参数,它将按预期运行:

start /B wmic process call create "\"d:\software\winnmp\bin\PHP\php-7.1.12/php.exe\" \"D:\projects\php\masked/artisan\" queue:work --queue=high" | find "ProcessId"

返回:“ ProcessId = 1234”

给我的印象是wmic试图解释--queue=high,default,low参数,所以我猜想它没有正确转义。我还尝试将/ B后的所有内容都用引号引起来,但是我不知道该怎么做。我尝试使用“”,“ ^”和“ \”转义双引号,并尝试使用\内在转义的反斜杠。

所有路径都必须用引号引起来,因为我不知道它们是否将包含空格。

0 个答案:

没有答案