2010-04-08 3 views
1

Я пытаюсь создать скрипт, который поместит список (в CSV-файле) процессов, которые работают на более чем 10 МБ ОЗУ, и показывает время + дату сценарий был запущен. Мой учитель сделал это во время своей лекции, но я не помню, как он это сделал. Просто пытаюсь понять, как быть лучше в ИТ.Написание скрипта с подсказкой cmd

Так что мой вопрос: может ли кто-нибудь помочь мне с этим? Я даже не знаю, с чего начать.

+0

ОС Виндоус. – Josh

+1

Вы всегда можете попросить своего учителя объяснить, что они сделали и как это работает, извините, что направили вас обратно в этом направлении, но вы, вероятно, получите больше от объяснения, чем вы получите здесь с прямым ответом. – Lazarus

+0

@ Lazarus, если вы сделаете то, что он предлагает, то обязательно вернитесь к этому вопросу и дайте нам ответ :) – Earlz

ответ

0

Вам нужно использовать команду «tasklist», а затем фильтровать по памяти.

0

операционные системы Windows, в настоящее время поставляются с альтернативной оболочкой для CMD называется PowerShell

Вот как вы могли бы сделать это в Powershell.

ps | where-object { $_.workingset -gt 10000000 } | Out-File c:\list.csv 

Kindness,

Dan

1

попробовать этот

set var=%DATE% %TIME% 
echo %var%>c:\tasklist2.csv 
tasklist /fi "memusage gt 10000" /fo csv>>c:\tasklist2.csv 

в реальном мире вы не получите Vista, или Win7 .... к сожалению

0

использовать tasklist, например

tasklist /FI "Memusage gt 10000" /NH 

date /T или time /T для создания даты и времени.

0

Вы также можете добавить дату к названию файла.

set var=%DATE% %TIME% 
set var1=%DATE% 
set var1=%var1:/=% 
set var1=%var1:~-8% 
echo %var%>c:\tasklist%var1%.csv 
tasklist /fi "memusage gt 10000" /fo csv>>c:\tasklist%var1%.csv 
2

Вы можете сделать это в PowerShell следующим образом:

Get-Process | Where {$_.PM -gt 10MB} | 
    Export-Csv "memhogs-$(Get-Date -uf %Y%m%d%H%M).csv 

или с использованием псевдонимов

gps | ?{$_.PM -gt 10MB} | epcsv "memhogs-$(Get-Date -uf %Y%m%d%H%M).csv 
Смежные вопросы