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
but ´al final de tu primer comando? Y Commandlinno está escrito correctamente.
wmic PROCESS where "commandline like '%%teststr%%'" get Processid,Caption,Commandline?
%%teststr%%?