Sunny
Sunny

Reputation: 8292

Removing carriage return from WMIC output

Using below command in a batch file, i am getting output but along with some echoes as carriage return.

wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /Format:Texttable > output.txt

output:

ProcessId  WorkingSetSize  
4016       6356992         
1548       6189056         

how to get rid of this carriage return in output ?

EDIT1:

Referring Foxdrive's working answer in my linked question I tried below and its working nice, but in the output there coming an extra line: ECHO is off. don't know why ?

@echo off
setlocal enabledelayedexpansion
(For /F "tokens=1,* delims==" %%A in (' "wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /Format:Texttable" ') do (
set "line=%%A %%B"
set "line=!line:~0,-1!"
echo !line!
))>output.txt

output.txt:

ProcessId  WorkingSetSize  
4768       6365184         
5608       5500928         
2888       6037504         
1052       5472256         
ECHO is off.

EDIT2:

ProcessId  WorkingSetSize  
    4768       6365184         
    5608       5500928         
    2888       6037504         
    1052       5472256  

I want output in above format only and getting that output using:

@echo off
setlocal enabledelayedexpansion
(For /F "delims=" %%A in ('"wmic process where Caption='notepad.exe' get  ProcessId,WorkingSetSize /format:Texttable |findstr "[0-9P]" "') do (
set "line=%%A"
echo !line:~0,-1!
)) > output.txt

Is there any trailing CR in output now ? hexdump command is not working in my system..:(..will appreciate your confirmation..:)

Upvotes: 1

Views: 6556

Answers (3)

Endoro
Endoro

Reputation: 37569

try this:

wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /Format:Texttable|findstr /v "^$">file.txt

output is (Windows 8) FAR FROM 'HORRIBLE':

C:\Users\Private\TEST>wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /Format:Texttable|findstr /v "^$">file.txt

C:\Users\Private\TEST>type file.txt
ProcessId  WorkingSetSize
8896       8142848

C:\Users\Private\TEST>hexdump -C file.txt
00000000  50 72 6f 63 65 73 73 49  64 20 20 57 6f 72 6b 69  |ProcessId  Worki|
00000010  6e 67 53 65 74 53 69 7a  65 20 20 0d 0d 0a 38 38  |ngSetSize  ...88|
00000020  39 36 20 20 20 20 20 20  20 38 31 34 32 38 34 38  |96       8142848|
00000030  20 20 20 20 20 20 20 20  20 0d 0d 0a              |         ...|
0000003c

C:\Users\Private\TEST>for /f "tokens=*" %a in (file.txt) do @echo %a
ProcessId  WorkingSetSize
8896       8482816

C:\Users\Private\TEST>(for /f "tokens=*" %a in (file.txt) do @echo %a)|hexdump -C
00000000  50 72 6f 63 65 73 73 49  64 20 20 57 6f 72 6b 69  |ProcessId  Worki|
00000010  6e 67 53 65 74 53 69 7a  65 20 20 0d 20 0a 38 38  |ngSetSize  . .88|
00000020  39 36 20 20 20 20 20 20  20 38 34 38 32 38 31 36  |96       8482816|
00000030  20 20 20 20 20 20 20 20  20 0d 20 0a              |         . .|
0000003c

Upvotes: 1

foxidrive
foxidrive

Reputation: 41234

This removes the trailing CR and provides the values separated by a space:

@echo off
setlocal enabledelayedexpansion
(For /F "tokens=2,3 delims=," %%a in ('"wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /format:csv |findstr "[0-9]" "') do (
set "num=%%b"
echo %%a !num:~0,-1!
))>output.txt

The file is in this format:

624 4923392
9220 4886528

This removes the trailing CR and provides the values in CSV format

@echo off
setlocal enabledelayedexpansion
(For /F "delims=" %%A in ('"wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /format:csv |findstr "[0-9]" "') do (
set "line=%%A"
echo !line:~0,-1!
))>output.txt

This is the format the file is in:

PCNAME,956,4960256
PCNAME,4004,4870144

Upvotes: 1

MC ND
MC ND

Reputation: 70923

I've got no extra CR or aditional echos running your code. But since you are getting them, Endoro answer is close enough. Instead of trying to filter not desired lines, try to get only the lines you are interested in

wmic ..... ^| findstr /B /R "[0-9P]"

Only the lines beginning with a number (data) or a P (ProcessId)

Upvotes: 0

Related Questions