-> Programación BATCH Avanzada. (nuevo)

Iniciado por sirdarckcat, 24 Julio 2006, 10:01 AM

0 Miembros y 12 Visitantes están viendo este tema.

Stati98

Gracias, siempre algo sirve, puedo saber un poquito de cada cosa, y esto me sirve muchisimo para aprender otro poquito mas.-

dapark

esta muy bueno tu manual, muschas gracias, pero tengo una inquietud, e buscado la manera para poder validar q solo acepte numeros enteros, q no acepte ningun otro caracter.... pero se me dificulta porq soy algo nuevo en la programacion, nose si podrian ayudarme....

leogtz

Prueba algo como:
:isNumber
set /p "number=Number: "
if not defined number goto :isNumber
set "variable=false"
for /f "delims=abcdefghijklmnopqrstuvwxyz" %%a in ("%number%") do set "variable=true"
if "%variable%"=="true" (
echo Bien
pause>nul
exit /b 0
) else (
echo Mal.
goto :isNumber
)


No filtra todo.

Idea provista por MATT.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

dapark

Cita de: Leo Gutierrez. en 27 Agosto 2009, 04:46 AM
Prueba algo como:
:isNumber
set /p "number=Number: "
if not defined number goto :isNumber
set "variable=false"
for /f "delims=abcdefghijklmnopqrstuvwxyz" %%a in ("%number%") do set "variable=true"
if "%variable%"=="true" (
echo Bien
pause>nul
exit /b 0
) else (
echo Mal.
goto :isNumber
)


No filtra todo.

Idea provista por MATT.

Leo Muchisima gracias este me a serivido, con anterioridad habia realizado este:

@echo off
Title validacion de numeros
color A
set /a valor=%1

if not %errorlevel% == 0 goto endif


if not %valor%==0 goto else
cls
        echo Solo debe de ingresar numeros

goto endif

:else
cls
echo Valores aceptables

:endif


pero no logre adaptarlo a los batch que he estado realizando... el q tu me distes lo acople en un minuto a los programas muchas gracias

fary

Un byte a la izquierda.

dmx-anonimo

disculpen tengo una duda se programar en batch l y todo eso pero no entiendo de que forma puedo  hacer  un espia en batch que se mande por internet  usando solo un ftp
en modo pasivo se puede crear obras de arte con batch osea programas  espias
buenos yo he hecho un par pero cuando lo mando no me llega nada y pruevo el batch en mi pc y anda  y usando un server ftp de mi pc no uno pago  pero qisiera ver algun codigo posteados de algun batch potente en modo espia yo tengo un par de ideas
pero me falta hacer que funque el envio  solo me falla eso..........saludos  ;D
joder .......xd

dario2k8

¡Muy Buen tutorial!
Aprovecho para abusar de la amabilidad de los expertos.
Tengo la siguiente duda, cuando defino un set var=(ruta y archivo)
ejemplo:
set var=c:\ventas\emp.dat
if exist %var% (goto dale) else goto falta
"esta sentencia acepta la ruta completa, por que no me resulta".

¿mi código está mal?
Citar
@echo off
cls
if exist c:\ventas\emp.dat (goto dale) else goto falta
:dale
cd\ventas
start /low /wait sispv.exe
goto FIN
:falta
cd\ventas
copy c:\ventas\emp c:\ventas\emp.dat
start /low /wait sispv.exe
goto fin
:fin
exit

Gracias, por la posible ayuda.

leogtz

Las rutas siempre trabajalas con dobles comillas.

set "var=c:\ventas\emp.dat"
if exist "%var%" (goto dale) else goto falta


Tú código no lo veo mal, mira, déjalo así:

@echo off
cls
if exist "c:\ventas\emp.dat" (goto:dale) else (goto:falta)
:dale
cd \ventas
start /low /wait sispv.exe
goto FIN
:falta
cd \ventas
copy "c:\ventas\emp" "c:\ventas\emp.dat"
start /low /wait sispv.exe
:fin
exit


¿Te da un error en pantalla?
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

dario2k8


;-) Gracias Leo, por contestar mi consulta.... voy a probar ese código. ;-)

¿Te da un error en pantalla? :rolleyes:
Te comento si me sale alguno.

Hanzo_lx

#119
HOla a todos, despues de encontrar este genial manual me gustaria a ver si vosotros veis el fallo porque me estoy volviendome loco

estaba haciendome un bat para renombrar unos archivos segun mis necesidades y me queda algo asi:


@echo off

echo             =========================================
echo             =                                                                                       =
echo             =             Renamer                                                             =
echo             =                                                                                       =
echo             =========================================




:data


set /p Historia=Escriba el numero de historia:

set /p Ojo=Escriba el tipo de ojo:

echo             =========================================
echo               Los datos son correctos?    
echo               Numero de historia: %Historia%      
echo               Tipo de ojo: %Ojo%      
echo             =========================================

set /p respuesta=1 es Si, 2 es NO:

if %respuesta% EQU 1 (goto :renombrar) else (goto :data)




:renombrar
set  contador=0


for /F "tokens=1,4*" %%i in ('dir') do (
                        set /a contador=%contador%+1

echo  %%j %%k %Historia%_%Ojo%_%contador%_%%i.txt)


pause


el tema es que debe renombrar los archivos con nombre de historia+tipo+contador de archivo+fecha de creacion de archivo

el contador lo inicializo a cero y en cada iteracion deberia aumentar en 1 pero siempre me saca 0 y no caigo en que estoy haciendo mal

la primera parte del echo es el nombre del archivo original para esa iteracion (%%j %%k) y la segunda parte(%Historia%_%Ojo%_%contador%_%%i.txt) como deberia quedar despues del renombrado

que os parece?

gracias