在批处理文件中使用下面的命令,我得到输出,但随着回车一起返回一些回声。
wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /Format:Texttable > output.txt
输出:
ProcessId WorkingSetSize
4016 6356992
1548 6189056
如何摆脱输出中的回车?
EDIT1:
参考Foxdrive在我的链接问题中的工作答案我在下面尝试并且工作得很好,但在输出中有一个额外的行: ECHO关闭。不知道为什么?
@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
我只希望以上述格式输出并使用以下方式获取输出:
@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
现在输出中是否有任何尾随CR? hexdump命令在我的系统中不起作用.. :( ..将非常感谢您的确认.. :)
答案 0 :(得分:1)
试试这个:
wmic process where Caption='notepad.exe' get ProcessId,WorkingSetSize /Format:Texttable|findstr /v "^$">file.txt
输出(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
答案 1 :(得分:1)
这将删除尾随CR并提供以空格分隔的值:
@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
该文件采用以下格式:
624 4923392
9220 4886528
这将删除尾随CR并以CSV格式提供值
@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
这是文件所在的格式:
PCNAME,956,4960256
PCNAME,4004,4870144
答案 2 :(得分:0)
我没有运行代码的额外CR或aditional回声。但是既然你得到了它们,Endoro的答案已经足够接近了。而不是尝试过滤不想要的行,尝试只获取您感兴趣的行
wmic ..... ^| findstr /B /R "[0-9P]"
仅以数字(数据)或P(ProcessId)
开头的行