Estoy tratando de obtener la salida de WMIC en una variable para poder procesarla aún más.
He hecho un archivo por lotes de prueba para ilustrar el problema:
wmic PROCESS where "commandline like '%%teststr%%'" get Processid,Caption,Commandline
for /F "usebackq" %%R in (`wmic PROCESS where "commandline like '%%teststr%%'" get Processid,Caption,Commandline`) do echo OUTPUT is %%R
Habiendo llamado a este lote obtengo el resultado esperado para la primera línea, pero invalid GET expressionpara la segunda.
Dado que la primera línea funciona, creo que hay algo mal con mi cita: ¿alguien podría arrojar una luz sobre esto? Lo comprobé tres veces sintácticamente y todo me parece correcto de acuerdo con esta otra pregunta: salida Wmic en variable
Edit1:% teststr% es solo una cadena para filtrar, podría ser javaw, por ejemplo, buscar ciertas instancias de java.
Edit2: la salida exacta es:
Caption CommandLine ProcessId
javaw.exe "C:\Program Files (x86)\Java\jre1.8.0_91\bin\javaw.exe" -jar "J:\tools\sonst\jEdit\jedit.jar" -reuseview -background -nogui 5152
javaw.exe "C:\Program Files (x86)\Java\jre1.8.0_91\bin\javaw.exe" -jar "J:\tools\sonst\jEdit\jedit.jar" -reuseview -background -nogui 11504
javaw.exe "c:\Program Files (x86)\Java\jdk1.7.0_80\bin\javaw.exe" -jar "j:\tools\online\JBinUp\JBinUp.jar" 16336
WMIC.exe wmic PROCESS where "commandline like '%javaw%'" get Processid,Caption,Commandline 18740
Invalid GET Expression.
cama y desayuno

%%teststr%%?but ´al final de tu primer comando? YCommandlinno está escrito correctamente.wmic PROCESS where "commandline like '%%teststr%%'" get Processid,Caption,Commandline?Respuestas:
Tengo
invalid GET expressionel segundo comando.Debe escapar de las
,(comas) en laforexpresión, utilizando el^carácter de Escape:Notas:
skip=1alforcomando para omitir el encabezado.wmicsalida.findstrpara quitar las líneas en blanco de lawmicsalida, de la siguiente manera:Probar archivo por lotes:
Salida de ejemplo:
Otras lecturas
fuente