我正在尝试获取输出,wmic process call create以便我可以获得ProcessId新创建的进程的输出。如果我只是跑:
wmic process call create "notepad.exe a.txt","d:\\"\nRun Code Online (Sandbox Code Playgroud)\n\n它工作得很好(它打开带有 的a.txt文件夹下的文件)。现在,如果我尝试:d:\\notepad
for /f "usebackq delims==; tokens=1,2" %i in (`wmic process call create "notepad.exe a.txt","d:\\"^|findstr ProcessId`) do @echo pid = %j\nRun Code Online (Sandbox Code Playgroud)\n\n它没有,并显示错误:
\n\n\n\n\n格式不正确。\n 建议:<lista_par\xc3\xa1metros> = <par\xc3\xa1metro> [, <lista_par\xc3\xa1metros>]。
\n
我真的不知道这里发生了什么,有人可以向我解释一下吗?或者这是否可能?
\n\n注意:其他命令工作正常。例如,如果我运行:
\n\nfor /f "usebackq" %i in (`wmic process where "executablepath like \'%%notepad.exe\'" get ProcessId /value^|findstr ProcessId`) do @echo OUTPUT: %i\nRun Code Online (Sandbox Code Playgroud)\n\n它给出了预期的输出,在本例中为:
\n\n\n\n\n输出:进程 ID=2084
\n
谢谢!
\n我刚刚发现如何做到这一点。由于该命令只能直接在命令提示符下运行,所以我决定使用cmd /c "...",如下所示:
for /f "usebackq delims==; tokens=1,2" %i in (`cmd /c "wmic process call create 'notepad.exe a.txt','d:\'"^|findstr ProcessId`) do @echo pid = %j
Run Code Online (Sandbox Code Playgroud)
现在唯一的问题是PID需要修剪掉空间,但那是别的东西。很抱歉给您带来不便。