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

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

systemroot 19-01-2011 17:17 1592440

Простые часы на bat
 
@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


Iska 20-01-2011 07:35 1592841

Тогда уж…
Код:

@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 1592913

Iska, Ваши намного лучше будут :yes: а можно ещё какнибудь сделать чтоб в них был будильник :biggrin:

yurfed 20-01-2011 10:43 1592923

Iska, systemroot, Позвольте спросить, а на куя это всё нужно?
ping 127.0.0.1 -n 2 >nul чего пингуем?

Iska 20-01-2011 11:35 1592957

Цитата:

Цитата systemroot
а можно ещё какнибудь сделать чтоб в них был будильник »

Например, так ;)…
Код:

@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



Цитата:

Цитата yurfed
Iska, systemroot, Позвольте спросить, а на куя это всё нужно »

Откуда мне знать :). Может лабораторная какая?!
Цитата:

Цитата yurfed
ping 127.0.0.1 -n 2 >nul чего пингуем? »

Паузу (Пауза в пакетном файле) делаем.

yurfed 21-01-2011 13:52 1593930

Цитата:

Цитата Iska
Например, так ;)… »

Цитата:

Цитата Iska
Может лабораторная какая?! »

О, да, волшебные лаборотии.
Цитата:

Цитата yurfed
ping 127.0.0.1 -n 2 >nul »

и чего тут увидим? Имеется локалка или просто пинг на сетевую?

SendMessage 21-01-2011 17:21 1594093

Цитата:

Цитата yurfed
и чего тут увидим? Имеется локалка или просто пинг на сетевую? »

Пинг идет локального компа. В принципе, в никуда. И вывод в nul. Это такой обходной способ сделать паузу в батнике.

Vadikan 21-01-2011 17:25 1594096

Iska, а есть уверенность, что интервал между ping четко равен секунде?

Iska 21-01-2011 23:03 1594359

Цитата:

Цитата yurfed
О, да, волшебные лаборотии. »

Можно же когда-нибудь расслабиться, порадовать себя и поиграться ;).
Цитата:

Цитата Vadikan
Iska, а есть уверенность, что интервал между ping четко равен секунде? »

Ориентировался на тему и обсуждение в Пауза в пакетном файле — OSZone.net wiki.

Уверенности никакой. Да и зависимостей от конфигурации системы у «ping.exe» много — встречал раза три упоминания (как минимум раз — и на этом форуме) о неработоспособности такого вида организации задержки в исполнении пакетного файла. Так что, скорее, можно сказать так: на большинстве конфигураций это будет работать и пауза будет ориентировочно близка к одной секунде. С другой стороны, это практически единственный способ на до-«Windows 7» машинах без наличия дополнительно установленных компонентов (того же PoSH, Resource Kit'ов , Support Tools'ов) и сторонних утилит добиться наиболее простым способом паузы в пакетном файле.

Сам я для личного…
читать дальше »
так сказать, пользования в рамках домена предпочитаю употреблять в пакетном файле для этих целей «nircmdc.exe wait …», поскольку могу гарантировать его наличие и доступность на каждой машине, распространяя и периодически обновляя групповыми политиками.

Vadikan 22-01-2011 01:23 1594430

Iska, понятно, что в обычном батнике "примерно одна секунда" или "точно одна секунда" роли не играет, но тут речь идет о часах... :) Я почему и спросил.

amel27 23-01-2011 11:46 1595256

Цитата:

Цитата Vadikan
понятно, что в обычном батнике "примерно одна секунда" или "точно одна секунда" роли не играет, но тут речь идет о часах... Я почему и спросил. »

В этом батнике длительность тоже не имеет значения, т.к. на экран всегда выводится точное время, а не расчетное... Главное, чтобы длительность паузы, с одной стороны, была не больше 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
))


Vadikan 23-01-2011 13:16 1595310

amel27, спасибо за объяснение.

systemroot 26-01-2011 23:10 1597957

спасибо всем большое, тему можно закрыть..

amel27 27-01-2011 11:29 1598228

Цитата:

Цитата systemroot
тему можно закрыть »

, ваша тема, вы и ставьте "решенной"


Время: 18:38.

Время: 18:38.
© OSzone.net 2001-