PDF de programación - apuntes ficheros bat

Imágen de pdf apuntes ficheros bat

apuntes ficheros batgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 11 de Octubre del 2017)
2.935 visualizaciones desde el 11 de Octubre del 2017
283,1 KB
11 paginas
Creado hace 12a (17/02/2012)
1 Introducción
En muchas ocasiones los usuarios de windows repiten una determinada secuencia de órdenes día
tras día, suponiendo una tarea bastante molesta e incómoda. Los ficheros por lotes pretenden
automatizar una tarea rutinaria ejecutando una serie de órdenes definidas con antelación.
En este capítulo aprenderemos aquellas herramientas necesarias para crear un fichero por lotes. En
el capítulo siguiente, se exponen y estudian útiles ejemplos que abarcan la totalidad del temario
estudiado.
2 Concepto de fichero por lotes

Un fichero por lotes es un fichero ASCII

que contiene una serie de órdenes

Como ejemplo, vamos a crear un fichero por lotes llamado TIEMPO.BAT. Para su confección
podemos utilizar la orden Copy o el programa Edit.
C:\BATH>copy con tiempo.bat
date
time
^Z
1 archivo(s) copiado(s)
Si ahora ejecutamos el fichero recién creado, vemos como entran en funcionamiento las órdenes
Date y Time.
C:\BATH>tiempo
C:\BATH>date
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
C:\BATH>time
La hora actual es 0:53:54,12
Escriba la nueva hora:
C:\BATH>

Todos los ficheros por lotes poseen unas características comunes:

• Extensión. Todos deben llevar obligatoriamente la extensión BAT.
• Contenido. Son ficheros de texto ASCII y, por consiguiente, pueden ser creados por Copy o

Edit. Cada línea del fichero debe poseer una orden.

• Ejecución. Para hacerlo funcionar simplemente debemos teclear su nombre a continuación



del símbolo del sistema. El fichero por lotes tomará entonces el control del ordenador.
Interrupción. Podemos detener el procesamiento del fichero por lotes en cualquier
momento presionando Ctrl+Pausa.

Todas las órdenes admitidas después del símbolo del sistema pueden introducirse también en un
fichero por lotes. Además, existen una serie de órdenes diseñadas específicamente para estos
ficheros:

Orden

Breve descripción

Controla el eco de las órdenes y visualiza mensajes.
Introduce comentarios.
Detiene temporalmente el desarrollo de un programa.
Desvía incondicionalmente el desarrollo de un programa.
Desvía condicionalmente el desarrollo de un programa.
Permite elegir entre unas opciones establecidas.
Repite una misma orden en un conjunto de ficheros.
Llama a un fichero por lotes desde otro.
Desplaza el valor de los parámetros.

Echo
Rem
Pause
Goto
If
Choice
For
Call
Shift

La siguiente tabla muestra aquellos símbolos empleados exclusivamente en los ficheros por lotes:

Símbolo

Significado

Nombre de una etiqueta.
Parámetro del fichero por lotes.
Variable del entorno.
Variable de la orden For.

Indica si está activado o desactivado el eco de las órdenes.
Activa el eco
Desactiva el eco
Visualiza un mensaje en pantalla.
Visualiza una línea en blanco en pantalla.

:etiqueta
%número
%variable%
%%variable

3 La orden ECHO
Se puede utilizar de cinco formas:
ECHO
ECHO ON
ECHO OFF
ECHO mensaje
ECHO.
El eco de una orden es el propio nombre de aquella escrito en la pantalla. Al poner en marcha el
fichero anterior, observará como aparece el nombre de cada orden en pantalla antes de ejecutarse.
Al fichero del ejemplo podemos añadirle la línea ECHO OFF para desactivar el eco en lo sucesivo.
Para eliminar el eco de la propia orden ECHO OFF se antepone el símbolo arroba (@) al nombre
de la orden. Veámoslo más claro en los ejemplos siguientes.
Programa:
echo off
date
time
Ejecución:
C:\BATH>tiempo
C:\BATH>echo off
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 0:53:54,12
Escriba la nueva hora:
Programa:

@echo off
date
time
Ejecución:
C:\BATH>tiempo
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 0:53:54,12
Escriba la nueva hora:
La orden Echo también permite mostrar mensajes al usuario del fichero. En el siguiente ejemplo se
ha introducido el mensaje "Este es el fichero TIEMPO.BAT":
Programa:
@echo off
echo Este es el fichero TIEMPO.BAT
date
time
Ejecución:
C:\BATH>tiempo
Este es el fichero TIEMPO.BAT
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 1:10:22,72
Escriba la nueva hora:
4 La orden REM
Permite introducir comentarios internos en el código de un fichero por lotes. Las líneas precedidas
por la palabra Rem serán ignoradas durante el funcionamiento del fichero por lotes. Se suele utilizar
esta orden para introducir aclaraciones en el código del fichero. Objetivo: facilitar su lectura y
corrección de errores.
@echo off
rem Programa: TIEMPO.BAT
rem Cometido: Mostrar al usuario la fecha y la hora del
rem sistema y ofrecerle la oportunidad de modificarla.
date
time
Ejercicio

1. Indica la diferencia entre las siguientes órdenes:

• ECHO Ficheros por lotes
• REM Ficheros por lotes

5 Gestión de parámetros
Los parámetros son informaciones adicionales colocadas detrás del nombre de una orden. Si la
mayoría de las órdenes de windows admiten parámetros, también será posible gestionar parámetros

en los ficheros por lotes.
Vamos a confeccionar un fichero por lotes que borre dos ficheros introducidos como parámetros.
Programa:
@echo off
rem Programa: BORRA2.BAT
del %1
del %2
Ejecución:
A:\>borra2 juan.txt maria.txt
En la línea de órdenes, cada parámetro debe estar separado con un espacio en blanco del anterior.
De la forma anteriormente explicada podemos gestionar hasta nueve de ellos (del %1 al %9).
Para referirnos a un parámetro introducido en la línea de órdenes del programa, debemos escribir el
signo de porcentaje (%) seguido del número de parámetro.
El siguiente ejemplo copia los ficheros introducidos como parámetros al disquete de la unidad B:
Programa:
@echo off
rem Programa: COPIAB.BAT
echo Se están copiando los ficheros %1, %2 y %3 a la unidad B:
copy %1 e:\
copy %2 e:\
copy %3 e:\
Ejecución:
A:\>copiab juan.bak alberto.bmp marta.dbf

6 La orden PAUSE
Detiene temporalmente el desarrollo de un programa. Cuando el dos encuentra una orden Pause en
un fichero por lotes visualiza un mensaje en pantalla y espera una tecla para proseguir. También
podemos presionar Ctrl+Pausa y así, interrumpir el desarrollo del fichero.
Presione cualquier tecla para continuar . . .
Para mejorar la presentación, podemos insertar un mensaje indicando el motivo de la detención del
programa gracias a la orden Echo:
echo Inserte un una memoria usb:
pause
Si no deseamos ver el mensaje de Pause, podemos redireccionarlo al dispositivo ficticio NUL.
echo Inserte una memoria usb y pulse Enter
pause >nul
Ejercicios

2. ¿Qué hace la orden PAUSE >NUL ?

3. Escriba un fichero de procesamiento por lotes que pida una memoria usb antes
de mostrar su directorio raíz.

7 La orden GOTO
Normalmente un fichero por lotes se desarrolla secuencialmente, desde la primera línea hasta la
última. Sin embargo, la orden Goto permite desviar la ejecución del programa hasta una etiqueta
especificada como parámetro.

GOTO [:]etiqueta

Las etiquetas deben ir precedidas de dos puntos (:) para diferenciarse de las órdenes. Admiten hasta
ocho caracteres significativos. Esto último significa que la etiqueta `BALANCE_DE_AGOSTO' es
idéntica a `BALANCE_DE_ENERO'.
El siguiente ejemplo muestra cómo se usan las etiquetas:
Programa:
@echo off
ver
goto Final
vol
:Final
Ejecución:
Micosoft Windows Versión [6.1.7600]

En este ejemplo, la orden Vol nunca se ejecutará: al llegar la orden GOTO FINAL, salta hasta la
etiqueta :Final y termina el fichero porque no hay más líneas.
Vamos a crear un programa para copiar varios disquetes desde la unidad A: al directorio actual.
@echo off
rem Programa: DEMO.BAT
echo ********************************************
echo ** Este programa copia todos los ficheros **
echo ** de la unidad A: al directorio actual **
echo ********************************************
pause

:Proceso
copy a:\ .
echo Introduzca el siguiente disquete en A: y pulse Enter
pause >nul
goto Proceso
En primer lugar el programa muestra en pantalla su cometido y así, el usuario decide entre
continuar (Enter) o abandonar (Ctrl+Pausa). Si pulsa Enter se copian todos los ficheros del
directorio raíz de A: en el directorio actual.
Luego, se ofrece la posibilidad de introducir otro disquete. Si pulsamos Enter se ejecuta la orden
GOTO PROCESO, desviando la ejecución del programa hasta la etiqueta :Proceso. En cambio, si
pulsamos Ctrl+Pausa el programa finaliza, apareciendo el símbolo del sistema.
Ejercicio

4. ¿Qué hace el siguiente fichero por lotes?

@echo off
dir c:\
goto etiqueta2
:etiqueta1
ver
:etiqueta2

8 La orden IF
Desvía condicionalmente el proceso de ejecución de un fichero por lotes. Admite 6 sintaxis
diferentes:

IF EXIST fichero orden
IF NOT EXIST fichero orden
IF cadena1==cadena2 orden
IF NOT cadena1==cadena2 orden
IF ERRORLEVEL número orden

Si existe el fichero se ejecuta la orden.
Si no existe el fichero se ejecuta la orden.
Si ambas cadenas son iguales se ejecuta la orden.
Si ambas cadenas son diferentes se ejecuta la orden.
Si el código de salida del último programa es igual o superior
al número, se ejecuta la orden.

IF NOT ERRORLEVEL número orden Si el código de salida del último programa es inferior al número, se

ejecuta la orden.

IF EXIST
Un programador debe considerar todas y cada una de las situaciones posibles al ejecutarse su
programa y, por tanto, debe evitar la aparición de mensajes de error inesperados en la pantalla.
Suponga el siguiente fichero por lotes:
@echo off
del %1
Si ahora lo hacemos funcionar introduciendo como parámetro un fichero inexistente, el ms-dos
tomará el control y dará su correspondiente mensaje de error. Este fichero resulta más correcto si
contiene las siguientes líneas:
@echo off
if not exist %1 echo ¡Es imposible borrar un fichero que no
existe!
if exist %1 del %1
De esta forma, la orden Del sólo funciona si el fichero existe.
IF cadena1==cadena2
Encuentra su utilidad al trabajar con parámetros en un fichero por lotes.
En el fichero BOR
  • Links de descarga
http://lwp-l.com/pdf7176

Comentarios de: apuntes ficheros bat (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad