Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
@echo off
pause
 
rem ППП _EnableDE
rem v2019-01-28_1
rem Устанавливает флаг _DE, если на момент выполнения delayed expansion было
rem включено, иначе снимает флаг и включает delayed expansion. Служит для
rem элиминирования лишних SETLOCAL/ENDLOCAL в подпрограммах.
rem Usage on levels 1 and 2:
rem %_EnableDE%
rem Usage on level 2 and deeper:
rem %_EnableDE:^=^^^%
rem Errorlevel после выполнения не определен.
set _EnableDE=^
(if "" == "!!" (^
  if not defined _DE set _DE=1^
) else (^
  (if defined _DE set _DE=)^^^
& setlocal enabledelayedexpansion^
))
 
rem ППП _DisplayExecTime
rem v2018-09-01_1
rem Отображает количество секунд, прошедших с момента, дата и время которого
rem сохранены в переменных _Date и _Time соответственно.
rem Разница в датах, если есть, всегда принимается за 1.
rem Не может использоваться в других ППП (но может быть доработана для этого).
rem In:
rem - %%a - %time%;
rem - %%b - %date%.
rem Всегда возвращает ошибку 0.
rem Usage:
rem for /f "tokens=1*" %%a in ("%time% %date%") do %_DisplayExecTime%
set _DisplayExecTime=^
if defined _Date if defined _Time (^
  %_EnableDE%^
& (for /f "tokens=1-4 delims=:," %%A in ("!_Time!") do (^
    set B=%%B^
&   (if "0" == "!B:~,1!" if not 00 == !B! set B=!B:~1!)^
&   set C=%%C^
&   (if "0" == "!C:~,1!" if not 00 == !C! set C=!C:~1!)^
&   set D=%%D^
&   (if "0" == "!D:~,1!" if not 00 == !D! set D=!D:~1!)^
&   set /a "Start=(%%A*3600+B*60+C)*100+D"^
  )) ^&^& (if defined B if defined C if defined D (^
    (for /f "tokens=1-4 delims=:," %%A in ("%%a") do (^
      set B=%%B^
&     (if "0" == "!B:~,1!" if not 00 == !B! set B=!B:~1!)^
&     set C=%%C^
&     (if "0" == "!C:~,1!" if not 00 == !C! set C=!C:~1!)^
&     set D=%%D^
&     (if "0" == "!D:~,1!" if not 00 == !D! set D=!D:~1!)^
&     if %%b == !_Date! (^
        set /a "Diff=(%%A*3600+B*60+C)*100+D-Start",Diff1=Diff/100,Diff2=Diff%%100^
      ) else (^
        set /a "Diff=8640000+(%%A*3600+B*60+C)*100+D-Start",Diff1=Diff/100,Diff2=Diff%%100^
      )^
    ))^
&   (if !Diff2! leq 9 set Diff2=0!Diff2!)^
&   echo/^
&   if %%b == !_Date! (^
      echo Execution time: !Diff1!,!Diff2! s (!_Time! - %%a^^^))^
    else (^
      echo Execution time: !Diff1!,!Diff2! s (!_Date! !_Time! - %%b %%a^^^))^
  ))^
& if not defined _DE endlocal^
)
 
set _Date=%date%
set _Time=%time%
 
for /d %%A in (*) do rd /s /q "%%A"
 
for /f "tokens=1*" %%a in ("%time% %date%") do %_DisplayExecTime%
 


Всего записей: 3997 | Зарегистр. 18-04-2005 | Отправлено: 01:48 27-02-2019
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru