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

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

firstarey 25-12-2009 14:55 1304040

таймер
 
приветствую,
написал таймер, но мне не нравиться как он работает, хотя работает
подскажите как это оптимизировать ну или лучшее решение, может кто сталкивался уже
читать дальше »
@echo off
Color 0e
:start
cls
Title _=Timer=_
echo ===============================================================================
echo I %date% I
echo ===============================================================================
set Mprompt=x
echo I бЄ®«мЄ® ¬Ё* ¦¤*вм?
set /p Mprompt=I

if /i %Mprompt% GTR 60 goto error else goto next
:next

set BZ=0
set TH=%time:~,2%
set TM=%time:~3,2%
set TS=%time:~6,2%
set /a BZ=%Mprompt%+%TM%
cls
echo ===============================================================================
echo I %date% I
echo ===============================================================================
echo.
echo ⥪г饥 ўаҐ¬п %TH%:%TM%:%TS%

if /i %BZ% GTR 60 (goto var1) else (goto var2)

:var1
set /a H=%BZ%/60
set /a TH=%TH%+%H%
set /a TM=%TM%+%Mprompt%
set /a TM=%TM%-60
echo в*©¬Ґа Ї®бв*ў«Ґ* ** %TH%:%TM%:%TS%

:bud_1
set TH2=%time:~,2%
set TM2=%time:~3,2%
set TS2=%time:~6,2%
if /i %TH2% NEQ %TH% goto bud_1 else goto bud_11
:bud_11
if /i %TM2% NEQ %TM% goto bud_1 else goto bud_111
:bud_111
if /i %TS2% NEQ %TS% goto bud_1 else goto next2

:var2
echo в*©¬Ґа Ї®бв*ў«Ґ* ** %TH%:%BZ%:%TS%

:bud_2
set TH2=%time:~,2%
set TM2=%time:~3,2%
set TS2=%time:~6,2%
if /i %TH2% NEQ %TH% goto bud_2 else goto bud_22
:bud_22
if /i %TM2% NEQ %BZ% goto bud_2 else goto bud_222
:bud_222
if /i %TS2% NEQ %TS% goto bud_2 else goto next2

:next2
start c:\timer\sw ;вот это по идее должно свернуть все окна, незнаю как реализовать- сделал ссылку на ярлык
start /max c:\timer\text.txt
goto end

:error
cls
echo ===============================================================================
echo I %date% I
echo ===============================================================================
echo I Ћ˜?ЃЉЂ: Є®«ЁзҐбвў® ¬Ё*гв *Ґ ¬®¦Ґв Ўлвм Ў®«миҐ 60 !
echo.
pause
goto start

:end
exit

не нравится то что сравнение происходит постоянно, что вызывает нагрузку на процессор
и второй вопрос- подскажите как выполнить команду "свернуть все окна"

NiOl 25-12-2009 16:21 1304100

Есть легкий и надежный способ отмерить нужное кол-во секунд не нагружая процессор:

Код:

set Timer=120
ping -n %Timer% 127.0.0.1>nul

Думаю, что сгодится для 99% задач

firstarey 25-12-2009 17:38 1304155

Цитата:

Цитата NiOl
Есть легкий и надежный способ отмерить нужное кол-во секунд не нагружая процессор:
Код:
set Timer=120
ping -n %Timer% 127.0.0.1>nul
Думаю, что сгодится для 99% задач »

хм.. легко, изящно, работает.. спасибо :)

подскажите еще как из командной строки выполнить "свернуть все окна" и пожалуй тема будет закрыта

Sarus 26-12-2009 13:17 1304650

Цитата:

Цитата firstarey
подскажите еще как из командной строки выполнить "свернуть все окна" и пожалуй тема будет закрыта »

Воспользоваться cmdow.exe
Код:

@Echo off
Rem Свернуть все окна
Cmdow /MA


El Sanchez 26-12-2009 16:37 1304802

Цитата:

Цитата firstarey
подскажите еще как из командной строки выполнить "свернуть все окна" »

Код:

"%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Свернуть все окна.scf"

deepred 17-06-2010 20:45 1436237

Свернуть все окна

******.vbs
Set objShellApp = CreateObject("Shell.Application")
objShellApp.MinimizeAll
WScript.Sleep 300
objShellApp.UndoMinimizeAll

NiOl 18-06-2010 17:44 1436934

El Sanchez, У меня Ваш вариант не сработал по нескольким объективным причинам, но идея отличная и реализовать ее можно так:
Код:

(echo [Shell] & echo Command=2 & echo [Taskbar] & echo Command=ToggleDesktop)>%Temp%\SD.scf
start /wait %Temp%\SD.scf
del /f %Temp%\SD.scf


deepred 21-06-2010 00:23 1438241

Вариант таймера с использованием js
*******************************

*****.bat

@set @x=0 /*
@echo off

:: Ставим паузу
cscript //nologo /e:jscript "%~f0" 5000

exit /b
*/
WScript.Sleep(WScript.Arguments(0))

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

WScript.Sleep(WScript.Arguments(0)*1000) тем самым число аргумента увеличилось в 1000 раз
и "перешло в секунды" .

amel27 21-06-2010 06:02 1438330

Цитата:

Цитата deepred
Вариант таймера с использованием js »

класс!.. спасибо, жаль в VBS нет многострочных комментов

k01t 30-05-2018 03:57 2816118

Цитата:

Цитата firstarey
подскажите еще как из командной строки выполнить "свернуть все окна" и пожалуй тема будет закрыта »

Win7
HTML код:

"%APPDATA%\Microsoft\Internet Explorer\Quick Launch\shows desktop.lnk"

DJ Mogarych 30-05-2018 09:38 2816142

В Powershell ещё проще - например, пауза в 30 секунд делается так:
Код:

sleep 30
Свернуть все окна:
Код:

(New-Object -ComObject shell.application).toggleDesktop()

setti 04-03-2022 16:54 2981112

У меня есть один мини-код для таймера в 1 строку!
Вместо 360 можно написать любое кол-во секунд.
Код:

@echo off
timeout 360 /nobreak



Время: 23:52.

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