You are on page 1of 9

Manual bsico de programacin de ficheros Batch

Un fichero batch es un archivo de procesamiento por lote. Se trata de archivos de texto


sin formato, guardados con la extensin *.bat que contienen un conjunto de comandos
DOS. uando se ejecuta este archivo bat, los comandos son ejecutados en grupo, de
forma secuencial, permitiendo automati!ar diversas tareas.
ualquier comando DOS puede ser utili!ado en un archivo batch.
Decir que "atch que no es un #enguaje de $rogramacin sino un archivo de cdigo que
contiene comandos de la shell %indo&s, 'S(DOS, que se ejecuta desde cmd.exe
Hola Mundo en Batch
omen!aremos creando un simple ) cl*sico +,ola 'undo+, escribiendo en un archivo de
texto el siguiente cdigo-
@echo off
echo Hola Mundo
pause
exit
.hora guardemos el archivo como nombre.bat ) lo ejecutamos. /os aparecer* una
pantalla negra que dir* +,ola 'undo+, luego una linea abajo dir* +$resione una tecla para
continuar+. .nalicemos cada apartado-
echo:
0mprime el texto que viene despu1s 2el que le pasamos como par*metro3, que en este
caso es +,ola 'undo+. 4cho significa eco, por lo mismo +5echo off+ elimina el eco, la
repeticin de la ruta en la que nos encontramos en cada l6nea cdigo.
pause:
omo bien se lee, pausa la ejecucin del cdigo. .dem*s muestra el texto "Presione una
tecla para continuar"
exit:
ierra la ventana de comandos. sin esta linea.
1
Otro cdigo ejemplo de fichero bat-
@echo off
echo Hola, Cuando pulses la tecla se borrara el contenido y cambiara por otro.
pause
cls
echo Ves?
pause
exit
Si quisiesemos averiguar ms sobre las funciones, o conocer algunas nuevas podemos
escribir en el Shell el nombre del comando seguido de /? ) aparecer* toda la
informacin necesaria.
$odemos poner en pr*ctica esto de la siguiente manera creando el fichero bat,
ayudacopy.bat-
echo off
cls
copy ?
exit
4l siguiente cdigo que copie un archivo, luego lo mueva a otro directorio, borre el original
) vuelva a copiar el copiado. 4n la carpeta donde crear*s el archivo .bat crea un archivo
de texto llamado copiame.txt. 4n 1l, escribe lo que quieras.
@echo off
echo Hola, Copiaremos un archi!o
pause
copy "copiame.txt" "copiado.txt"
mo!e "copiado.txt" "C"#copiado.txt"
del "copiame.txt"
cd "C"#"
copy "copiado.txt" "copiado$.txt"
exit
2
#o que ha hecho la cadena de instrucciones es m*s o menos lo siguiente- $rimero
apagamos el eco, luego imprimimos en pantalla +,ola, opiaremos un archivo+
Pausamos el int1rprete para que no siga de largo. . continuacin, copiamos el archivo
+Copiame.txt+ ) su copia se llamar* +copiado.txt+. #a movemos a la carpeta ra6! del disco
, ) eliminamos el original.
$or ultimo cambiamos de directorio al disco , copiamos la copia ) cerramos el "atch.
.l escribir echo seguido de un texto ) el signo 7 creamos un archivo con el nombre que
siga. Si ocupamos un echo seguido de un texto ) el doble signo 7 2773 se escribir* en la
siguiente linea vac6a del archivo que prosiga.
,agamos la prueba-
Cdigo :
echo Creando un %rchi!o de texto & nue!o.txt
echo 'sta es la (e)unda linea && nue!o.txt
echo * esta es la (i)uiente && nue!o.txt
echo 'sto esta )enial && nue!o.txt
Si ejecutamos eso, la pantalla negra se abrir* ) cerrar*.
$ero en la carpeta en la que est* nuestro batch se abra creado un nuevo archivo
+nuevo.txt+ que si lo abrimos, dentro estar* escrito lo que especificamos.
Personalizando el SH!!
.qu6 veremos como personali!arlo un poco.
"#!#$:
on la funcin color podemos cambiar los colores de fondo ) las letras. Siendo su
sintaxis-
"#!#$ %&
Donde .8 4l color de el 9ondo ) "8 olor de las letras.
$ara ver todos los colores ve el 'S(Dos ) escribe color /?
3
'('!:
$ara cambiar el t6tulo de la barra de tareas solo escribe-
'itle !o)ue)uierascomotitulo
Pause Personalizado:
$ues si escribes +pause7nul+ no aparecer* ni un texto. 4ntonces si anteponemos un
mensaje, quedar6a as6.
Cdigo :
echo %prieta cual+uier tecla para se)uir
pause&nul
.dem*s puedes jugar con los caracteres. .qu6 un ejemplo, donde cambi1 los colores )
jugu1 con los caracteres ) personalic1 el pause-
4l cdigo que emple1 para esto fue-
@echo off
color ,-
echo ..................................
echo . .
echo . Personali/ado .
echo . .
echo ..................................
echo.
echo.
echo 'sto esta personali/ado, para salir presiona una tecla.
pause&nul
exit
4l resultado es m*s o menos
4
abe mencionar que echo. 2echo seguido de un punto3sirve para saltarse una l6nea.
*atando Procesos:
Si lo haces se abre el .dministrador de tarea. 4n la pesta:a procesos salen algunos
procesos que est*n andando en tu pc, haci1ndoles clics ) apretando +terminar proceso+ lo
puedes acabar.
on batch eso es mu) f*cil, se usa la funcin-
'as++ill 2/o funciona en todos los pc, para ver si esta disponible escribe tas++ill /?3
Su sintaxis es-
tas00ill f im 1mplayer.exe
Si lo ejecutas ) tienes el ;eproductor de %indo&s 'edia abierto, este se cerrar*.
%&$(,-# P$#"S#S:
$ara abrir procesos se usa la funcin Start.
Ejemplo1:
start 1mplayer.exe
Se abrir* el ;eproductor de '<sica
Ejemplo2:
start 111.)oo)le.es
.%$(%&!S:
.hora aprendamos a declarar variables. $ara crear una se escribe-
Cdigo :
set 23M45'V%56%47' . V%735
$ara llamarla debemos escribir su nombre entre los signos //
5
4jemplo-
@echo off
set 2ombre. 8a!ier 7etelier 5ui/
echo 92ombre9
pause
#a pantalla nos mostrara algo as6-
$ara cambiar el valor solo debemos hacer esto-
set 2ombre. 2ue!o Valor
Si quieres que tu variable sea din*mica, osea que el Usuario la elija antepones /p-
set p 2ombre.'scriba su 2ombre"
Donde el "atch se pausara solo mostrando el 'ensaje que va luego de 010 dejando que
se escriba algo. =ambi1n podemos multiplicarlas, sumarlas, etc 2>,(,*,?3 ... con /a-
set numero:.$
ser numero$.;,
set a suma. 9numero:9 < 9numero$9
echo 9suma9
pause
exit
2so de eti)uetas
#a lectura de los cdigos "atch se leen de una manera lineal, pero existe una forma para
que el "atch se salte lineas, o vuelva a alguna anterior. 4sto se logra con 4tiquetas ) la
funcin goto. $ara crear una etiqueta solo debemos escribir-
"nombre'ti+ueta
6
De esta manera el @O=O funciona escribiendo @O=O seguido del nombre de la etiqueta,
como vemos en el siguiente ejemplo.
@echo off
)oto "mieti+ueta
echo Por +ue me saltan?
"Mi'ti+ueta
echo Hola, esta es la eti+ueta y nos saltamos una parte del codi)o.
pause&nul
exit
"ondicionales:
(3
4l condicional que veremos el m*s usado- 09. Se puede ocupar para comparar, cadenas,
n<meros o para saber si existen archivos.
if 9cadena:9 .. 9cadena$9 3rden%'=ecutar
Aue se podr6a leer as6- Si cadenaB es igual a adenaC ejecutemos la Orden.4jecutar.
=ambi1n existe el /O= para ver si no son iguales.
if not 9cadena:9.. 9cadena$9 e=ecutar%ccion
$ara saber si un archivo existe, se usa-
if exist "2ombre>el%rchi!o" %ccion%'=ecutar
o tambi1n para ver si /O existe-
if not exist "2ombre>el%rchi!o" %ccion%'=ecutar
/o solo se puede ocupar el signo 88 para hacer comparaciones.
4AU, que es el equivalente a 88
/4A, Sirve para cuando queremos ver Desigualdad.
#SS, $ara verificar si el numero es 'enor
#4A, $ara verificar si es menor o igual.
@=;, Si es ma)or
@4A, Si es 'a)or e igual.
7
Un ejemplo de esto seria-
if ? @A5 ; echo Hola
3#$:
/os sirve para repetir un comando varias veces, en distintas variables. Un ejemplo, es
este-
for 7 99i 62 B-,:,$:C >3 Becho 99iC
4n donde 7 es para especificar que nuestro for se basara en un conteo de n<meros.
.qu6 se repetir* un echo, que imprimir* n<meros del D al CB.
99i sera el nombre de la variable que almacenara datos
in B-,:,$:C aqu6 especificamos que se repetir* del D al B ) del B al CB.
do Becho 99iC es la funcin que se ejecutara en cada repeticin del comando, en este
caso un echo que imprimir* la variable.
"atch en algunos casos S( reconoce entre ma)<sculas ) min<sculas, como en el caso de
la variable EEi si esta se llamara EE0 no seria reconocida como la misma.
Otro uso que puede ser aplicado en el 9O; es el listado de carpetas o archivos, como
veremos a continuacin-
#istado de archivos-
@echo off
D35 99x in BaEC >3 echo 99x
pause
4ste cdigo, listar6a todos los archivos que comien!an con .. F$or queG * 2asterisco3 es
un signo comod6n, por lo cual al poner a*, estamos diciendo cualquier archivo que tenga
una . delante ) luego cualquier cosa. Otro ejemplo del uso de comod6n, es listar archivos
con extensin com<n como seria este-
@echo off
D35 99x in BE.=p)C >3 echo 99x
pause
.qui nos estaria listando todos los archivos que tengan la extensin .jpg
8
#istado de arpetas-
D35 > 99x in BaEC >3 echo 99x
4s casi lo mismo anterior, tan solo que al indicar ?D solo se aplica a directorios.
Si quisi1ramos que se listaran los directorios, juntos a los directorios que tienen estos
dentro se ocupa ?;
D35 5 > 99x in BaEC >3 echo 99x
) si quisi1ramos listar todos los documentos que est*n dentro de una carpeta contando
los que est*n dentro de carpetas se ocupa solamente ?; 2Sin ?D3
D35 5 99x in BaEC >3 echo 99x
9

You might also like