2013-08-22 45 views
0

有沒有辦法從windows cmd命令中選擇列? 例如: 當我使用下面的命令:從cmd命令中選擇列

tasklist 

我得到這樣的結果:

Image Name      PID Session Name  Session# Mem Usage 
System Idle Process    0 Services     0   12 K 
System       4 Services     0  920 K 
smss.exe      260 Services     0  764 K 
csrss.exe      360 Services     0  3,360 K 
wininit.exe     412 Services     0  4,428 K 
csrss.exe      424 Console     1  10,316 K 
services.exe     476 Services     0  9,116 K 
winlogon.exe     500 Console     1  5,456 K 
lsass.exe      512 Services     0  10,300 K 
lsm.exe      540 Services     0  2,960 K 
svchost.exe     648 Services     0  8,212 K 
svchost.exe     724 Services     0  8,048 K 
svchost.exe     796 Services     0  14,740 K 
svchost.exe     848 Services     0  60,788 K 
svchost.exe     884 Services     0  27,812 K 
svchost.exe     1036 Services     0  9,796 K 

,我只需要在第一和最後一列。 有沒有一種方法可以只顯示我需要的列? 坦克

回答

1

這並不完美,因爲任務列表中的字段因任務名稱的長度而異,但對您而言可能已足夠好。

它採用所謂的repl.bat一個輔助批處理文件從 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

tasklist|repl "^(.......................).*(.............)$" "$1 $2" m 

調整第一組(....)的長度,以適應你。

+0

它給了我這個錯誤: – ofloflofl

+0

是否有一個命令來顯示r =每個文件夾的內存?在窗口 – ofloflofl

+0

@ofloflofl你設法讓它工作?我不明白你的問題。 – foxidrive

0

一個很大的幫助是,該列有一個固定的寬度,這樣你就可以使用下面的醜襯:

for /f "delims=" %I in ('tasklist') do @set "_=%I"&@call echo.^%_:~0,25^% ^%_:~64^% 

或更好這個批處理文件:

@echo off 
setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION 
for /f "skip=1 delims=" %%I in ('tasklist') do (
    set "_=%%I" 
    call echo %%_:~0,25%% %%_:~64%% 
) 
endlocal 

呼叫, %%語法是我的首選樣式,而不是DELAYEDEXPANSION,我一直試圖避免,因爲它在我的經驗中有一些煩人的副作用。所以我在我們的部門宣稱它是不好的風格,我對它有點鼓吹:)。