Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата Iska:
Возможно. Но уже без меня, ибо вычисления разницы даты/времени на пакетных файлах меня не прельщают. Я для подобных вещей превосходно обхожусь WSH и не вижу никакой нужды в пакетных файлах.
А что сложного то в том? Элементарная математика, не более.
Цитата kerk:
VBS код конечно интересный, но хотелось бы на дни:часы:минуты и в BAT/CMD. Это вообще возможно?
Более чем.
Код: Выделить весь код
@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
Пример использования:
Код: Выделить весь код
C:\> ttime.cmd powershell
13.05:47:23

C:\> ttime.cmd vim
7.11:23:00
О минусах данного подхода: локалезависимость, которую, впрочем, можно обойти; если запущено более одной копии указанного процесса, значение возвращается для более старшего (увы, порочность счетчиков производительности); сам командный сценарий нужно сохранять в win-1251.

Отправлено: 13:36, 25-02-2017 | #15