Вы находитесь на странице: 1из 19

Batch 1

Batch
Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías,
prensa diaria o páginas de Internet fidedignas.
[1]
Puedes añadirlas así o avisar al autor principal del artículo en su página de discusión pegando: {{subst:Aviso referencias|Batch}}
~~~~

En DOS, OS/2 y Microsoft Windows un archivo batch es un archivo de procesamiento por lotes. Se trata de
archivos de texto sin formato, guardados con la extensión BAT que contienen un conjunto de comandos MS-DOS.
Cuando se ejecuta este archivo, (mediante CMD) los comandos contenidos son ejecutados en grupo, de forma
secuencial, permitiendo automatizar diversas tareas. Cualquier comando MS-DOS puede ser utilizado en un archivo
batch.
Esta es la forma de automatizar procesos (copiar, pegar, renombrar y enviar datos) de MS-DOS así evitamos
procesos rutinarios y monótonos, esto es trabajo de máquina. Tiene la funcionalidad de conectarse con otras
interfaces por línea de comandos.
Un tipo batch es un archivo de texto que contiene comandos a ejecutar en un intérprete de comandos propio de DOS
o OS/2. Cuando es iniciado, un programa shell (típicamente command.com o cmd.exe) lo lee y ejecuta, generalmente
línea a línea. De este modo, se emplea para ejecutar series de comandos automáticamente. El hecho de que funcione
solo para MS-DOS lo hace muy limitado. Su extensión es .bat o .cmd.

Comandos batch
Hay varios comandos especiales para este tipo de archivos:

CALLA NIÑO
Este coli realiza, desde un archivo batch, una llamada a la ejecución de otro archivo batch. El primer archivo no
finaliza su ejecución al realizar la llamada.
• CALL [unidad_disco:][path]nombre_archivo [parámetros], donde [unidad_disco:][path]nombre_archivo es la ruta
al archivo batch llamado (debe ser un archivo *.bat) y [parámetros] puede ser cualquier tipo de información que
necesite el programa llamado que pueda pasarse el línea de comandos.

ESCOJER
Ofrece al usuario una entrada de datos para que pueda escoger una opción (escoger una de las letras que se le
ofrecen), y espera hasta que esta tenga lugar.
Es un parámetro opcional.
/C[:]letra, especifica las letras que indicarán las opciones del usuario. Si las especificas separadas por
comas, aparecerán entre corchetes seguidas de un interrogante. Si no se especifican, se usara YN (si, no)
por defecto.
/N: evita que se muestre el prompt de usuario.
/S: hace que discrimine entre entrada de letras mayúsculas o minúsculas.
/T[:]c,nn: introduce un tiempo de espera antes de ejecutar la acción por defecto. Con los siguientes
posibles valores:
c: señala que carácter será usado como opción por defecto después de nn segundos. Solo puedes
indicar uno de los caracteres especificados con el modificador /C:::nn: indica el número de
segundos de pausa. Valores entre 0 y 99.
Batch 2

• CHOICE [/C[:]letra] [/N] [/S] [/T[:]c,nn] [texto], puedes especificar un texto que aparecerá antes de la entrada de
datos. No hace falta que se entrecomille, salvo que dicha cadena de texto incluya una barra /.
Atención: Los sistemas operativos Windows 2000, Windows xp o posteriores no trabajan con este comando. Sólo lo
aceptan por compatibilidad con otros programas.

INCOMPLETO
Activa o desactiva el volcado de texto del programa (output) a la pantalla:
ECHO [ON|OFF] echo [mensaje] Parámetros
ON|OFF: activa o desactiva el volcado de texto. Para conocer el estado actual, usar ECHO sin
parámetros.
Mensaje: el texto a mostrar.
También podemos mostrar una línea en blanco, añadiendo un punto al final:
echo.

NUEVE
Da valor a una variable general o de entorno. Ejemplo: set nombre=jake parámetros:
set /a :Da valor a una variable utilizando operaciones aritméticas
ejemplo: set /a numero=2+2 Lo que devolvería el valor 4
set /p :Permite la entrada de datos por parte del usuario (prompt),el valor introducido por el mismo
define la variable.
ejemplo: set /p nombre=Introduce tu nombre|Esto definiría la variable %nombre% con el valor introducido por el
usuario. Nota:Todo lo que vaya después del signo de = en un set /p se vera en pantalla.

FORA
Ejecuta un comando sobre un grupo de archivos. Puede utilizarse en la línea de comandos o en un archivo bat:
a) en archivos BAT: FOR %%variable IN (set) DO command [command-parameters]
b) en línea de comandos: FOR %variable IN (set) DO command [command-parameters]
Parámetros:
%%variable %variable: representa una variable que será reemplazada por su valor. FOR reemplazará
%%variable o %variable con la cadena de caracteres especificados en SET hasta que el comando
especificado se haya ejecutado sobre todos los archivos. %%variable se emplea con FOR dentro de
archivos batch, y %variable desde la línea de comandos.
(set), especifica uno o más archivos de texto (o cadenas) que se procesaran con el comando. Necesita
paréntesis.
command, el comando que debe ejecutarse sobre cada archivo especificado en SET parámetros de
comando.
Podemos emplear el comando con cualquiera de sus parámetros habituales.

. c .
Batch 3

VASO
Salta la ejecución del programa hacia la línea indicada: GOTO label
Donde :Label (advierte los dos puntos) es una etiqueta que identifica la línea. 8 caracteres máximo.

IF
Permite la ejecución condicional, es decir, sólo se ejecuta el comando si cumple con la condición introducida.
sintaxis: IF [NOT] ERRORLEVEL número comando IF [NOT] string1==string2 comando IF [NOT] EXIST
nombre_archivo comando
Parámetros:
NOT: el comando sujeto a condición se ejecuta solo si esta es falsa.
ERRORLEVEL número: la condición es verdadera sólo si el comando anterior devuelve un código de
salida igual o mayor que el especificado
command: especifica el comando a ejecutar si la condición se cumple string1==string2. La condición se
cumple solo si cadena1 es igual a cadena2. Cadena1 y cadena2 pueden ser cadenas de texto o variables.
EXIST nombre_archivo: la condición se cumple si existe nombre_archivo.

PAUSE
Suspende la ejecución de comandos y presenta un mensaje para que el usuario presione una tecla para continuar.
"pause > nul" no muestra mensaje al pausar la ejecucion, pero sigue requiriendo que el usuario presione cualquier
tecla para poder continuar.

REM
Línea de comentario. Podemos usar REM O :: . CABLE CERO

SHIFT
Alterna la posición de los parámetros en el archivo bat.

Parámetros pasados al script batch


El signo % seguido de un número (del 1 al 9) son las parámetros que se pasaron al invocar nuestro archivo bat. Por
ejemplo si tenemos un archivo saludo.bat con la línea echo Hola %1, si lo invocamos tecleando "saludo.bat pepe"
presentará en pantalla "Hola Pepe". Se usa por ejemplo para pasar nombres de archivos a un bat que se encarga de
borrarlos, moverlos, etc.
El signo %0 representa el nombre del archivo bat en ejecución. El signo %* representa todos los parámetros que se
le pasaron.

::cancelamos el eco para que no moleste


@echo off
::mostramos la ruta y el nombre de este bat
echo estas ejecutando el archivo %0
::si se nos paso algun parametro, lo mostramos
if not "%1"=="" (
echo pasaste el/los parametro/s %*
) else (
echo no pasaste ningun argumento al programa
Batch 4

)
::espera que se pulse una tecla para terminar
pause

Ejemplos
Clásico programa "Welcome usuario.bat"

@echo off
cls
Color 1f
Title Clasico programa "Welcome"
:User
cls
Echo Como te llamas?
Echo.
set user=
set /p user=
if defined user (
Echo.
Echo Bienvenido %user%
pause>nul
)
goto:User

Calculadora

@echo off
color 0f
Title Calculadora
cls

:Menu
Title Calculadora
cls
Echo.
Echo.
echo Hola! Estas en el menu principal.
echo.
echo.
echo 1. Sumar
Echo 2. Restar
Echo 3. Multiplicar
Echo 4. Dividir
Echo 5. Nada (Salir)
Echo.
echo.

set /p menup=Escribe el numero de la opcion elegida (Sin punto):


Batch 5

if %menup%==1 goto sumar


if %menup%==2 goto restar
if %menup%==3 goto multiplicar
if %menup%==4 goto dividir
if %menup%==5 exit else goto error

:Error
title Error !!
cls
echo.
echo Ups! Ha habido un error!
echo Has escrito "%menup%". Debe escribir el numero que indica la
opcion. Sin mas. Solo el numero.
echo Por ejemplo, si quiere sumar, escriba unicamente 1 y pulse intro.
echo Pulse una tecla para volver al menu.
pause > nul

goto Menu

:Sumar
Title Calculadora - Suma
cls
echo.
echo Escribe la primera cifra a sumar
echo.
set /p sum1=
echo.
echo.
echo Escribe la segunda cifra a sumar
echo.
set /p sum2=
echo.
echo.
echo ----------------
echo.
set /a ress=%sum1%+%sum2%
echo %sum1% + %sum2% = %ress%
echo.
echo.
echo Pulse una tecla para volver
pause > nul
goto Menu
Batch 6

:Restar
Title Calculadora - Restar
cls
echo.
echo Escribe la primera cifra a restar
echo.
set /p res1=
echo.
echo.
echo Escribe la segunda cifra a restar
echo.
set /p res2=
echo.
echo.
echo ----------------
echo.
set /a resr=%res1%-%res2%
echo %res1% - %res2% = %resr%
echo.
echo.
echo Pulse una tecla para volver
pause > nul
goto Menu

:multiplicar
Title Calculadora - Multiplicar
cls
echo.
echo Escribe la primera cifra a multiplicar
echo.
set /p mult1=
echo.
echo.
echo Escribe la segunda cifra a multiplicar
echo.
set /p mult2=
echo.
echo.
echo ----------------
echo.
set /a resm=%mult1%*%mult2%
Batch 7

echo %mult1% * %mult2% = %resm%


echo.
echo.
echo Pulse una tecla para volver
pause > nul
goto Menu

:dividir
Title Calculadora - Dividir
cls
echo.
echo Escribe la primera cifra a dividir
echo.
set /p div1=
echo.
echo.
echo Escribe la segunda cifra a dividir
echo.
set /p div2=
echo.
echo.
echo ----------------
echo.
set /a resd=%div1%/%div2%
echo %div1% / %div2% = %resd%
echo.
echo.
echo Pulse una tecla para volver
pause > nul
goto Menu

Temporizador para apagar PC

@echo off
color F0
title Temporizador para apagar PC - Por Agustin Aguilar
echo Elija en cuanto tiempo quiere apagar su PC
set /p o1=En cuanto tiempo quiere apagar su PC? (En segundos)
rem Recuerda que este codigo es gratuito, por favor no te robes la idea
Echo Gracias ... ahora presione cualquier tecla para ver el resultado.

shutdown -s -t %o1% -c "Su pc se apagara"

Menú - Apagar, Cerrar Sesión, Reiniciar, Buscar en internet


Batch 8

@echo off
color F0
Title Menu -
cls

:Menu
Title Menu -
cls
Echo.
Echo.
Echo Hola! Estas en el menu principal.
Echo.
Echo.
Echo 1. Apagar
Echo 2. Reiniciar
Echo 3. Cerrar Sesion
Echo 4. Apagar en ... (Segundos)
Echo 5. Reiniciar en ... (Segundos)
Echo 6. Cerrar Sesion en ... (Segundos)
Echo 7. Buscar en Internet
Echo 8. Salir del Programa
Echo.

set /p menup=Escribe el numero de la opcion elegida (Sin punto):


if %menup%==1 goto Apagar
if %menup%==2 goto Reiniciar
if %menup%==3 goto CerrarSesion
if %menup%==4 goto Apagaren
if %menup%==5 goto Reiniciaren
if %menup%==6 goto CerrarSesionen...
if %menup%==7 goto Buscar
if %menup%==8 goto Salir
:Apagar
cls
shutdown -s
exit

:Reiniciar
cls
shutdown -r
exit

:CerrarSesion
cls
shutdown -f

exit
Batch 9

:Apagaren
cls
color F0
title Temporizador para apagar PC - Por Agustin Aguilar
echo Elija en cuanto tiempo quiere apagar su PC
set /p o1=En cuanto tiempo quiere apagar su PC? (En segundos)

pause
shutdown -s -t %o1% -c "Su pc se apagara"
exit

:Reiniciaren

cls
color F0
title Temporizador para Reiniciar PC - Por Agustin Aguilar
echo Elija en cuanto tiempo quiere Reiniciar su PC
set /p o2=En cuanto tiempo quiere Reiniciar su PC? (En segundos)

pause
exit
shutdown -r -t %o2% -c "Su pc se Reiniciara"
exit

:Salir

Exit

:CerrarSesionen...
cls
@echo off
color F0
title Temporizador para cerrar sesion - Por Agustin Aguilar
echo Elija en cuanto tiempo quiere cerrar su sesion
set /p o1=En cuanto tiempo quiere cerrar su sesion? (En segundos)

pause
shutdown -f -t %o1% -c "Su pc se apagara"

:Buscar

exit
Batch 10

Hasta ahora el programa Batch mas completo, que ya gano el concurso del
programa de batch es el llamado UAU,
podra descargarse proximamente desde la pagina oficial de The Ceasars
Company.

Eliminador de procesos

@echo off

rem NOTAS DEL AUTOR


#############################################################
rem # ##
rem #Autor: Keilcpc (http://miblogbydefault.blogspot.com/) ##
:: #Fecha de Creacion: 22/11/2009 Domingo y Martes 24/11/2009 ##
rem # ##
rem # Recuerda que este codigo es gratuito, si copias y/o modificas ##
rem # el codigo, recuerda siempre al autor original, gracias. ##
rem
#############################################################################

Title ELIMINADOR DE PROCESOS VERSION 0.1.20 by Keilcpc


cls
color 1f
:inicio
cls
echo.
echo ###########################################################
echo # #
echo # Eliminador de procesos #
echo # Version: 0.1.20 (by keilcpc) #
echo # #
echo # http://miblogbydefault.blogspot.com/ #
echo # COPIA Y/O MODIFICA, PERO RECUERDA AL AUTOR ORIGINAL #
echo ###########################################################
echo.
Echo.
Echo.
Echo Menu Principal
Echo._______________
Echo.
Echo 1. Introcudir el nombre del proceso (Sintaxis: nombreproceso.exe)
Echo 2. Crear una lista de procesos para eliminarlos automáticamente.
echo 3. Salir del Script Batch (lo que estas viendo ahora mismo, jeje)
echo.
set /p menup=Escribe el numero de la opcion elegida (Sin punto):
if %menup%==1 goto opuno
if %menup%==2 goto opdos
if %menup%==3 exit
Batch 11

:opuno
cls
Echo Introduce nombre del proceso:
Echo.

set proc=
set /p proc=

if defined proc (
Echo.
taskkill /F /IM %proc%
pause>nul

) else (
echo.
echo Pulsa CTRL+ALT+SUPR y mira en la pestana PROCESOS
echo.
echo Sintaxis: nombreproceso.exe
echo.
pause
)
goto:inicio

:opdos
cls
:opmuno
cls
echo.
Echo Introduce nombre de proceso para introducir en la lista:
echo (SINTAXIS: nombreproceso.exe)
Echo.
set num=
set /p num=
echo taskkill /F /IM %num% >> Eliminador_Automatico.bat
cls
echo.
Echo Menu [Lista de nombres]
Echo.____________________________
Echo.
Echo 1. Introcudir mas nombres de procesos a la lista (Sintaxis:
nombreproceso.exe)
Echo 2. Volver al menu principal
echo.
set /p menup=Escribe el numero de la opcion elegida (Sin punto):
if %menup%==1 goto opmuno
Batch 12

if %menup%==2 goto inicio

::FIN DEL SCRIPT BATCH

Agenda Telefónica

@echo off
cls
color 0b
REM #####################################
REM Autor: Stuffy
REM Autorizada la Copia y/o modificación.
REM Recuerde el autor original.
REM #####################################
title Agenda telefOnica
:Menu
cls
echo.
echo Agenda telefOnica
echo -----------------
echo 1. Ingresar
echo 2. Buscar
echo 3. Editar
echo 4. Ver
echo 5. Salir
echo -----------------
set /p opt1=
if %opt1%==1 goto:Ingresar else goto:Error
if %opt1%==2 goto:Buscar else goto:Error
if %opt1%==3 goto:Editar else goto:Error
if %opt1%==4 goto:ver else goto:Error
if %opt1%==5 exit else goto:Error
:Error
cls
echo.
echo Se ha producido un error.
echo Has escrito "%opt1%".
echo Escribe el nUmero que representa la opciOn.
pause>nul
goto:Menu
:Ingresar
cls
echo.
echo Ingresar registro.
echo ------------------
set /p nombre= Nombre:
set /p telf= TelEfono:
echo ------------------
Batch 13

echo Nombre: %nombre% // Telefono: %telf%>>Registros


echo Registro ingresado
pause>nul
goto:Menu
:Buscar
cls
echo.
set /p find= Buscar:
cls
echo.
echo Resultados:
echo.
find /n /i "%find%" Registros
pause>nul
goto:Menu
:Ver
cls
echo.
echo Registros ingresados:
echo.
type Registros
echo.
pause>nul
goto:Menu
:Editar
cls
echo.
echo Pasos para editar:
echo -------------------------------------------------
echo 1ro. Presione una tecla. (esto lanzara el editor)
echo 2do. Edite la lista de registros.
echo 3ro. Haga click en el menu archivo.
echo 4to. Haga click en guardar.
echo 5to. Haga click en salir.
echo -------------------------------------------------
pause>nul
edit Registros
goto:Menu

Juego en batch con Arte ASCII

@title Juego de los Simpsons


@echo off
@title El juego de los Simpsons
Rem Hecho por Agustin Alvia @ 2010

:menu
set /a res=%random%%%5
Batch 14

echo %res%

if %res% == 0 (goto Maggie)


if %res% == 1 (goto Homer)
if %res% == 2 (goto Marge)
if %res% == 3 (goto Bart)
if %res% == 4 (goto Lisa)
pause > nul

:Homer
cls
echo Quien es?
echo __^&__
echo / \
echo ^| ^|
echo ^| (o)(o)
echo c .---_)
echo ^| ^|.___^|
echo ^| \__/
echo /_____\
echo /_____/ \
echo / \
echo.
echo Letra inicial del nombre Mayuscula ejemplo: Juan
echo.
Set /p nombre=Ingresa el nombre del personaje:
If %nombre% ==Homer (echo Ganastes
echo Presiona una tecla para regresar
pause > nul
goto menu
) else (goto perdiste)

:Marge
cls
echo Quien es?
echo (####)
echo (#######)
echo (#########)
echo (#########)
echo (#########)
echo (#########)
echo (#########)
Batch 15

echo (o)(o)(##)
echo ,_c (##)
echo /____, (##)
echo \ (#)
echo ^| ^|
echo oooooo
echo / \
echo.
echo Letra inicial del nombre Mayuscula ejemplo: Juan
echo.
Set /p nombre=Ingresa el nombre del personaje:
If %nombre% ==Marge (echo Ganastes
echo Presiona una tecla para regresar
pause > nul
goto menu) else (goto perdiste)

:Bart
cls
echo Quien es?
echo ^|\/\/\/^|
echo ^| ^|
echo ^| ^|
echo ^| (o)(o)
echo c _)
echo ^| ,___^|
echo ^| /
echo /____\
echo / \
echo.
echo Letra inicial del nombre Mayuscula ejemplo: Juan
echo.
Set /p nombre=Ingresa el nombre del personaje:
If %nombre% ==Bart (echo Ganastes
echo Presiona una tecla para regresar
pause > nul
goto menu) else (goto perdiste)

:Lisa
cls
echo Quien es?
echo /\ /\ /\
echo ^| ^v \/ \---.
echo \_ /
echo (o)(o) ^<__.
echo _c /
echo /____, ) \
Batch 16

echo \ /----'
echo ooooo
echo / \
echo.
echo Letra inicial del nombre Mayuscula ejemplo: Juan
echo.
Set /p nombre=Ingresa el nombre del personaje:
If %nombre% ==Lisa (echo Ganastes
echo Presiona una tecla para regresar
pause > nul
goto menu) else (goto perdiste)

:Maggie
cls
echo Quien es?
echo /\
echo .----/ \----.
echo \ /
echo .--\ (o)(o) /__.
echo \ () /
echo ^< (c_) ^<
echo /___\____/___\
echo /^| ^|\
echo / \
echo.
echo Letra inicial del nombre Mayuscula ejemplo: Juan
echo.
Set /p nombre=Ingresa el nombre del personaje:
If %nombre% ==Maggie (echo Ganastes
echo Presiona una tecla para regresar
pause > nul
goto menu) else (goto perdiste)

:perdiste
cls
echo c^~^~p ,--------------------------------.
echo ,---'oo ) \
echo( O O PE )/
echo `=^='. /
echo \ , . /
echo \\ ^|----------------------------'^| /
echo ^|^|__^| ^|_^|__^|
echo.
Batch 17

echo Presiona una tecla para regresar

PING 1.1.1.1 -n 1 -w 1 >NUL

cls
echo c^~^~p ,--------------------------------.
echo ,---'oo ) \
echo( O O PERD )/
echo `=^='. /
echo \ , . /
echo \\ ^|----------------------------'^| /
echo ^|^|__^| ^|_^|__^|
echo.
echo Presiona una tecla para regresar
PING 1.1.1.1 -n 1 -w 1 >NUL

cls
echo c^~^~p ,--------------------------------.
echo ,---'oo ) \
echo( O O PERDIS )/
echo `=^='. /
echo \ , . /
echo \\ ^|----------------------------'^| /
echo ^|^|__^| ^|_^|__^|
echo.
echo Presiona una tecla para regresar

PING 1.1.1.1 -n 1 -w 1 >NUL

cls
echo c^~^~p ,--------------------------------.
echo ,---'oo ) \
echo( O O PERDISTE )/
echo `=^='. /
echo \ , . /
echo \\ ^|----------------------------'^| /
echo ^|^|__^| ^|_^|__^|
echo.
echo Presiona una tecla para regresar

pause > nul

goto menu
Batch 18

Referencias
[1] http:/ / en. wikipedia. org/ wiki/ Batch?action=history
Fuentes y contribuyentes del artículo 19

Fuentes y contribuyentes del artículo


Batch  Fuente: http://es.wikipedia.org/w/index.php?oldid=43580751  Contribuyentes: Abece, Airunp, Amadís, BetoCG, CF, DMG, David Abián, Dferg, Dreitmen, Droker94, Eric, Eselito5,
GermanX, Gotenx, Iescriva, Isha, Jjmama, Kved, Lammeruzzo, Letuño, Loveless, Mushii, Mx DDoS, Nebur43, Netito777, Nixón, Omegakent, Retama, Riviera, Ruben.cervera,
RubiksMaster110, Stuffy, Swatnio, Vanbasten 23, Waeswaes, Xexito, 109 ediciones anónimas

Fuentes de imagen, Licencias y contribuyentes


Imagen:Question book.svg  Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Question_book.svg  Licencia: GNU Free Documentation License  Contribuyentes: Diego Grez, Javierme,
Loyna, Remember the dot, Victormoz, Wouterhagens, 5 ediciones anónimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Вам также может понравиться