Comandos MS-DOS: • Hemos estudiado en el tema anterior comandos de tratamiento de carpetas y archivos. • Comandos de carpetas: MD, RD, CD, DIR, E:, D: (cambio de unidad) • Comandos de archivos: COPY, MOVE, DEL, TYPE. • Comando de edición de archivos de texto: EDIT. • Caracteres comodín: * y ? Ampliación de Comandos: • Comandos de Gestión de Fecha y Hora: DATE y TIME. • Gestión del Prompt del sistema. • Gestión de Variables del sistema. • Variable de entorno especial: PATH. Prompt del Sistema: • El comando 'PROMPT' permite modificar el texto del símbolo del sistema que invita a escribir comandos en la consola de comandos. • Sintaxis del comando: > PROMPT texto • El texto escrito pasa a ser el Prompt del sistema. • Vuelve al Prompt original ejecutando el comando con texto vacío. • Se pueden utilizar una serie de caracteres especiales: $Q = (signo igual) $T Hora actual del sistema. $$ $ (signo de dólar) $D Fecha actual del sistema. $G > (signo de mayor) $P Unidad y rutal actual. $L < (signo de menor) $N Unidad actual. $S (espacio en blanco) $V Número de versión de Windows. Ejercicio: Establece los siguientes Prompt: • HOLA > _ • PACO = _ • <$111$> _ • C:\$ _ • 22/03/2012 > _ • 18:15:00 > _ • 22/03/2012 $ 18:19:12 $ _ • B:\SMR > _ (Que salga SIEMPRE esto) • C$ => _ (La unidad + $ + = + >) • Vuelve al Prompt original: C:\Documents and Settings\Usuario> _ Variables del Sistema: • Las variables se gestionan con el comando SET. • El acceso al valor de la variable de entorno 'VAR_NAME' se realiza por medio de '%VAR_NAME%'. • Ejemplo: C:\Ruta > echo %USERNAME% Equipo00 • Opciones del comando SET: ➢ Listado de variables del sistema: C:\Ruta > SET ➢ Listado de variables por patrón: C:\Ruta > SET dom Muestras las variables del sistema que empiezan por 'dom...' ➢ Asignar valor a una variable: C:\Ruta > SET Variable = Valor ➢ Borra una variable: C:\Ruta > SET Variable = Variable de entorno PATH: • PATH es una variable de entorno especial: contiene los directorios del sistema operativo donde se buscan los programas ejecutables. • El valor de esta variable es una lista de directorios separados por el caracter ';' • La variable PATH se puede asignar por medio del comando SET, o por el comando PATH (constituye un comando del sistema): C:\Ruta > SET PATH = C:\Windows C:\Ruta > PATH C:\Windows C:\Ruta > SET PATH (Muestra el valor de la variable PATH) • Lo normal es que se añadan directorios al PATH del sistema: C:\Ruta > SET PATH = %PATH%;C:\DirNuevo Ejercicio Variable PATH: 1º) Crea la carpeta 'E:\Consola\MiPath'. 2º) Copia de la carpeta compartida 'Software' en el equipo del profesor el programa 'putty.exe' y lo dejas en la carpeta anterior. 3º) Abre una consola de MS-DOS. 4º) Dejando el directorio actual donde esté, ejecuta 'putty'. 5º) ¿Qué ocurre? ¿Conoce el comando? 6º) Incluye en la variable PATH el directorio 'E:\Consola\MiPath': C:\Ruta > SET PATH = %PATH%;E:\Consola\MiPath 7º) Comprueba que aparece en la lista de directorios. 8º) Vuelve a ejecutar el programa 'putty'. 9º) Si intentas ejecutar el programa 'notepad' se abre un bloc de notas. El motivo es que 'notepad.exe' está en C:\Windows. Programación BAT: • La consola de comandos es una interfaz que permite ejecutar comandos de MS-DOS como hemos visto hasta ahora. • Además, permite ejecutar secuencialmente los comandos listados en un archivo de texto especial con extensión .BAT, de ahí que este tipo especial de ejecución se llama PROGRAMACIÓN BAT. • Por tanto, la filosofía de la Programación BAT consiste en escribir en un fichero de texto líneas con comandos de MS-DOS. • Escribe este fichero y guárdalo como Ejemplo.bat: MD C:\TEMP MD E:\TEXTOS EDIT E:\TEXTOS\Poema.txt MOVE E:\TEXTOS\Poema.txt C:\TEMP RD E:\TEXTOS Ejercicio 1 de Programación BAT: 1º) Conecta (si aún no la tienes conectada) la unidad 'S' a la carpeta de 'Contenidos SOM' en el equipo del profesor. 2º) Crea la carpeta 'E:\Consola\Ejercicio1'. 3º) Escribe en la carpeta anterior un fichero Ejercicio1.bat que: • Establece como Prompt: $C: > • Lista el contenido de 'S:\Tema 5 - Sistema Archivos\Práctica 7' • Copia en la carpeta 'E:\Consola\Ejercicio1' los siguientes archivos de la carpeta de la Práctica 7: ➢ 'S:\...\Sistema FAT\Sistema FAT.docx' como 'File1.docx'. ➢ 'S:\...\Sistema NTFS\Sistema NTFS.docx' como 'File2.docx'. ➢ 'S:\...\Sistema Ext3\Sistema Ext3.docx' como 'File3.docx'. 4º) Ejecuta el fichero .BAT que acabas de crear. Ejercicio 2 de Programación BAT: Crea y ejecuta el fichero Ejercicio2.bat en la carpeta 'E:\Consola' que: • Vuelve al Prompt original. • Crea la carpeta 'Ejercicio2'. • Copia todo el contenido de la carpeta 'Ejercicio1' en la nueva. • Muestra los atributos del fichero File1.docx. • Muestra por pantalla el contenido del fichero File2.docx. Ejercicio 3 de Programación BAT: Crea y ejecuta el fichero Ejercicio3.bat con las siguientes órdenes: • Crea la carpeta 'Ejercicio3'. • Copia todo el contenido de la carpeta 'Ejercicio1' en 'Ejercicio3'. • Borra la pantalla. Comandos útiles para la Programación BAT: • Comando CLS: Borra la pantalla. • Comando PAUSE: Detiene la ejecución del programa, solicitando al usuario que pulse una tecla. • Comando ECHO: Imprime el texto del parámetro en la pantalla. ➢ ECHO OFF: Oculta el comando ejecutado del fichero .BAT ➢ @ECHO OFF: Oculta incluso la ejecución del comando ECHO. • Comentarios en un programa .BAT: Un comentario es una línea que no se ejecuta pero se escribe para clarificar el programa. En los archivos BAT se utiliza la palabra reservada REM. • Ejemplo: REM Esta línea no se ejecuta... Esta línea da error... Parámetros en Programación BAT: • Los programas BAT se ejecutan como C:\Ruta\Programa • Debe existir el fichero Programa.bat, con esa extensión. • Como cualquier comando de MS-DOS se puede ejecutar pasando parámetros al programa: C:\Ruta\Programa Dato1 Dato2 • Los parámetros están indefinidos (a priori), tanto en su valor, como en su cantidad. • Se recogen a través de variables dentro del programa BAT que se numeran como %1, %2, %3... • Escribe un archivo .BAT con esta única línea: ECHO HOLA %1 • Guárdalo como Nombre.bat y ejecuta el comando: C: \Ruta\Nombre Carmen Programación Secuencial: • La ejecución de los Programas BAT es secuencial: se recorre línea a línea el archivo de comandos, desde la 1ª línea hasta la última. • Se puede romper la secuencia utilizando una estructura que no se recomienda en el mundo de la programación: Comando GOTO. • Sintaxis del Comando: GOTO [ETIQUETA]. • Etiqueta es un nombre lógico que se asigna a una línea, de forma que se puede forzar la ejecución de esta línea con el comando GOTO. REM Prueba del comando GOTO GOTO Raton REM Todas estas líneas no se ejecutan: COMANDO1 – SALTADO! COMANDO2 – SALTADO! REM Etiqueta del Raton: :Raton ECHO FIN PAUSE Programación Condicional: • La estructura de programación condicional es muy útil porque puede modificar el flujo normal de un programa según una condición. • El resultado de la condición que se evalúa depende SIEMPRE de una variable, o de un parámetro del programa. • La sintaxis del comando condicional es ésta: IF CONDICION (INSTR_TRUE) ELSE INSTR_FALSE • Consideraciones a tener en cuenta: – El predicado ELSE no es obligatorio. – Si aparece ELSE, INSTR_TRUE va entre paréntesis. – INSTR_TRUE: Comando o instrucción GOTO que se ejecuta si la condición evaluada es correcta. – INSTR_FALSE: Comando o instrucción GOTO para evaluación falsa. Programación Condicional: • La condición suele ser la comparación de una variable o parámetro del programa con un valor fijo. • Se puede comparar dos variables o parámetros entre sí. • La condición utiliza un operador lógico o aritmético: IF PARAM OPER VALOR GOTO Salto1 • Ejemplo: IF "%1" EQU "" GOTO Vacio (Si el parámetro es vacío, salta a 'Vacio') • Ejemplo: IF "%1" EQU "PEPE" (GOTO Seguir) ELSE GOTO Error (Si el parámetro es PEPE, salta a ':Seguir'; sino, salta a ':Error') • Ejemplo: IF "%1" NEQ "SUPER" (GOTO User) ELSE GOTO Admin (Si el parámetro NO es SUPER, salta a ':User'; sino, salta a ':Admin') Operadores Condicionales: EQUComparador de IGUALDAD. LSS Comparador de MENOR. GTR Comparador de MAYOR. NEQ Comparador de DIFERENTE. LEQ Comparación MENOR o IGUAL. GEQ Comparación MAYOR o IGUAL. Ejercicios de Programación Condicional: • Ejercicio4.bat: Escribe un programa con comandos de MS-DOS que verifique que se reciben 2 parámetros. Si el número de parámetros es incorrecto debe mostrar un aviso; en el caso de número correcto de parámetros debe mostrar el texto 'PERFECTO!'. • Ejercicio5.bat: Basándose en el programa anterior, verificar que los dos parámetros son diferentes; en caso de que no lo sean, mostrar el mensaje de texto 'ERROR – PARAMETROS IGUALES'. Ejercicios Adicionales más complejos: • Ejercicio6.bat: Siguiendo con el Ejercicio5 anterior, le incluímos una dificultad más, que consiste en editar un archivo de texto con EDIT cuyo nombre sea el parámetro 1. Al finalizar la edición del archivo se copia este archivo con el nombre del parámetro 2. • Ejercicio7.bat: Partiendo del Ejercicio4, escribe un programa que compara dos números que recibe como parámetros y muestra la siguiente salida (suponiendo NUM1 y NUM2 los valores recibidos): E:\Consola > Ejercicio7 NUM1 NUM2 NUM1 es mayor que NUM2, ó NUM1 es menor que NUM2, ó NUM1 es igual que NUM2