zhut 0 / 0 / 0 Регистрация: 22.09.2015 Сообщений: 9 |
||||
1 |
||||
Как получить время работы процесса?05.10.2015, 17:53. Показов 12451. Ответов 6 Метки нет (Все метки)
Всем привет, подскажите пожалуйста, как получить время работы процесса с помощью powerShell. Как я понял сделать это можно с помощью new-timespan. Время запуска процесса, например notepad получаем так Добавлено через 18 минут
__________________
0 |
greg zakharov Покинул форум 4659 / 1303 / 335 Регистрация: 07.05.2015 Сообщений: 2,599 |
||||||||||||
05.10.2015, 17:57 |
2 |
|||||||||||
Или еще короче:
Как дополнение:
1 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
05.10.2015, 21:24 |
3 |
|||
Сообщение было отмечено zhut как решение Решениеzhut, Разобрался Не совсем, видимо. Так как select starttime абсолютно излишне. Этой командой вы просто «обрезаете» объект до одного свойства, а затем — опять же у этого объекта — получаете значение этого свойства.
1 |
greg zakharov Покинул форум 4659 / 1303 / 335 Регистрация: 07.05.2015 Сообщений: 2,599 |
||||||||
05.10.2015, 21:47 |
4 |
|||||||
Garry Galler, какбэ…
То же, к слову, и с моим прмером.
Переменную $$ как-то на автопилоте добавил.
0 |
Garry Galler 5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
||||
05.10.2015, 23:16 |
5 |
|||
С этим понятно
то же что и ToString(). Код Не удается преобразовать значение "Пн окт 5 23:07:45 RTZ 2 (зима) 2015" в тип "System.Int32". Ошибка: "Input string was not in a correct format."
0 |
Покинул форум 4659 / 1303 / 335 Регистрация: 07.05.2015 Сообщений: 2,599 |
|
06.10.2015, 08:46 |
6 |
А второе — тот же TimeSpan.
0 |
5403 / 3827 / 1214 Регистрация: 28.10.2013 Сообщений: 9,554 Записей в блоге: 1 |
|
06.10.2015, 10:14 |
7 |
…Разобрался. У меня алиаса date (от get-date) нет (я почему-то был уверен что есть), но зато есть утилита date из линуксовых портов — она, понятно,дату выводит в виде строки и в Int32 та не конвертируется.
0 |
Содержание
- Управление процессами из командной строки
- Узнать время запуска процесса windows
- Узнать время запуска процесса windows
- Управление процессами Windows через CMD
- Управление приложениями, процессами и производительностью
- Примеры управления процессами через командную строку
- Анализ выполняемых процессов в командной строке
- Мониторинг процессов и использования системных ресурсов
- Останов процессов в командной строке
- Системные и пользовательские процессы
- Как работать с процессами через Powershell Get-Process
- Как вывести детальную информацию через Powershell Get-Process
- Как отфильтровать процессы по утилизации в Powershell
- Запуск и остановка процессов через Powershell
Управление процессами из командной строки
Способов управлять процессами в Windows предостаточно, и командная строка занимает в них далеко не первое место. Однако иногда бывают ситуации, когда все остальные инструменты кроме командной строки недоступны, например некоторые вредоносные программы могут блокировать запуск Task Manager и подобных ему программ. Да и просто для общего развития полезно знать способы управления компьютером из командной строки.
Для управления процессами в командной строке есть две утилиты — tasklist и taskkill. Первая показывает список процессов на локальном или удаленном компьютере, вторая позволяет их завершить. Попробуем …
Если просто набрать команду tasklist в командной строке, то она выдаст список процессов на локальном компьютере.
По умолчанию информация выводится в виде таблицы, однако ключ /fo позволяет задать вывод в виде списка или в формате CSV, а ключ /v показывает более подробную информацию о процессах, например команда tasklist /v /fo list выведет подробное описание всех процессов в виде списка.
Найдя процессы, которые необходимо завершить, воспользуемся командой taskkill. Завершать процессы можно по имени, идентификатору процесса (PID) или задав условия с помощью фильтров. Для примера запустим несколько экземпляров блокнота (notepad.exe) и попробуем завершить его разными способами.
Ключ /f завершает процесс принудительно, а /t завершает все дочерние процессы.
Полную справку по командам tasklist и taskkill можно получить, введя их с ключом /?
Теперь пустим в ход тяжелую артиллерию — PowerShell. Его можно запустить не выходя из командной строки. Для получения списка процессов используем командлет Get-Process.
Чтобы не выводить весь список процессов можем воспользоваться командлетом Where-Object, который задает фильтр для выводимой информации. Для примера выведем список процессов, которые загружают процессор и отсортируем их по возрастанию нагрузки с помощью команды:
С помощью PowerShell мы можем получить любую информацию о любом процессе. В качестве примера возьмем процесс cmd и выведем список его свойств командой:
Выбираем те свойства, что нам интересны ( в примере имя и ID процесса, путь к файлу, используемые модули и время запуска) и выводим их в виде списка командой:
Таким образом мы можем посмотреть когда и кем был запущен процесс, сколько он потребляет ресурсов, где находится исполняемый файл и еще много различной информации.
Для завершения процесса в PowerShell есть командлет Stop-Process. Он завершает указанный процесс по его имени или идентификатору. Однако мы поступим по другому и передадим результат выполнения командлета Get-Process по конвейеру:
Для боле полного ознакомления с PowerShell можно воспользоваться встроенной справкой, для вызова справки нужно набрать Get-Help ″имя командлета″
Ну и для полноты обзора рассмотрим еще одно средство для управления процессами из командной строки. Это утилиты Pslist и Pskill входящие в состав пакета PSTools от компании Sysinternals.
Эти утилиты не требуют специальной установки, достаточно просто скопировать их на диск. Для запуска нужно зайти в папку с утилитами и ввести в командной строке необходимую команду.
Завершение процесса программой pskill предельно просто, вводим команду и имя (или ID) процесса и все.
Справку по утилитам Pslist и Pskill можно посмотреть, введя команду с ключом /?
И еще, все манипуляции с процессами необходимо выполнять с правами администратора, для этого командную строку требуется запускать с повышением привилегий.
Источник
Узнать время запуска процесса windows
Профиль | Отправить PM | Цитировать
Сообщения: 25157
Благодарности: 3792
Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 1690
Благодарности: 935
Сообщения: 27468
Благодарности: 8024
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″> » width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 1690
Благодарности: 935
Сообщения: 60
Благодарности:
Источник
Узнать время запуска процесса windows
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Профиль | Отправить PM | Цитировать
Сообщения: 25157
Благодарности: 3792
Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 1690
Благодарности: 935
Сообщения: 27468
Благодарности: 8024
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″> » width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Сообщения: 1690
Благодарности: 935
Сообщения: 60
Благодарности:
Источник
Управление процессами Windows через CMD
Управление приложениями, процессами и производительностью
Всякий раз, когда операционная система или пользователь запускает службу, приложение или команду, Microsoft Windows запускает один или более процессов для управления соответствующей программой. Несколько утилит командной строки упростят вам мониторинг программ и управление ими. К этим утилитам относятся:
Примеры управления процессами через командную строку
Анализ выполняемых процессов в командной строке
При помощи утилиты командной строки Tasklist можно проверить процессы, работающие в локальной или удаленной системе. Tasklist позволяет:
Мониторинг процессов и использования системных ресурсов
Process Resource Monitor (Pmon) показывает «моментальный снимок» используемых системных ресурсов и выполняемых процессов. После запуска (вводом pmon в командной строке) эта утилита собирает информацию об использовании ресурсов и выполняемых процессах в локальной системе и выводит результаты в консольное окно. Статистика автоматически обновляется каждые пять секунд. Pmon продолжает работу, пока вы не нажмете клавишу Q для выхода; нажатие любой другой клавиши приводит к обновлению информации.
Останов процессов в командной строке
Чтобы остановить процессы в локальной или удаленной системе, применяйте утилиту командной строки Taskkill. Процесс можно остановить по его идентификатору при помощи параметра /Pid или по имени образа
Системные и пользовательские процессы
Процессы могут работать и в фоновом режиме независимо от сеансов зарегистрированных пользователей. Фоновые процессы не имеют контроля над клавиатурой, мышью или другими устройствами ввода и обычно запускаются операционной системой. Но с помощью Task Scheduler (Планировщик заданий) пользователи тоже могут запускать процессы в фоновом режиме, и эти процессы способны работать независимо от того, зарегистрирован ли пользователь в системе.
Источник
Как работать с процессами через Powershell Get-Process
Командлет Powershell Get-Process возвращает все процессы запущенные на локальном компьютере. Команда пишется так:
Мы так же можем посмотреть так же процессы, запущенные на удаленном компьютере:
Навигация по посту
Если мы не знаем имени, можно добавить * :
При этом если у вас запущено несколько процессов с этим именем, вернуться все.
Расшифрую заголовки:
Попробуем преобразовать значение из килобайтов в мегабайты:
Где:
-Select-Object обозначаем столбцы, которые хотим вывести.
Как вывести детальную информацию через Powershell Get-Process
Что бы вывести всю возможную информацию два варианта. Это либо вывести объект в виде листа:
Либо можно объявить в переменную, получить все имена свойств и вызывать их по отдельности:
Под такой командой powershell я могу узнать имя, которое пишется в окошке:
Так мы выведем все запущенные процессы, у которых есть GUI:
Как отфильтровать процессы по утилизации в Powershell
Так мы увидим процессы, которые используют больше 67 Мб в памяти с дополнительной информацией о приоритете:
Таким командлетом мы получи информацию по одному процессу, у которого самое высокое значение CPU. Из свойств этого объекта выбран ID, Имя, CPU и время запуска.
Запуск и остановка процессов через Powershell
Мы можем остановить любой процесс. Например таким образом мы остановим все процессы, которые не отвечают (зависли):
Конечно мы можем остановить процесс по идентификатору или имени:
Таким командлетом мы остановим самый старый процесс:
Запуск экземпляра и его завершение через 5 секунд:
Все остальные команды можно узнать с помощью:
Справки с вариантами использования команд powershell:
Источник
Adblock
detector
» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>
Одна из важных задач, которую нужно выяснить при устранении неполадок в приложении .
Вы когда-нибудь задумывались, как проверить, как долго тот или иной процесс выполняется в Windows?
В последнее время я работал на сервере Windows и должен был узнать, как долго выполняется процесс.
После некоторого исследования я обнаружил, что вы можете легко узнать время запуска процесса в Windows с помощью инструмента Process Explorer .
Эта статья расскажет, как установить и проверить время запуска процесса в операционной системе Windows.
- Загрузите Process Explorer со страницы загрузки Microsoft
- Распакуйте загруженный zip-файл
Теперь вы готовы использовать Process Explorer.
- Дважды щелкните,
procexp
чтобы открыть его, он будет выглядеть, как показано ниже
- Нажмите «Просмотр» >> «Выбрать столбцы».
- Щелкните вкладку «Производительность процесса» и выберите «Время начала».
- Нажмите ОК
- Вы заметите, что в Process Explorer добавлен дополнительный столбец под названием Start Time.
Легко?
Надеюсь, это поможет вам в устранении неполадок в вашем приложении.
Skip to content
Как определить время запуска конкретного процесса в Windiws?
На чтение 1 мин. Опубликовано 12.12.2021
Вы когда-нибудь хотели проверить, насколько быстро выполняется определенная задача в Windows?
Легко узнать время начала и завершения процесса в Windows можно с помощью инструмента Process Explorer.
Первым делом необходимо загрузить программу Process Explorer со страницы загрузки Microsoft.
Затем разархивируйте загруженный zip-файл.
Вы полностью готовы к работе, приступим.
Дважды щелкните по процессу, чтобы открыть его, вы увидите ниже: processxp.
Кликните на Просмотр. Далее нажмите Выбрать столбцы.
Перейдите на вкладку Производительность процесса и найдите Время начала.
Подтвердите свое намерение нажатием ОК.
После проделанных шагов вы заметите, что в Process Explorer был добавлен дополнительный столбец под названием Start Time. Именно в нем находится необходимая вам информация. Там указано время работы конкретного процесса.
my code gives you the running time in milliseconds, up to 24 hrs, it is locale insensitive, and accounts for negative values if code runs through midnight. it uses delayed expansion, and should be saved in a cmd/bat file.
before your code:
SETLOCAL EnableDelayedExpansion
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set t=%%I
set /a t1 = %t:~8,1%*36000 + %t:~9,1%*3600 + %t:~10,1%*600 + %t:~11,1%*60 + %t:~12,1%*10 + %t:~13,1% && set t1=!t1!%t:~15,3%
after your code:
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set t=%%I
set /a t2 = %t:~8,1%*36000 + %t:~9,1%*3600 + %t:~10,1%*600 + %t:~11,1%*60 + %t:~12,1%*10 + %t:~13,1% && set t2=!t2!%t:~15,3%
set /a t2-=t1 && if !t2! lss 0 set /a t2+=24*3600000
if you want running time in HH:mm:ss.000 format, add:
set /a "h=t2/3600000,t2%%=3600000,m=t2/60000,t2%%=60000" && set t2=00000!t2!&& set t2=!t2:~-5!
if %h% leq 9 (set h=0%h%) && if %m% leq 9 (set m=0%m%)
set t2=%h%:%m%:%t2:~0,2%.%t2:~2,3%
ENDLOCAL
variable t2
holds your running time, you can echo %t2%
to display it.
my code gives you the running time in milliseconds, up to 24 hrs, it is locale insensitive, and accounts for negative values if code runs through midnight. it uses delayed expansion, and should be saved in a cmd/bat file.
before your code:
SETLOCAL EnableDelayedExpansion
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set t=%%I
set /a t1 = %t:~8,1%*36000 + %t:~9,1%*3600 + %t:~10,1%*600 + %t:~11,1%*60 + %t:~12,1%*10 + %t:~13,1% && set t1=!t1!%t:~15,3%
after your code:
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set t=%%I
set /a t2 = %t:~8,1%*36000 + %t:~9,1%*3600 + %t:~10,1%*600 + %t:~11,1%*60 + %t:~12,1%*10 + %t:~13,1% && set t2=!t2!%t:~15,3%
set /a t2-=t1 && if !t2! lss 0 set /a t2+=24*3600000
if you want running time in HH:mm:ss.000 format, add:
set /a "h=t2/3600000,t2%%=3600000,m=t2/60000,t2%%=60000" && set t2=00000!t2!&& set t2=!t2:~-5!
if %h% leq 9 (set h=0%h%) && if %m% leq 9 (set m=0%m%)
set t2=%h%:%m%:%t2:~0,2%.%t2:~2,3%
ENDLOCAL
variable t2
holds your running time, you can echo %t2%
to display it.
Иногда вам может понадобиться узнать общее время выполнения команды или программы, которую вы запускаете. Чтобы оптимизировать скрипт или программу, важно знать, сколько времени потребуется для его завершения. Это поможет вам сравнить общее время выполнения программы A с программой B и оптимизировать код, особенно если вы профессиональный разработчик программного обеспечения, аналитик или тестировщик программного обеспечения.
Измерение общего времени выполнения скрипта или процесса является одним из наиболее важных аспектов оптимизации производительности. В этой статье рассматриваются различные способы определения общего времени выполнения программы, сценария или команды в Windows.
Найти общее время выполнения программы или команды
Использование PowerShell
PowerShell включает встроенный командлет Measure-Command
, который помогает измерять время, необходимое для запуска блоков сценариев, командлетов или даже внешних программ. Вот пример командной строки PowerShell, которая измеряет время, необходимое для завершения командной строки ping google.com
:
Измерить-Команда Out-Host
После вывода команды ping внизу вы увидите следующую статистику.
Дни: 0 Часы: 0 Минуты: 0 Секунды: 3 Миллисекунды: 66 Тики: 30660017 ВсегоДней: 3.5486130787037E-05 Всего Часов: 0.000851667138888889 Всего Минуты: 0.0511000283333333 ВсегоСекунд: 3.0660017 Всего Миллисекунд: 3066.0017
Узнайте больше о Measure-Object в Microsoft Docs.
Выполнение команды заняло 3, 06 секунды. Аргумент Out-Host
, если он опущен, PowerShell скрывает вывод (команды Ping
) в консоли — вы увидите только статистику выполнения.
Если у вас длинная командная строка или вам нужно запустить несколько команд, вы можете поместить их в командный файл Windows, а затем запустить его с помощью PowerShell. Вот пример:
$config[ads_text6] not found
Измерить-запустить команду-процесс "d: batch backup.bat"
СВЯЗАННЫЕ: найти количество слов, символов и строк в текстовом файле с помощью PowerShell
Использование VBScript
Вот простой VBScript, который вычисляет общее время выполнения командной строки, программы или пакетного файла.
Установите WshShell = WScript.CreateObject ("WScript.Shell") sCmd = chr (34) & "D: Batch Files Backup.bat" & chr (34) dtmStartTime = Timer Return = WshShell.Run (sCmd, 1, true ) Wscript.Echo "Задача выполнена в" & Round (Timer - dtmStartTime, 2) & "seconds".
- Скопируйте приведенный выше код в блокнот
- Сохраните файл как
exec_timer.vbs
. - Во 2-й строке, которая начинается с
sCmd
, измените программу, которую вы хотите запустить, т.е. замените"D:Batch FilesBackup.bat"
в приведенном выше примере на приложение или пакет, который вы хотите запустить. - Сохраните файл и закройте Блокнот.
- Дважды щелкните файл VBScript, чтобы запустить его.
VBScript запускает пакетный файл, команду или программу. После окончания работы отображается общее время выполнения (в секундах).
Использование TimeIt.exe из Resource Kit Tools
TimeIt.exe
является частью средства Windows Server 2003 Resource Kit, которое показывает время выполнения программы или команды. Эта программа отлично работает и на Windows 10.
- После загрузки RK Tools откройте файл rktools.exe с помощью 7-Zip.
- Затем откройте внутри
rktools.msi
- Найдите
TimeIt.exe
и распакуйте в папку.
Чтобы запустить команду или командный файл и измерить его общее время выполнения, вот несколько примеров:
timeit.exe ping google.com
timeit.exe C: Batch Files Run времени выполнения команды backup.bat
TimeIt показал время завершения процесса и истекшее время, среди других деталей. Когда я проверял, записанное значение в байтах не совпадало с размером выходного файла. Но информация чтения / записи байтов не является предметом обсуждения в этой статье.
Дополнительная информация
Когда я писал статью о извлечении аудио из видеофайла с помощью FFmpeg.exe, я думал об измерении времени выполнения команды. Я использовал приведенный выше скрипт для измерения времени, необходимого для извлечения аудио MP3 из файла фильма, используя инструмент командной строки FFmpeg.exe.
Первая партия включала эту командную строку:
ffmpeg -i "C: Movies Movie.mp4" -ss 01:20:00 -t 00:00:20 -кодек: libmp3lame -ab 128000 "D: output-1.mp3"
Вторая партия включала эту командную строку:
ffmpeg -ss 01:20:00 -i "C: Movies Movie.mp4" -t 00:00:20 -codec: библиотека libmp3lame -ab 128000 "D: output-2.mp3"
Как видите, количество аргументов командной строки и соответствующие значения одинаковы. Единственное отличие состоит в том, что параметр -ss
(начальная точка) помещается перед параметром -i
(ввод файла) во 2-м пакетном файле. Метод называется «Поиск ввода» согласно документации FFmpeg.exe. Первый метод называется « -ss
вывода», в котором параметр -i
(входной файл) отображается перед параметром -ss
.
- В документации FFmpeg говорится, что метод поиска ввода намного быстрее, чем поиск вывода, потому что при использовании первого метода FFmpeg.exe переходит (ищет) непосредственно к указанной начальной точке во входном файле и начинает декодирование с этой точки и далее.
- Принимая во внимание, что метод поиска вывода сначала открывает файл, начинает декодирование с
00:00:00
, а затем отбрасывает данные до тех пор, пока они не достигнут-ss
Начальная точка01:20:00
. Таким образом, системные ресурсы (процессор, память и дисковый ввод-вывод) тратятся впустую, а время выполнения увеличивается при использовании метода поиска вывода.
СВЯЗАННЫЕ: конвертировать MP4 или любое видео в MP3 (извлечь аудио из видео файла)
Документация FFmpeg.exe правильная. Когда я тестировал, поиск ввода выполнялся намного быстрее, чем метод поиска вывода.
$config[ads_text6] not found
- 1-я команда (поиск по выходу) заняла 20, 48 секунды.
- Вторая команда (поиск ввода) заняла 16, 62 секунды.
Если вам известны какие-либо другие методы измерения времени выполнения процесса, сценария или команды, давайте узнаем.