Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Консольные утилитки для .bat .cmd (http://forum.oszone.net/showthread.php?t=273415)

Опиум 04-12-2013 17:23 2266939

Консольные утилитки для .bat .cmd
 
Вложений: 1
Здесь буду выкладывать утилитки, некоторым из которых 10 лет в обед. Писаны были для использования в батниках.

Начну с любимой)
BEFORE.EXE starttime [endtime] [nowait] - приостановить выполнение командного файла до времени starttime, заданного в формате HH:mm

Примеры
BEFORE.EXE 20:00 -подождать до 20:00 и продолжить. Если к моменту исполнения команды на часах 20:01, то будет ждать до 20:00 следующего дня.
BEFORE.EXE 20:00 23:00 -подождать до 20:00 и продолжить. Если к моменту исполнения команды на часах от 20:00 до 23:00 то ждать не будет. Вернет errorlevel=0 - количество часов которые ждала программа.
BEFORE.EXE 20:00 nowait - не ждать, но вернуть errorlevel=h - количество часов которые бы ждала программа до 20:00
BEFORE.EXE 20:00 23:00 nowait - не ждать, но вернуть errorlevel=h - количество часов которые бы ждала программа до 20:00. Если текущее время от 20:00 до 23:00 то errorlevel=0

В выходную строку отправляет количество секунд которые будет (стала бы) ждать и errorlevel
Код:

d:\>time /t
17:22

d:\>before 20:00 nowait
9440
BEFORE Errorlevel:2

d:\>


Например, нужен рестарт сервера после бекапа, но неизвестно когда он завершится, если в рабочее время, то не рестартовать.

before 0:00 7:00 nowait && shutdown /r

Опиум 05-12-2013 17:58 2267533

Вложений: 1
INKEYS.EXE [[string1] prompt_string] - получает ascii код нажатой клавиши и возвращает его в качестве errorlevel.

если string1 число, то ждет нажатие соответствующее количество секунд

Примеры
Код:

d:\>inkeys test - не ждет, вычитывает нажатую кнопку.
0

d:\>inkeys 5 "Press ESC to abort"    - ждет 5 секунд... я ничего не нажимал. вернулся errorlevel=0
Press ESC to abort [Wait:5 sec]
0

d:\>inkeys 5 "Press ESC to abort"  - нажал esc.  вернулся errorlevel=27
Press ESC to abort [Wait:5 sec]
27

d:\>

использую например в батниках, запускаемых по шедулеру. если запускатся сам - так и ладно, а если я его толкаю ручками - то имею возможность менять логику в местах где ставляю inkeys.exe

Iska 06-12-2013 05:42 2267839

Опиум, это чем-то отличается от choice.exe?!

Опиум 06-12-2013 09:47 2267872

меня както напрягло несколько раз, что опции командной строки choice в разных виндах несовместимы.
решил сбацать инструмент для своего kit-а

Iska 06-12-2013 13:23 2267972

Как раз совместимы. Как и обычно — снизу вверх.

Опиум 06-12-2013 13:42 2267988

ога. снизу вверх.
вот например ХП
Код:

d:\>ver

Microsoft Windows XP [Version 5.1.2600]

d:\>choice /ty,5
[Y,N]?Y

d:\>

и запусти это же под w7...

Iska 06-12-2013 14:01 2268003

Опиум, был неправ. Синтаксис отличается. Следует проводить проверку версии и вызывать свой вариант синтаксиса для каждой ОС.

Опиум 20-12-2013 18:31 2275768

Вложений: 1
Выводит текущее дату-время с секундами и миллисекундами
Код:

D:\>datetimemsec
20131220174820287

D:\>datetimemsec ;
2013;12;20;17;48;26;078

D:\>datetimemsec -
2013-12-20-17-48-29-214


Для замера длительности процесса использую:

Код:

D:\>timemer
timemer.exe string start|stop|view     

D:\>timemer my_backup start      #инициализирует и запускает секундомер под названием "my_backup"
254
20.12.2013 17:51:42 my_backup start

#подождал 12 секунд и набираю

D:\>timemer my_backup view      #показывает сколько прошло времени с момента сброса или инициализации.
0
  0 00:00:12 my_backup view

#еще чуток подождал...

D:\>timemer my_backup stop    #перезапускает секундомер "my_backup"
0
  0 00:00:24 my_backup stop

#подождал 5 секунд и набираю

D:\>timemer my_backup view
0
  0 00:00:05 my_backup view

D:\>

возвращает errorlevel=интервал в часах. и длительность в DD HH:MM:SS
в работе использует файл timemer.ini, расположенный вместе с экзешником.

semcrm 24-12-2013 12:05 2277704

Вложений: 1
Моя любимая : HS_packet ! Она замечательна. В ней находятся:
beep ; color* ; delay ; echo* ; exec ; help ; message ; play ; pos ; readkey ; window.
* НЕ СТАНДАРТНЫЕ.


Время: 23:12.

Время: 23:12.
© OSzone.net 2001-