![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как узнать время работы программы в Windows 7 |
|
CMD/BAT - Как узнать время работы программы в Windows 7
|
Новый участник Сообщения: 11 |
Добрый день.
Искал на интернете как узнать как долго работает та или иная программа в Windows 7. Нашел этот скрипт, но он к сожалению у любой программы пишит только 0.00:00:00. Может ктонибудь помочь с созданием ВАТ скрипта? |
|
Отправлено: 14:03, 24-02-2017 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Iska, а что это, можно пример?
|
Отправлено: 11:29, 25-02-2017 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Пример на PowerShell'е привёл выше коллега alpap. WSH — Windows Script Host, предшественник PowerShell'а, имеет по умолчанию в комплекте два языка: VBScript и JScript. Например (WSH, VBScript):
Option Explicit Dim objSWbemObjectEx With WScript.CreateObject("WbemScripting.SWbemDateTime") For Each objSWbemObjectEx In WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'notepad.exe'") .Value = objSWbemObjectEx.CreationDate WScript.Echo "Notepad worked at " & DateDiff("n", .GetVarDate, Now()) & " minutes" Next End With WScript.Quit 0 Цитата kerk:
|
|
Отправлено: 11:50, 25-02-2017 | #12 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Iska, вставил в код название программы vlc.exe
powershell /nologo /noprofile "[int]((get-date) - ((get-process 'vlc.exe').starttime)).totalminutes" Get-Process : Cannot find a process with the name "vlc.exe". Verify the process name and call the cmdlet again. At line:1 char:33 + [int]((get-date) - ((get-process <<<< 'vlc.exe').starttime)).totalminutes + CategoryInfo : ObjectNotFound: (vlc.exe:String) [Get-Process], ProcessCommandException + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell.Commands.GetProcessCommand Cannot find an overload for "op_Subtraction" and the argument count: "2". At line:1 char:19 + [int]((get-date) - <<<< ((get-process 'vlc.exe').starttime)).totalminutes + CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodCountCouldNotFindBest |
Отправлено: 12:44, 25-02-2017 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата kerk:
Цитата kerk:
Цитата kerk:
|
|||
Отправлено: 13:19, 25-02-2017 | #14 |
Забанен Сообщения: 793
|
Цитата Iska:
Цитата kerk:
@echo off setlocal enabledelayedexpansion chcp 1251>nul set "i=0" for %%i in (%*) do set /a "i+=1" if %i% neq 1 echo:=^>err : index is out of range&goto:eof for /f delims^=^"^ tokens^=3 %%i in ( 'typeperf "\Процесс(%~1)\Прошло времени (сек)" -sc 1^ ^| findstr /irc:":"' ) do 2>nul set /a "s=%%i" % rem : всего секунд if !s! equ -1 echo:=^>err : process has not been found&goto:eof set /a "ss=s%%60", "s/=60", "mm=s%%60", "s/=60", "hh=s%%24", "dd=s/24" for %%i in (%hh% %mm% %ss%) do ( if %%i lss 10 (set "t=!t!0%%i:") else (set "t=!t!%%i:") ) echo:%dd%.%t:~,-1% endlocal&chcp 866>nul exit /b О минусах данного подхода: локалезависимость, которую, впрочем, можно обойти; если запущено более одной копии указанного процесса, значение возвращается для более старшего (увы, порочность счетчиков производительности); сам командный сценарий нужно сохранять в win-1251. |
||
Отправлено: 13:36, 25-02-2017 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата greg zakharov:
|
|
Отправлено: 13:54, 25-02-2017 | #16 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать greg zakharov, этот код я уже пробовал. Создал фаил test.cmd, потом запуститил командную строку с правами админа и написал C:\> test.cmd vlc.exe (пробовал так-же просто vlc). Наверно чтото делаю не так, так-как выкидывает это
Хотя VLC работает где-то 22 часа. |
Отправлено: 21:19, 25-02-2017 | #17 |
Забанен Сообщения: 793
|
Цитата kerk:
![]() Как вариант могу предложить локаленезависимый способ. @echo off setlocal enabledelayedexpansion for %%i in (lodctr.exe) do ( if not exist "%%~$PATH:i" ( call:err "could not retrieve required data" goto:eof ) ) set "i=0" for %%i in (%*) do set /a "i+=1" if !i! neq 1 call:err "argument is out of range"&goto:eof set "pc=%tmp%\perf.tmp" lodctr /s:"%pc%" call:findlocalestr 230 object call:findlocalestr 684 counter del /f /q "%pc%" for /f delims^=^"^ tokens^=3 %%i in ( 'typeperf "%object%(%~1)%counter%" -sc 1 ^| findstr /rc:":"' ) do 2>nul set /a "s=%%i" if !s! equ -1 call:err "process has not been found"&goto:eof set /a "ss=s%%60", "s/=60", "mm=s%%60", "s/=60", "hh=s%%24", "dd=s/24" for %%i in (%hh% %mm% %ss%) do ( if %%i lss 10 (set "t=!t!0%%i:") else (set "t=!t!%%i:") ) echo:%dd%.%t:~,-1% endlocal exit /b :err echo:=^>err : %~1 exit /b 1 :findlocalestr for /f "tokens=2 delims==" %%i in ( 'find "%~1=" "%pc%" ^| findstr /brc:"%~1="' ) do set "%2=\%%i" exit /b |
|
Отправлено: 10:36, 26-02-2017 | #18 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать greg zakharov, попробовал, запустил последний скрипт ''локаленезависимый способ''. Опять что-то делаю не так?
Может у вас дополнительные программы установлены для таких операций, что-то типа PsTools и поэтому результат другой? Программа VLC.exe работает уже 30-40 минут. ![]() |
Отправлено: 12:07, 26-02-2017 | #19 |
Забанен Сообщения: 793
|
kerk, уважаемый, поясните для каких целей нужно в приведенном примере такое барахло, как pstools, когда используются штатные средства?! И да, что это у Вас за чудная версия 6.6.1.7601? Что-то не припомню таковой.
|
Отправлено: 12:30, 26-02-2017 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как узнать время работы программы | AstalaWinda | Скриптовые языки администрирования Windows | 9 | 21-10-2017 13:41 | |
Службы - Как узнать какие назначенные задания Windows были сделаны в последнее время? | sputnikk | Microsoft Windows 7 | 0 | 02-10-2016 13:27 | |
CMD/BAT - [решено] Пауза в bat на время работы программы | Uragan66 | Скриптовые языки администрирования Windows | 1 | 02-01-2016 21:32 | |
Любой язык - Как узнать время, прошедшее после пуска Windows? | Masutin | Скриптовые языки администрирования Windows | 12 | 03-12-2015 10:48 | |
[решено] Время ожидания окончания работы программы | SanyaJoker | AutoIt | 10 | 04-03-2009 14:33 |
|