TUTORIAL PROGRAMACION BAT

Iniciado por soplo, 8 Septiembre 2003, 14:29 PM

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

¤ Nerviozzo ¤

#150
kadel, aquí está tu código completito xD

@ECHO OFF
:INICIO
CLS
ECHO    ESCOJA EL PROGRAMA QUE DESEA EJECUTAR:
ECHO.
ECHO      1 - PROGRAMA1.EXE
ECHO.
ECHO      2 - PROGRAMA2.EXE
ECHO.
ECHO      3 - PROGRAMA3.EXE
ECHO.
ECHO      4 - PROGRAMA4.EXE
ECHO.
CHOICE /C:1234
IF ERRORLEVEL 4 GOTO CUARTO
IF ERRORLEVEL 3 GOTO TERCERO
IF ERRORLEVEL 2 GOTO SEGUNDO
IF ERRORLEVEL 1 GOTO PRIMERO

:PRIMERO
ECHO   HA ELEGIDO LA OPCION 1; ¿DESEA CONTINUAR?
ECHO.
ECHO     SI.
ECHO.
ECHO     NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 START PROGRAMA1.EXE
GOTO OTRA

:SEGUNDO
ECHO   HA ELEGIDO LA OPCION 2; ¿DESEA CONTINUAR?
ECHO.
ECHO     SI.
ECHO.
ECHO     NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 START PROGRAMA2.EXE
GOTO OTRA

:TERCERO
ECHO   HA ELEGIDO LA OPCION 3; ¿DESEA CONTINUAR?
ECHO.
ECHO     SI.
ECHO.
ECHO     NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 START PROGRAMA3.EXE
GOTO OTRA

:CUARTO
ECHO   HA ELEGIDO LA OPCION 4; ¿DESEA CONTINUAR?
ECHO.
ECHO     SI.
ECHO.
ECHO     NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 START PROGRAMA4.EXE
GOTO OTRA

:OTRA
ECHO.
ECHO  ¿DESEA REALIZAR ALGUNA OTRA OPERACION?
ECHO.
ECHO    SI.
ECHO.
ECHO    NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 GOTO INICIO

:FIN
ECHO.
ECHO   "HASTA PRONTO"
ECHO.


Lo acabo de probar y funciona a la perfección ;)

OBSERVACIONES:

1 - El .BAT se tiene que encontrar en la misma carpeta que los programas a ejecutar, o si no deberás escribir su ruta completa

(Por ejemplo, en vez de esto:)


START PROGRAMA3.EXE

si el programa se encuentra en C:\caca\hola, tendrás que escribir:

START C:\caca\hola\PROGRAMA3.EXE

y así con todos ;)

2 - Necesitas el comando CHOICE, si estás en windows XP o NT, puedes conseguir dicho comando aquí:

http://foro.elhacker.net/index.php/topic,78383.0.html

3 - El código es bastante más largo que el de jvchino porque hace las comprobaciones con todos los programas.

4 - Puedes añadirle todos los programas que te plazcan siguiendo el mismo formato del programa.bat

5 - Espero que te sirva y lo disfrutes xD

PAZ

soplo

Atención

Para consultas sobre este tema se ha creado un manual htm en la siguiente dirección:

Allí podeis leer con mas detenimiento toda la información que está dispersa por este hilo.

Si teneis algún comentario o consulta adicional pues nada. Para eso está el foro.

Un saludo
[/size]
Callar es asentir ¡No te dejes llevar!

kadel

† Nerviozzo † Muchas gracias por el código esta perfecto... ;D

soplo

Hola
Como orientación voy a poner el código de nerviozzo optimizado y usando variables:

@ECHO OFF
:INICIO
CLS
ECHO    ESCOJA EL PROGRAMA QUE DESEA EJECUTAR:
ECHO.
ECHO      1 - PROGRAMA1.EXE
ECHO.
ECHO      2 - PROGRAMA2.EXE
ECHO.
ECHO      3 - PROGRAMA3.EXE
ECHO.
ECHO      4 - PROGRAMA4.EXE
ECHO.
CHOICE /C:1234
IF ERRORLEVEL 4 GOTO CUARTO
IF ERRORLEVEL 3 GOTO TERCERO
IF ERRORLEVEL 2 GOTO SEGUNDO
IF ERRORLEVEL 1 GOTO PRIMERO

:PRIMERO
set programa=Programa1.exe
Set opcion=1
goto Confirmar

:SEGUNDO
set programa=Programa2.exe
Set opcion=2
goto Confirmar

:TERCERO
set programa=Programa3.exe
Set opcion=3
goto Confirmar

:CUARTO
set programa=Programa4.exe
Set opcion=4

:Confirmar
ECHO   HA ELEGIDO LA OPCION %Opcion%; ¿DESEA CONTINUAR?
ECHO.
ECHO     SI.
ECHO.
ECHO     NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 START %Programa%

ECHO.
ECHO  ¿DESEA REALIZAR ALGUNA OTRA OPERACION?
ECHO.
ECHO    SI.
ECHO.
ECHO    NO.
ECHO.
CHOICE /C:SN
IF ERRORLEVEL 2 GOTO FIN
IF ERRORLEVEL 1 GOTO INICIO

:FIN
ECHO.
ECHO   "HASTA PRONTO"
ECHO.


Un saludo
Callar es asentir ¡No te dejes llevar!

soplo

Hola
He recordado un problema con 'choice' que no esá en la consola de xp.

Este problema fue resuelto por Nerviozzo hace tiempo. Está aquí.

ftp://ftp.microsoft.com/Services/TechNet/samples/PS/Win98/Reskit/SCRPTING/CHOICE.EXE

Hay que dejarlo en system32

Un saludo
Callar es asentir ¡No te dejes llevar!

¤ Nerviozzo ¤

Jo, es que siempre que programo en BAT se me olvida que también existen las variables xD

PAZ

Publio

Bueno, a ver si alguine puede contestarme :

Necesitaba realizar un bat que  me permitiese ejecutar el alcohol 120% para que luego montase una imagen sacada de un dvd,  para  que asi procediese seguidamente a la instalación del mismo.

Una vez acabada la instalacion que  ejecutase un programa llamado virtualcdhide con la opción de hide, y que  ejecutase seguidamente el ejecutable .exe con la  opción de compatibilidad para windows  2000.

No se si se  podra hacer. Si es mucho chollo  podríais decirme como  hacer que  ses activen determinadas opciones de un programa en particular  a traves del archivo bat???

Gracias y un saludo :)

von Newman

CitarHe recordado un problema con 'choice' que no esá en la consola de xp.
puedes utilizar el comando set:
*-----------------------------------------------------------*
echo off
break = off
color 02
echo.
echo.
echo      escoge que opcion quieres:
echo.
echo.
echo      1) abrir Xprograma.*
echo      2) abrir Yprograma.*
echo      3) abrir Zprograma.*
echo      4) abrir Wprograma.*
echo.
echo      ****apurate a pensar!! no tengo tiempo!!!!****
echo      jajaja es broma es que tengo sueño!
echo.
echo.
set /p tecla=
if %tecla% == 1 goto :1
if %tecla% == 2 goto :2
if %tecla% == 3 goto :3
if %tecla% == 4 goto :4
if %tecla% =="" goto :fin
:1
start Xprogram.*
:2
start Yprogram.*
:3
start Zprogram.*
:4
start Wprogram.*
:fin
exit
*------------------------------------------------------------*
funciona al igual que el choice, la ruta de los programas debe estar bien escrita en la parte de goto, disculpen la falta de code pero ya tengo sueño jeje
saludos!!!!

makkinen

Buenas, tengo un problema: Estoy intentando copiar un fichero host a la ruta de un pc (C:\winnt\system32\drivers\etc) pero cuando se ejecuta el bat me dice que acceso denegado (0 archivos copiados) Hay alguna manera de copiar un archivo como si fueses otro usuario con los permisos necesarios?

DarkSid3!!

Que buen post, Muchas gracias a todos. Siempre habia estado buscando manuales sobre.bat pero todos los q encontraba eran muy básicos. Al fin encontre lo q queria.

Otra vez Gracias.
Salu2!!