Ancora un'altra opzione :)
@echo off
for /f "delims=" %%A in (
'wmic service where "name='themes' and state='running'" get'
) do for /f "delims=" %%B in ("%%A") do echo %%B
complesso in cui le clausole devono essere o quotati o tra parentesi. L'extra interno '
non causa problemi con FOR/F.
Ho aggiunto un extra FOR/F per rimuovere il ritorno a capo indesiderato che viene aggiunto alla fine di ogni riga come un artefatto di FOR/F che converte l'output Unicode WMIC in ANSII. Senza il FOR/F aggiuntivo, vi è una riga aggiuntiva che consiste esclusivamente di un ritorno a capo che risulta in ECHO is off.
alla fine.
Penso che preferisco la versione di jeb perché elimina la necessità di escape nell'intero comando, anche se probabilmente utilizzerei virgolette singole all'interno della clausola WHERE. Per esempio:
@echo off
for /f "delims=" %%A in (
'"wmic service where (name='themes' and state='running') get name, pathName"'
) do for /f "delims=" %%B in ("%%A") do echo %%B
Utilizzando la sintassi nel mio primo esempio di codice richiede sfuggire le virgole nella clausola GET:
@echo off
for /f "delims=" %%A in (
'wmic service where "name='themes' and state='running'" get name^, pathName'
) do for /f "delims=" %%B in ("%%A") do echo %%B
citazioni singole indica la fine del comando analizzata ... ?? – npocmaka
'=' è delimitatore e dovrebbe essere sfuggito – npocmaka
Grazie mille @npocmaka ma l'ho provato, non funziona – ElektroStudios