Показать полную графическую версию : [решено] Простые часы на bat
systemroot
19-01-2011, 17:17
@echo off
@title ЧАСЫ
@mode con: cols=20 lines=4
color 1a
:path
echo ╔════════════════╗
echo ║ Время %time:~0,-3% ║
echo ╚════════════════╝
ping 127.0.0.1 -n 2 >nul
cls
goto:path
http://s016.radikal.ru/i337/1101/47/0794ed83c4fc.jpg
@echo off
color 1a
title %date%
mode con: cols=18 lines=1
<nul set /p sTemp=Time:
:Repeat
<nul set /p sTemp=%time:~0,-3%
ping 127.0.0.1 -n 2 >nul
<nul set /p sTemp=
goto:Repeat
;).
systemroot
20-01-2011, 10:27
Iska, Ваши намного лучше будут :yes: а можно ещё какнибудь сделать чтоб в них был будильник :biggrin:
Iska, systemroot, Позвольте спросить, а на куя это всё нужно?
ping 127.0.0.1 -n 2 >nul чего пингуем?
а можно ещё какнибудь сделать чтоб в них был будильник »
@echo off
color 1a
title %date%
mode con: cols=18 lines=1
<nul set /p sTemp=Time:
:Repeat
<nul set /p sTemp=%time:~0,-3%
ping 127.0.0.1 -n 2 >nul
<nul set /p sTemp=
if %time:~0,-6% equ 10:45 <nul set /p sTemp=
goto:Repeat
Iska, systemroot, Позвольте спросить, а на куя это всё нужно »
Откуда мне знать :). Может лабораторная какая?!
ping 127.0.0.1 -n 2 >nul чего пингуем? »
Паузу (Пауза в пакетном файле (http://wiki.oszone.net/index.php/%D0%9F%D0%B0%D1%83%D0%B7%D0%B0_%D0%B2_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%BE%D0%BC_%D1%84%D0%B0% D0%B9%D0%BB%D0%B5)) делаем.
Например, так ;)… »Может лабораторная какая?! »О, да, волшебные лаборотии.
ping 127.0.0.1 -n 2 >nul »и чего тут увидим? Имеется локалка или просто пинг на сетевую?
SendMessage
21-01-2011, 17:21
и чего тут увидим? Имеется локалка или просто пинг на сетевую? »
Пинг идет локального компа. В принципе, в никуда. И вывод в nul. Это такой обходной способ сделать паузу в батнике.
Iska, а есть уверенность, что интервал между ping четко равен секунде?
О, да, волшебные лаборотии. »
Можно же когда-нибудь расслабиться, порадовать себя и поиграться ;).
Iska, а есть уверенность, что интервал между ping четко равен секунде? »
Ориентировался на тему и обсуждение в Пауза в пакетном файле — OSZone.net wiki (http://wiki.oszone.net/index.php/%D0%9F%D0%B0%D1%83%D0%B7%D0%B0_%D0%B2_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%BE%D0%BC_%D1%84%D0%B0% D0%B9%D0%BB%D0%B5).
Уверенности никакой. Да и зависимостей от конфигурации системы у «ping.exe» много — встречал раза три упоминания (как минимум раз — и на этом форуме) о неработоспособности такого вида организации задержки в исполнении пакетного файла. Так что, скорее, можно сказать так: на большинстве конфигураций это будет работать и пауза будет ориентировочно близка к одной секунде. С другой стороны, это практически единственный способ на до-«Windows 7» машинах без наличия дополнительно установленных компонентов (того же PoSH, Resource Kit'ов , Support Tools'ов) и сторонних утилит добиться наиболее простым способом паузы в пакетном файле.
Сам я для личного…так сказать, пользования в рамках домена предпочитаю употреблять в пакетном файле для этих целей «nircmdc.exe wait …», поскольку могу гарантировать его наличие и доступность на каждой машине, распространяя и периодически обновляя групповыми политиками.
Iska, понятно, что в обычном батнике "примерно одна секунда" или "точно одна секунда" роли не играет, но тут речь идет о часах... :) Я почему и спросил.
понятно, что в обычном батнике "примерно одна секунда" или "точно одна секунда" роли не играет, но тут речь идет о часах... Я почему и спросил. »
В этом батнике длительность тоже не имеет значения, т.к. на экран всегда выводится точное время, а не расчетное... Главное, чтобы длительность паузы, с одной стороны, была не больше 1 сек (иначе часы будут пропускать секунды), с другой - не была слишком короткой, чтобы не занимать много процессорного времени на пустом цикле.
Но если очень нужна точность можно использовать PING немного другим образом:
@echo off
SETLOCAL EnableDelayedExpansion
if not "%~1"=="/clock" start "" /HIGH "%~f0" /clock& exit
(
title ЧАСЫ
mode con: cols=20 lines=4
color 1a
%windir%\system32\ping.exe 127.0.0.1 -n 1 >nul
for /l %%i in (1,0,1) do (
cls
echo ╔════════════════╗
echo ║ Время !time:~0,-3! ║
echo ╚════════════════╝
%windir%\system32\ping.exe -w 700 192.0.2.0 -n 1 >nul
))
amel27, спасибо за объяснение.
systemroot
26-01-2011, 23:10
спасибо всем большое, тему можно закрыть..
тему можно закрыть », ваша тема, вы и ставьте "решенной"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.