How to extract a specific field from output of tasklist on the windows command line

ashish makani picture ashish makani · Nov 22, 2012 · Viewed 42.2k times · Source

I ran the following command on the windows command prompt

C:>tasklist /fi "Imagename eq BitTorrent.exe"

The output of which is

Image Name            PID      Session Name       Session #    Mem Usage
==================  ======== =================   ===========   =========
BitTorrent.exe        6164      Console                   3     24,144K

I need to extract only one field, the PID, i.e. the number 6164 from the above output.

How do I achieve this ? More generally, how do I extract a subset(1/more) of the fields from the output of a command on the windows command line ?

Answer

wmz picture wmz · Nov 22, 2012

Similar to previous answers, but uses specific switches in tasklist to skip header and behave correctly irrespective of spaces in image names:

for /f "tokens=2 delims=," %F in ('tasklist /nh /fi "imagename eq BitTorrent.exe" /fo csv') do @echo %~F

(as run directly from cmd line, if run from batch replace %F with %%F