Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Loop com timer

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Loop com timer Empty Loop com timer Seg Abr 13, 2009 9:18 pm

wagner



Ola pessoal..andei fuçando google atraz de um jeito de fazer esta aplicação mais nada até agora..apesar de ser fraquinho no prompt de comando...
Bom é o seguinte estou precisando fazer uma batch que desconecte e reconecte minha conexão speedy dsl de 3 em 3 minutos assim trocar meu ip..
a parte de conectar e desconectar ja consegui achar algo..estou apanhando com este loop de tempo de 3 minutos...
Precisava de algo que mostrasse como um timer em decrescente de 3 minutos e executasse o batch novamente ...Sei que tem o agendador de tarefas do xp.. mais se puder fazer tudo em uma batch seria legal... creio que não deve ser tão dificil..
Obrigado a todos pela atenção.
Segue abaixo que achei até agora:


Código:
:start
@rasdial "Speedy" /disconect
@set /a contador+=1
@echo ################################################## ##########
@echo.
@echo Tentativa %contador% de conectar a internet, por favor aguarde...
@echo.
@echo ################################################## ##########
@echo.
@rasdial "SPEEDY" email senha
@cls
@if errorlevel 1 goto start

2Loop com timer Empty Re: Loop com timer Ter Abr 14, 2009 8:40 am

Boss-Head

Boss-Head

O comando que você precisa é esse !
ping -n tempo-a-aguardar localhost >nul
você pode colocar ele em qualquer local abaixo do :start
e antes do
@if errorlevel
no seu caso como prewcisa de 3 minutos pode colocar
ping -n 700 localhost >nul que deve equivaler a 3 minutos .

como o batch é pobre em visual juntei um que eu tinha com o seu se quiser mude como preferir se possivel depois poste aqui como ficou !
não testei más tecnicamente deve funcionar para o propósito que você precisa !
Código:
@echo off
title RECONECT BY B©SS-HEAD
COLOR 4f
FOR /L %%W IN (14,1,45) DO MODE CON:LINES=1 COLS=%%W
FOR /L %%W IN (1,1,6) DO MODE CON:COLS=45 LINES=%%W
echo.
echo Quanto tempo deseja de intervalo ?
echo.
set /p int=  Tempo :
cls
set inicio=%time:~0,2%:%time:~3,2%
set vez=0
SET ESP=
set /a hi=%time:~0,2%&set /a mi=%time:~3,2%&set /a si=%time:~6,2%
:inicio
FOR /L %%W IN (45,1,65) DO MODE CON:LINES=6 COLS=%%W
FOR /L %%W IN (6,1,15) DO MODE CON:COLS=65 LINES=%%W
Set /a hf=%time:~0,2%&set /a mf=%time:~3,2%&set /a sf=%time:~6,2%
set /a h=%hf%-%hi%
set /a m=%mf%-%mi%
set /a s=%sf%-%si%
if %s% lss 0 set /a s=%s%+60&set /a m=%m%-1
if %m% lss 0 set /a m=%m%+60&set /a h=%h%-1
cls
echo.
echo.
setlocal
set /a vez=%vez%+1
set pagina=%page%
set aguarde=%int%
echo.
if %vez% GTR 9 SET ESP=
echo  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo  º                                                            º
echo  º    Quantidade de vezes que a conwxÆo foi reiniciada  %vez%  %ESP%  º
echo  º                                                            º
echo  º                Processo iniciado as : %inicio%              º
echo  º                                                            º
echo  º        Aguardando: %aguarde% segundos para uma nova vista        º
echo  º                                                            º
echo  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ECHO          Este aplicativo ja esta rodando a %h%:%m%:%s% Seg
:aguarde
ping -n %aguarde% localhost >nul
MODE CON:LINES=8 COLS=42
:start
cls
@rasdial "Speedy" /disconect >nul
@set /a contador+=1
echo  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo  º                                    º
echo  º Tentativa %contador% de conectar            º
echo  º a internet, por favor aguarde...    º
echo  º                                    º
echo  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
@echo.
@rasdial "SPEEDY" email senha >nul
@cls
@if errorlevel 1 goto start
@if errorlevel 0 goto inicio
goto :inicio

3Loop com timer Empty Re: Loop com timer Dom Abr 19, 2009 7:56 pm

wagner



Opa muito obrigado amigo

Sou fraco se tratando de Batch...demorei um pouco mais deu certo se possivel de sua opinião e diga as possíveis modificações...
Gostei da parte dele pedir o tempo para executar ai no seu vou tentar colocar neste meu tb.. para que assim que seja executado eu poder colocar o tempo e ficar em um loop.
O programinha é somente para não ficar usando proxy para me conectar em servidores que bannem o ip.
Mais uma vez agradecido pela atenção.
Segue abaixo o que fiz.
Precisava tambem de algum bip na aplicação não sei como fazer executar o som sem abrir um player para ele.. seria estilo bip do windows ao dar erro ou coisa assim.
Código:
@echo off
Rem ---------Total de segundos
@set segundos= 100
:loop
COLOR 1A
@set /a contadorx+=1
:tempo
@set /a linha+=1
echo.
echo.
echo.
echo.
echo.
echo. Passados %linha% segundos .....Total..%contadorx%
echo. __________
echo. ___________________
echo.
echo. Desconecta em %segundos% segundos
echo. _______________________________________________________
ping -n 2 localhost > nul
@cls
IF %linha%==%segundos% (goto start
) ELSE (
goto tempo)
@cls
:start
COLOR 1C
rasdial SPEEDY /DISCONNECT
@set /a contador+=1
@echo.
@echo. BY wagner
@echo. ......................
@echo. ..........................................
@echo.
@echo.
@echo ################################################## ##########
@echo.
@echo Tentativa %contador% de conectar a internet, por favor aguarde...
@echo.
@echo ################################################## ##########
@echo.
@rasdial "CONEXÃO" LOGIN SENHA
@cls
@if errorlevel 1 goto start
@set linha=0
goto loop

4Loop com timer Empty Re: Loop com timer Seg Abr 20, 2009 11:29 am

Boss-Head

Boss-Head

BEEP
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

OU DIGITE

Código:
@ECHO OFF
ECHO 
PAUSE

5Loop com timer Empty Re: Loop com timer Ter Abr 21, 2009 2:20 pm

wagner



Obrigado deu certo.
""Mais uma pergunta é possivel acionar no batch um comando ou linha atravez do teclado?
Por exemplo.. Como a aplicação esta em loop gostaria de dar pause no teclado e reiniciar depois do lugar de onde parou.""


Olha que fiz com os beeps... alguem pode precisar de algo assim..
Lembrando sou iniciante desculpe os erros.

Código:
@echo off
mode con cols=55 lines=13
Rem ---------Total de segundos
@set segundos= 10
:loop
COLOR 1A
@set /a contadorx+=1
:tempo
@set /a linha+=1
echo.
echo.
echo.
echo.
echo.
echo. Passados %linha% segundos .....Total..%contadorx%
echo. __________
echo. ___________________
echo.
echo. Desconecta em %segundos% segundos
echo. __________________________________
ping -n 2 localhost > nul
@cls
rem _______________________BEEPS
@set /a x=(%segundos%-5)
@set /a x1=(%segundos%-4)
@set /a x2=(%segundos%-3)
@set /a x3=(%segundos%-2)
@set /a x4=(%segundos%-1)
IF %x%==%linha% (
rundll32 user32.dll,MessageBeep)
@cls
IF %x1%==%linha% (
rundll32 user32.dll,MessageBeep)
@cls
IF %x2%==%linha% (
rundll32 user32.dll,MessageBeep)
@cls
IF %x3%==%linha% (
rundll32 user32.dll,MessageBeep)
@cls
IF %x4%==%linha% (ECHO 
) ELSE (
goto tempo)
@cls
@set linha=0
goto loop

6Loop com timer Empty Re: Loop com timer Ter Abr 21, 2009 3:42 pm

Boss-Head

Boss-Head

NESSE CASO NÃO TEM COMO REINICIAR DEPOIS !
SOMENTE SE VC UTILIZAR ARQUIVOS EXTERNO COMO CHOICE.EXE

7Loop com timer Empty Re: Loop com timer Qua Abr 22, 2009 6:14 pm

wagner



obrigado boss vou perquisar sobre o choice.exe

8Loop com timer Empty Re: Loop com timer Qui Abr 23, 2009 6:25 am

Boss-Head

Boss-Head

Ontem eu fiz um aplicativo que dá facilmente para ser utilizado pelo seu programa !
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

ou seja !
é só você colocar seu script entre
:LOOP
IF NOT EXIST msg.txt GOTO LOOP


no seu caso em especifico coloque assim

:LOOP
blablbablba
blablbablba
etc etc etc.
IF NOT EXIST msg.txt GOTO LOOP
IF EXIST msg.txt pause >nul&del msg.txt&GOTO LOOP



depois posta aqui como ficou caso de certo !

9Loop com timer Empty Bom usa se quiser ! Qui Abr 23, 2009 7:04 am

Boss-Head

Boss-Head

é lógico que coloquei um script .vbs pra contrôle más dá para fezer isso com um outro batch
más o principio pode ser o mesmo !

Código:
@ECHO OFF
ECHO TESTE DE SCRIPT COM PERGUNTAS E RESPOSTAS
IF EXIST msg.txt DEL msg.txt
CALL :PERGUNTA
@echo off
Rem ---------Total de segundos
@set segundos= 100
:loop
COLOR 1A
@set /a contadorx+=1
:tempo
@set /a linha+=1
echo.
echo.
echo.
echo.
echo.
echo. Passados %linha% segundos .....Total..%contadorx%
echo. _______________________________________________________
echo.
echo. Desconecta em %segundos% segundos
echo. _______________________________________________________
ping -n 2 localhost > nul
@cls
IF NOT EXIST msg.txt goto segue
SET /P TESTE=<msg.txt
IF %TESTE%==CONTINUAR GOTO CONTINUA
IF %TESTE%==SAIR GOTO SAIR)
:segue
IF %linha%==%segundos% (goto start
) ELSE (
GOTO tempo
)
@cls
:start
COLOR 1C
rasdial SPEEDY /DISCONNECT
@set /a contador+=1
@echo.
@echo. BY wagner
@echo. ......................
@echo. ..........................................
@echo.
@echo.
@echo ############################################################
@echo.
@echo Tentativa %contador% de conectar a internet, por favor aguarde...
@echo.
@echo ############################################################
@echo.
rem @rasdial "CONEXÃO" LOGIN SENHA
@cls
IF NOT EXIST msg.txt @if errorlevel 1 goto start
@set linha=0
SET /P TESTE=<msg.txt
IF %TESTE%==CONTINUAR GOTO CONTINUA
IF %TESTE%==SAIR GOTO SAIR

:CONTINUA
echo pausa de tempo favor clicar em qualquer tecla para continuar
PAUSE>nul
IF EXIST msg.txt DEL msg.txt
CALL :PERGUNTA
GOTO tempo
:SAIR
echo Obrigado por utilizar esse script Boss-Head agradece
PAUSE
EXIT
:PERGUNTA
(
Echo dim MSG, CRIAMSG, SILENCIO
Echo MSG = "msg.txt"
Echo SILENCIO = true
Echo BOSS = MsgBox^("Clique em OK para pausar o script ou cancelar para sair", VBOKCancel, "B©SS-HEAD | CORP. 2009"^)
Echo If BOSS = VBOK Then
Echo set CRIAMSG = CreateObject^("Scripting.FileSystemObject"^)
Echo set GRAVAMSG = CRIAMSG.OpenTextFile^(MSG, 8, True^)
Echo GRAVAMSG.writeline "CONTINUAR"
Echo GRAVAMSG.close
Echo else
Echo set CRIAMSG = CreateObject^("Scripting.FileSystemObject"^)
Echo set GRAVAMSG = CRIAMSG.OpenTextFile^(MSG, 8, True^)
Echo GRAVAMSG.writeline "SAIR"
Echo GRAVAMSG.close
Echo End If
)>RESPOSTA.VBS
START RESPOSTA.VBS
GOTO:EOF

10Loop com timer Empty Re: Loop com timer Qui Abr 23, 2009 7:17 pm

wagner



valew.
Deste jeito tb posso fazer no mesmo script, usando uma variável para guardar na memória a resposta enquanto o script estiver aberto, ou não?

A minha ideia é meio maluca... estava atraz de algo que usa-se uma tecla de atalho para uma açao no script aberto...

Exe. Rodo o script, e um certo tempo do loop, precisava de dar pause,, a ideia seria usar uma tecla para fazer este pause... no caso usar a tecla pause do proprio teclado..
Como o batch tem muito acesso ao windows imaginei que existisse algo assim.

Da forma que fez da certo sim, ja vou começar estudar como fez para deixar tudo funcionando aqui...

Obrigado boss-head

11Loop com timer Empty Re: Loop com timer Qui Abr 23, 2009 8:09 pm

Boss-Head

Boss-Head

Só esqueci de um detalhe !
coloca assim no seu script !

START /min RESPOSTA.VBS
ou
cscript /nologo RESPOSTA.VBS

senão fica aparecendo 2 janelas

e caso no pc a opção de execução de script esteja desabilitada
coloca isso no inicio do seu script

reg delete "HKLM\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul
reg delete "HKCU\software\Microsoft\Windows Script Host\Settings" /v "Enabled" /f>nul

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos