2013-08-22 1 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, который я всегда стараюсь избегать, потому что у меня были некоторые неприятные побочные эффекты в моем опыте. Поэтому я объявил это плохой стиль в нашем отделе, и я немного доволен этим :).