Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: <[(x)]> en 26 Enero 2009, 18:17 PM

Título: error con IF - BATCH
Publicado por: <[(x)]> en 26 Enero 2009, 18:17 PM
holas nuevamente

Estaba haciendo un programitita y me salto este error 'No se esperaba 2a:~6 en este momento.'

aquí el code

::@echo off

:main

goto pausa
pause
goto:EOF


:pausa

set /s Seg=5
set /p hora=%TIME%
set /s cont=0
set /s  mas=1

:Pbluse
:Sbluse

set /p a=%TIME%

if %hora:~6,2% EQU %a:~6,2% then goto Sbluse

set /s cont= %cont% + %mas%


if %cont% LEQ %Seg% then goto Pbluse

goto:EOF






resultado de la ejecución de m.bat


E:\Documents and Settings\Facundo\Escritorio>m.bat

E:\Documents and Settings\Facundo\Escritorio>pause
Presione una tecla para continuar . . .

E:\Documents and Settings\Facundo\Escritorio>set /S hora=11213211

E:\Documents and Settings\Facundo\Escritorio>set /S a=11213211

E:\Documents and Settings\Facundo\Escritorio>pause
Presione una tecla para continuar . . .
No se esperaba 2a:~6 en este momento.
E:\Documents and Settings\Facundo\Escritorio>if ~6,2a:~6,2 then goto SbluseE:\Do
cuments and Settings\Facundo\Escritorio>


es el primer programita que hago en Batch
espero puedan ayudarme ....

SAluda atentamente (yo)


Título: Re: error con IF - BATCH
Publicado por: Darioxhcx en 26 Enero 2009, 22:54 PM
no entendi =|

que keres hacer ? xD
saludos
Título: Re: error con IF - BATCH
Publicado por: <[(x)]> en 27 Enero 2009, 02:48 AM
holas

explicop:

Lo que quiero hacer es ver la hora, sacarle los segundos, guardarlos en una variable, entrar en un bluse (estructura repetitiva), el cual e cada bes que se ejecute haga lo mismo pero con otra variable y verifica: si lavariables con los segundos que obtuve antes del bluse es = a la que obtuve dentro de el es porque no paso un segundo pero si son distintas entonces si paso.

y eso en otro bluse que suma otra variable que cuando esta alcansa tal balor sale del bluse.

por si comprendes algo de VB te dejo este code:

dim segundos as integer
dim intcont as integer
dim strTime as tring
strtime=Time
segundos=10
intcont=0
do

do
  if Time<>strtime then exit do
  doevents
loop
intcont=intcont+1
if intcont=> segundos then exit do
loop



halgo así e slo que quiero hacer en Batch
Título: Re: error con IF - BATCH
Publicado por: Darioxhcx en 27 Enero 2009, 05:19 AM
if %var% equ %var% then ?
nunca lo vi , no creo q este esa sentencia en if , o x lo menos yo la desconozco

set /s Seg=5
set /p hora=%TIME%
set /s cont=0
set /s  mas=1

yo trataria sin el /s y /p

ahora si no entendi mal , keres q solo muestre los segundos y los valla mostrando '

:bucle
echo %time:~2,6%
ping -n 2 localhost >nul
goto bucle

no se si es eso xD
Título: Re: error con IF - BATCH
Publicado por: _m en 27 Enero 2009, 05:45 AM
Código (dos) [Seleccionar]
@ECHO OFF
CALL:SLEEP [SEGUNDOS]
GOTO:EOF
:SLEEP
SETLOCAL ENABLEEXTENSIONS
(SET TIME=)
IF "%1"=="" (GOTO:EOF)
(SET /A LIMIT=0)
(SET /A LIMIT=%1)
IF %LIMIT% LEQ 0 (ENDLOCAL & GOTO:EOF)
(SET /A CONT=0)
:TIME
(SET MIRROR1=%TIME:~-4,1%)
:INCREMEN
(SET MIRROR2=%TIME:~-4,1%)
IF NOT %MIRROR2%==%MIRROR1% (GOTO:COUNT)
GOTO:INCREMEN
:COUNT
(SET /A CONT +=1)
IF NOT "%CONT%"=="%LIMIT%" (GOTO:TIME)
ENDLOCAL
GOTO:EOF
Título: Re: error con IF - BATCH
Publicado por: <[(x)]> en 27 Enero 2009, 05:56 AM
Darioxhcx: nop

_m:

podrias explicarlop

para q son los ()

y lo prove y no me funciona...