使用WMIC,命令行输出仍然保持为空,但显示在taskmgr gui(Windows)中

时间:2018-07-23 07:46:56

标签: windows batch-file wmic

下面显示了frmweb.exe进程的GUI中的显示(附加了image/png) 可见命令行参数的地方。

当尝试通过命令行捕获相同的内容时,它将抛出null。 以下步骤将粘贴为文本。需要帮助,谢谢

wmic path win32_process get name, commandline /format:"%WINDI%\System32\wbem\csv" | find "frmweb.exe" >  commandline.txt

notepad commandline.txt

vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,,frmweb.exe
vbox_host
vbox_host,find  "frmweb.exe" ,find.exe

这是屏幕截图: enter image description here

2 个答案:

答案 0 :(得分:0)

要用批处理文件捕获流程frmweb.exe的命令行:

@echo off
Set "Process=frmweb.exe"
wmic path win32_process Get Name,Commandline /format:csv | find /I "%Process%" | findstr /i /v "find" >CommandLine.txt
Start "" CommandLine.txt

答案 1 :(得分:0)

只是为了确保您实际上已经尝试使用正确的命令,这就是我可能会使用WMIC执行任务的方式:

WMIC Process Where "Name='frmweb.exe'" Get CommandLine,Name /Format:"C:\Windows\System32\wbem\en-US\csv.xsl">"CommandLines.csv"

因为您已将csv.xsl文件复制到C:\Windows\System32\wbem

WMIC Process Where "Name='frmweb.exe'" Get CommandLine,Name /Format:csv >commandline.txt

如果您特别希望排除标题,则:

WMIC Process Where "Name='frmweb.exe'" Get CommandLine,Name /Format:csv|Find ".">commandline.txt

我觉得您的命令行中的逗号引起了问题。

如果您将结果转换为输出的方式可能会有所帮助,所以这里有个建议。

在文本编辑器中打开复制到csv.xsl的{​​{1}}并更改以下行:

%SystemRoot%\System32\wbem

收件人:

<xsl:template match="VALUE" xml:space="preserve"><xsl:value-of select="."/></xsl:template>

这个想法是,您要让它对csv输出的每个值字段加双引号。


为确保输出实际上不为空,可以改为从<xsl:template match="VALUE" xml:space="preserve">"<xsl:value-of select="."/>"</xsl:template> 测试命令:

PowerShell