Algunos ejemplos de Macros file:///var/www/htdocs/ejemplos_macros.htm Algunos ejemplos de Macros Haz "click" en los botones de la izquierda para guardar en tu PC los ficheros ".BAT" Uso de Parámetros (%0.....%9) @ECHO off rem Tema: uso de parámetros en macros rem Muestra el parámetro que se le pase como primer argumento rem en un marco IF '%1'=='' GOTO error echo ===================== echo %1 echo ===================== GOTO final rem Nos saltamos el mensaje de error :error echo No hay argumento echo USO: %0 :final Uso de Salto Condicional (IF) @echo off rem Tema: Uso del salto Condicional (if) rem Uso de 'if' en una de sus formas: rem - IF ERRORLEVEL #NUM echo La macro copia todos los ficheros del directorio actual echo con extensión ".BAT" en un único fichero llamado "TODO.TXT" copy *.BAT TODO.TXT if errorlevel 1 goto :error goto fin :error echo Error al copiar ficheros :fin echo ** FIN DE LA MACRO ** Uso Avanzado del Salto Condicional (IF) @echo off rem Tema: Uso del salto Condicional (if) rem Se ve el uso de 'if' en dos distintas formas: rem - IF "Cadena1" == "Cadena2" rem - IF EXIST Fichero echo ------echo La macro muestra por pantalla el contenido del echo fichero que se le de en el primer par metro. echo Si el segundo parámetro es "ordenado", lo muestra ordenado echo ------- 1 de 3 15/02/10 13:45 Algunos ejemplos de Macros file:///var/www/htdocs/ejemplos_macros.htm rem Comprobamos que el numero de parametros es correcto IF "%1"=="" goto :error_parametros rem Comprobamos que el primer parámetro corresponde a un rem fichero existente ---> IF EXIST IF NOT EXIST %1 GOTO error_fichero rem Comprobamos si el segundo parámetro es "ordenado" IF "%2"=="ordenado" GOTO mostrar_ordenado rem Mostrar fichero sin ordenar type %1|more goto fin :mostrar_ordenado type %1|sort|more goto fin :error_parametros echo Error: Necesito al menos un argumento goto fin :error_fichero echo Error: No existe el fichero %1 :fin echo ** FIN DE LA MACRO ** Uso del Bucle (FOR) @echo off rem Tema: Uso del bucle (FOR) echo La macro simula el funcionamiento de la orden "dir" echo mostrando cada fichero del directorio actual for %%F in (*.*) do echo -Fichero: %%F echo ** FIN DE LA MACRO ** Ejercicios: 1. Escriba una macro MS-DOS que mueva el contenido del fichero que se le pase como primer parámetro a otro que se le ha pasado como segundo parámetro. La macro debe detectar si se han pasado ambos argumentos, pero no es necesario detectar que el primer argumento corresponda a un fichero existente. Ejemplo de uso (suponiendo que la macro se llama “mueve.bat”): mueve fich1.txt nuevo.txt à mueve el fichero fich1.txt a nuevo.txt mueve fich1.txt à mensaje de error, falta fichero de destino mueve à mensaje de error, faltan ficheros de origen y destino 2. Escriba una macro MS-DOS que copie aquellos ficheros que se le pasen como primer parámetro a un directorio llamado c:\Backup que suponemos que ya existe. La macro debe detectar si se ha pasado el argumento necesario, y en caso afirmativo, que dicho argumento corresponda a 2 de 3 15/02/10 13:45 Algunos ejemplos de Macros file:///var/www/htdocs/ejemplos_macros.htm fichero(s) existente(s). Ejemplo de uso (suponiendo que la macro se llama “copia.bat”): copia *.txt à copia todos los ficheros con extensión txt al directorio c:\backup copia à mensaje de error, faltan ficheros a copiar 3. Escriba una macro que muestre por pantalla el contenido de todos los ficheros que tengan una extensión determinada (que se le pasa como primer parámetro). Antes de cada fichero mostrado escribirá una línea de caracteres '#' Ejemplo de uso (suponiendo que la macro se llama “muestra.bat”): muestra *.txt à Muestra el contenido de todos los ficheros con extensión .txt del directorio actual, separados por una línea de almohadillas. 3 de 3 15/02/10 13:45