Curso de ms dos

2,044 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,044
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
89
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Curso de ms dos

  1. 1. Curso de MS-DOS Saulo Barajas Ingeniero en Informática Este curso explica de forma didáctica los conceptos básicos y avanzados del sistema operativo MS-DOS. El "Curso de MS-DOS" fue publicado originalmente en 1996 en formato de libro. En esta página sólo están incluidos algunos capítulos: el resto espero incluirlos en un futuro aunque no tengo fecha prevista (me requiere bastante tiempo de preparación). El libro no está disponible en librerías; sin embargo, todavía me quedan algunos ejemplares. Si está interesado en adquirir uno al precio de 22 euros más gastos de envío desde Madrid (España) o tiene sugerencias o comentarios, puede ponerse en contacto con el autor. (C) Saulo Barajas. No se permite la reproducción total o parcial sin la autorización previa del autor. Pueden incluirse enlaces hacia esta página desde otros sitios web sin necesidad de solicitar autorización. Queda prohibida su venta o utilización como texto en centros de formación sin permiso expreso del autor. Sin embargo, el curso puede ser utilizado libremente para uso personal. Última revisión del texto: 1995 Publicación libro: 1996 (Barajas, Saulo: Curso de MS-DOS. Editorial Osiris, 1996) Publicación en Internet: 11 de mayo de 2001 Publicaciones · Saulo.Net Primera parte: Curso de MS-DOS Índice (Están disponibles todos los capítulos de la segunda parte y los capítulos 8, 10-18. El resto los iré incluyendo a medida que los prepare en HTML) Primera parte: Curso de MS-DOS Segunda Parte: MS-DOS avanzado 1. Conceptos fundamentales 2. Órdenes del MS-DOS. Trabajo con discos 3. Trabajo con directorios 4. Trabajo con ficheros 5. Operaciones de copia 6. Los atributos 7. El entorno del DOS 8. Redireccionamientos 9. El programa EDIT 10. Ficheros por lotes (I) 11. Ficheros por lotes (II) 12. El programa DOSKEY 13. La memoria 14. Los discos del DOS 15. Defrag, Undelete y Unformat 16. Msbackup 17. Los virus informáticos 18. El fichero CONFIG.SYS Página 1 de 6Curso de MS-DOS
  2. 2. 1. Conceptos fundamentales 1-1 Introducción 1-2 Partes del ordenador 1-3 ¿Qué es software y hardware? 1-4 ¿Qué es un sistema operativo? 1-5 Los discos almacenan información 1-6 ¿Qué son los ficheros? 1-7 ¿Qué es un directorio? CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN EJERCICIOS 2. Órdenes del MS-DOS. Trabajo con discos 2-1 Puesta en marcha del ms-dos 2-2 Las órdenes del ms-dos 2-3 Las unidades de discos 2-4 Adelantándonos a los errores 2-5 Formatear un disquete 2-6 ¿Qué es etiquetar un disco? 2-7 ¿Qué es el número de serie de un disco? CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 3. Trabajo con directorios 3-1 Introducción: Necesidad de directorios 3-2 El directorio por defecto de cada unidad 3-3 CD cambia el directorio por defecto 3-4 TREE muestra árboles de directorios 3-5 MD crea directorios 3-6 RD borra directorios CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 4. Trabajo con ficheros 4-1 Introducción 4-2 Los comodines del dos 4-3 DIR muestra el directorio 4-4 Ver el contenido de los ficheros 4-5 La orden COPY 4-6 DEL borra ficheros 4-7 DELTREE borra árboles de directorios 4-8 REN renombra ficheros CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 5. Operaciones de copia Página 2 de 6Curso de MS-DOS
  3. 3. 5-1 Introducción 5-2 Los dispositivos del dos 5-3 Otras posibilidades de COPY 5-4 Copia de disquetes 5-5 XCOPY copia directorios completos CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 6. Los atributos 6-1 Los atributos 6-2 La orden ATTRIB 6-3 XCOPY y el atributo archivar 6-4 Otras posibilidades de XCOPY 6-5 Ayuda a las órdenes del ms-dos 6-6 La orden DIR CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 7. El entorno del DOS 7-1 El entorno 7-2 La orden SET 7-3 La variable COMSPEC 7-4 La variable PATH 7-5 La variable PROMPT 7-6 La variable DIRCMD 7-7 La variable TEMP CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 8. Redireccionamientos 8-1 Introducción 8-2 Los operadores 8-3 Los filtros del DOS 8-4 Redirección de la entrada. Operador `<' 8-5 Redirección de la salida. Operador `>' 8-6 Redirección de la salida a un fichero existente `>>' 8-7 Redirección de la salida a entrada de otra orden ( | ) CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 9. El programa EDIT 9-1 Introducción 9-2 Justificación de Edit 9-3 El ratón Página 3 de 6Curso de MS-DOS
  4. 4. 9-4 Funcionamiento del Editor 9-5 El menú Archivo 9-6 Seleccionar un texto 9-7 Menú Edición 9-8 Menú Búsqueda 9-9 Menús Opciones y Ayuda CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 10. Ficheros por lotes (I) 10-1 Introducción 10-2 Concepto de fichero por lotes 10-3 La orden ECHO 10-4 La orden REM 10-5 Gestión de parámetros 10-6 La orden PAUSE 10-7 La orden GOTO 10-8 La orden IF 10-9 La orden CHOICE 10-10 Las variables del entorno 10-11 Otras órdenes CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS 11. Ficheros por lotes (II) 11-1 Introducción 11-2 El fichero AUTOEXEC.BAT 11-3 Ejemplo primero: BUSCAR.BAT 11-4 Ejemplo segundo: RELOJ.BAT 11-5 Ejemplo tercero: PROGRAMA.BAT 11-6 Ejemplo cuarto: BORRAR.BAT 11-7 Ejemplo quinto: COPIADIR.BAT 12. El programa DOSKEY 12-1 Introducción 12-2 Edición de órdenes sin Doskey 12-3 Edición de órdenes con Doskey 12-4 Creación de macros CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN PUESTA EN PRÁCTICA EJERCICIOS (Capítulos 1 al 12) Segunda parte: MS-DOS avanzado 13. La memoria 13-1 Introducción Página 4 de 6Curso de MS-DOS
  5. 5. 13-2 Memoria ROM y memoria RAM 13-3 Tipos de memoria RAM 13-4 Configurar los tipos de memoria 13-5 Aprovechar la memoria superior 13-6 La orden MEM 13-7 Crear un caché de disco 13-8 Crear un disco RAM 13-9 El programa MEMMAKER 14. Los discos del DOS 14-1 Introducción 14-2 El sistema de disco 14-3 El disco 14-4 Sector de arranque 14-5 Los grupos 14-6 La FAT 14-7 El directorio raíz 14-8 El área de datos 14-9 Estructura lógica de los discos duros 14-10 Corrección de errores en los discos 15. Defrag, Undelete y Unformat 15-1 Introducción 15-2 DEFRAG 15-3 Preparar UNDELETE 15-4 Restaurar ficheros borrados con UNDELETE 15-5 Funcionamiento de UNDELETE 15-6 La orden FORMAT 15-7 UNFORMAT 16. Msbackup 16-1 Introducción 16-2 Organización eficiente de un disco duro 16-3 Tipos de copias de seguridad 16-4 Glosario de MSBACKUP 16-5 Iniciar MSBACKUP 16-6 Crear copias de seguridad 16-7 Restaurar copias de seguridad 17. Los virus informáticos 17-1 Introducción: Los virus informáticos 17-2 Motivos para fabricar un virus 17-3 Clasificación de los virus 17-4 Medidas para evitar el contagio 17-5 Síntomas generales de la presencia de un virus 17-6 Los anti-virus 17-7 MSAV 17-8 VSAFE Página 5 de 6Curso de MS-DOS
  6. 6. 18. El fichero CONFIG.SYS 18-1 Introducción: El fichero CONFIG.SYS 18-2 Orden BUFFERS 18-3 Orden FILES 18-4 Instalar controladores de dispositivos 18-5 Orden COUNTRY 18-6 Orden LASTDRIVE 18-7 Orden DOS 18-8 Orden SHELL Subir · Publicaciones · Saulo.Net Página 6 de 6Curso de MS-DOS
  7. 7. Capítulo 8 Redireccionamientos Índice · Capítulo 7 · Capítulo 9 · Publicaciones · Saulo.Net 8-1 Introducción Para comprender mejor el significado del redireccionamiento, intente responder primeramente las siguientes preguntas. 1. Cuando el ordenador solicita información, ¿qué dispositivo utiliza para recibirla? 2. Cuando el ordenador necesita presentar información, ¿qué dispositivo emplea? Las respuestas correctas son el teclado y el monitor respectivamente. En este capítulo aprenderemos a redirigir (cambiar) las entradas y salidas de las órdenes del ms-dos. El siguiente cuadro presenta la entrada y la salida por defecto de las órdenes del dos. Índice · Arriba · Publicaciones · Saulo.Net 8-2 Los operadores Para variar la entrada de una orden, la salida o ambas, se utilizan los operadores de redireccionamiento. Son cuatro: Índice · Arriba · Publicaciones · Saulo.Net Función Dispositivo Entrada por defecto CON (teclado) Salida por defecto CON (monitor) Operador Descripción Sintaxis < Redirección de la entrada orden <fichero/dispositivo > Redirección de la salida orden >fichero/dispositivo >> Redirección de la salida a un fichero existente orden >>fichero | Redirección de la salida de una orden a entrada de otra orden orden1 |orden2 Página 1 de 10Curso de MS-DOS Capítulo 8
  8. 8. 8-3 Los filtros del DOS Los filtros del dos son las órdenes More, Sort y Find. Estas tres órdenes externas se denominan filtros porque su misión es recibir una entrada, filtrarla y devolver una salida. More Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos caracteres insertando una pausa cada 23 líneas. En muchas ocasiones la información mostrada por una orden o el contenido de un fichero no cabe en una sola pantalla y los datos se desplazan a gran velocidad sin darnos tiempo a leerlos. La utilidad de la orden More se encuentra en estas ocasiones, deteniendo el desplazamiento de información en cada pantalla. Entonces, More muestra la siguiente línea: -- Más -- Después de leer los datos en pantalla, podemos pulsar Enter para continuar o también Ctrl+Pausa para interrumpir. Sort Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos caracteres ordenando cada fila alfabéticamente. El uso más frecuente de este filtro es ordenar alfabéticamente el contenido de un fichero. Admite dos modificadores: Find Recibe como entrada un conjunto de caracteres organizados en filas y devuelve las filas que contengan una cadena determinada. La cadena de caracteres para buscar debe especificarse entre comillas (Mays+2) después de la orden. Se utiliza, a menudo, para buscar una cadena de caracteres en un fichero o en la salida de una orden. El filtro Find distingue entre mayúsculas y minúsculas mientras no le especifiquemos el modificador /I entre la orden y la cadena. Modificador Descripción /R Ordena inversamente (de la `Z' a la `A' y del `9' al `0') /+columna Indica la columna del carácter a partir del cual se comparará cada fila. Página 2 de 10Curso de MS-DOS Capítulo 8
  9. 9. FIND "cadena" (cadena es diferente que CADENA) FIND /I "cadena" (cadena es lo mismo que CADENA) Índice · Arriba · Publicaciones · Saulo.Net 8-4 Redirección de la entrada. Operador `<' Cómo hemos dicho al principio del capítulo, las órdenes del dos solicitan información a través del teclado. Con este operador hacemos que la información de entrada proceda desde un fichero o un dispositivo. Aplicaciones: Mostrar un fichero de texto con pausa en cada pantalla. A:>more <recuerdo.txt (More toma como entrada el fichero RECUERDO.TXT y como salida, el monitor) Ordenar un fichero alfabéticamente y verlo en la pantalla. A:>sort <personal.txt (Sort toma como entrada el fichero PERSONAL.TXT y como salida, el monitor) Ordenar un fichero alfabéticamente a partir de una columna. Ejemplo: Si el fichero PERSONAL.TXT contiene nombres y datos del personal de una empresa, podemos ordenarlo por la columna que indica el puesto ejercido por cada empleado. A:>sort /+40 <personal.txt Encontrar las filas que contienen una cadena de caracteres. A:>find "JIMENEZ" <personal.txt (Find considera como entrada el fichero PERSONAL.TXT y muestra por pantalla todas las filas que contienen la cadena «JIMENEZ») Ejercicios de autocomprobación 1. Indique las órdenes necesarias para: a) Mostrar el fichero CRONICA.TXT con pausa en cada pantalla. b) Mostrar el fichero AVISO.TXT con pausa en cada pantalla. c) Ordenar el fichero NUMEROS.TXT alfabéticamente. d) Ordenar el fichero LISTIN.TXT alfabéticamente a partir de la columna 30. e) Ordenar el fichero AMIGOS.TXT inversamente. Página 3 de 10Curso de MS-DOS Capítulo 8
  10. 10. f) Buscar la cadena "IGNACIO" en el fichero PERSONAL.TXT 2. Si no utilizamos el operador `<', ¿cuál es el dispositivo de entrada por defecto? Índice · Arriba · Publicaciones · Saulo.Net 8-5 Redirección de la salida. Operador `>' Con este operador dirigimos la salida desde la pantalla a un fichero o dispositivo. Suele tener dos usos principales: 1. Enviar la salida de una orden a la impresora. A:>type romance.txt >prn (imprime el fichero ROMANCE.TXT en impresora) C:>vol >prn (imprime la etiqueta y el número de serie en impresora) 2. Enviar la salida de una orden a un nuevo fichero. Si el fichero existe, se pierde su contenido anterior. C:>dir >director.txt (crea el fichero DIRECTOR.TXT con el directorio raíz de C:) C:>ver >version.txt (crea el fichero VERSION.TXT conteniendo la versión actual de ms-dos) El operador `>' también se puede combinar con los filtros del dos. Veamos algunas aplicaciones: Ordenar un texto introducido por teclado en un fichero. El cursor se sitúa debajo de la orden esperando las filas de texto. Al terminar cada fila debemos pulsar Enter y para terminar la introducción de texto, Ctrl+Z y luego Enter. B:>sort >amigos.txt (Sort asume como entrada el teclado y como salida el fichero AMIGOS.TXT) Ordenar un fichero en otro. B:>sort <listin1.txt >listin2.txt (Sort asume como entrada el fichero LISTIN1.TXT y como salida, el fichero LISTIN2.TXT) Ordenar un fichero en la impresora. B:>sort <listin1.txt >prn Página 4 de 10Curso de MS-DOS Capítulo 8
  11. 11. (Sort toma como entrada el fichero LISTIN1.TXT y como salida, la impresora) Buscar una cadena en un fichero y crear otro con el resultado de la búsqueda. B:>find "CONTABLE" <personal.txt >contable.txt Ejercicios de autocomprobación 3. Indique la entrada y la salida de las siguientes líneas de órdenes. a) DATE <DIA.TXT b) TIME <HORA.TXT c) TYPE ROMANCE.TXT d) TYPE ROMANCE.TXT >CON e) DIR >DIRECTOR.TXT f) DIR >PRN g) SORT h) SORT <DESORDEN.TXT i) SORT <DESORDEN.TXT >ORDEN.TXT j) SORT <DESORDEN.TXT >PRN k) FIND "HARINA" <COMPRA.TXT l) FIND "HARINA" <COMPRA.TXT >HARINA.TXT m) MORE <AVISO.TXT Índice · Arriba · Publicaciones · Saulo.Net 8-6 Redirección de la salida a un fichero existente `>>' Se utiliza para dirigir la salida de una orden a un fichero existente. Al contrario que el operador `>', el operador de adicción `>>' no sobrescribe sino añade al fichero existente. La siguiente orden añade al fichero SOS.TXT la ayuda de la orden Time. Si no existe, se crea el fichero. A:>time /? >>sos.txt La siguiente añade al fichero SOS.TXT la ayuda suministrada por ms-dos para la orden Date. A:>date /? >>sos.txt Si ahora visualizamos el fichero SOS.TXT, comprobamos que contiene la ayuda de ambas órdenes. A:>type sos.txt Muestra o establece la hora del sistema. Página 5 de 10Curso de MS-DOS Capítulo 8
  12. 12. TIME [hora] Escriba TIME sin parámetros para consultar o cambiar la hora actual. Presione ENTRAR para conservar la misma hora. Presenta o establece la fecha. DATE [dd-mm-aa] dd-mm-aa Establece la fecha que se especifique. Escriba DATE sin parámetros para ver la fecha actual y poder escribir una nueva. Presione ENTRAR para conservar la misma fecha. D:> Ejercicios de autocomprobación 4. Escribir las órdenes necesarias para: a) Mostrar el fichero INFORME.TXT con pausa en cada pantalla. b) Imprimir el fichero INFORME.TXT en la impresora. c) Ordenar el texto introducido por el teclado en la impresora. d) Añadir la etiqueta y el número de serie de la unidad actual (orden Vol) al fichero VARIOS.TXT e) Añadir el directorio actual al fichero VARIOS.TXT Índice · Arriba · Publicaciones · Saulo.Net 8-7 Redirección de la salida a entrada de otra orden ( | ) El uso del operador `|' guarda la siguiente sintaxis: orden1 |orden2 Nota: El símbolo de tubería o símbolo de canalización `|' se obtiene pulsando AltGr+1. La lectura de esta sintaxis es: "tomar la salida de orden1 como entrada de orden2". Cada vez que utilizamos el símbolo tubería, ms-dos necesita crear un fichero temporal. Para ello utiliza la variable de entorno TEMP. Si esta variable no está bien definida, puede ocurrir algún error. Aplicaciones: Mostrar con pausa en cada pantalla la salida de una orden. Página 6 de 10Curso de MS-DOS Capítulo 8
  13. 13. B:>type informe.txt |more C:DOS>dir |more C:>tree |more Obtener una línea determinada de la salida de una orden. C:>dir |find "bytes libres" 20.443.136 bytes libres (muestra los bytes libres de la unidad C:) C:>set |find "TEMP" TEMP=C:DOS (muestra el valor de la variable TEMP o nada si no existe) Ejercicios de autocomprobación 5. Entre las siguientes líneas de órdenes, agrupar por parejas las que hagan lo mismo. a) COPY EJEMPLO.TXT PRN b) TYPE EJEMPLO.TXT |MORE c) TYPE EJEMPLO.TXT >PRN d) COPY EJEMPLO.TXT CON e) DIR /P f) MORE <EJEMPLO.TXT g) TYPE EJEMPLO.TXT h) DIR |MORE Índice · Arriba · Publicaciones · Saulo.Net Clave de los ejercicios de autocomprobación 1. a) MORE <CRONICA.TXT b) MORE <AVISO.TXT c) SORT <NUMEROS.TXT d) SORT /+30 <LISTIN.TXT e) SORT /R <AMIGOS.TXT f) FIND "IGNACIO" <PERSONAL.TXT 2. El teclado es el dispositivo de entrada por defecto. Página 7 de 10Curso de MS-DOS Capítulo 8
  14. 14. 3. a) DIA.TXT monitor b) HORA.TXT monitor c) (teclado) monitor d) (teclado) monitor e) (teclado) DIRECTOR.TXT f) (teclado) impresora g) teclado monitor h) DESORDEN.TXT monitor i) DESORDEN.TXT ORDEN.TXT j) DESORDEN.TXT impresora k) COMPRA.TXT monitor l) COMPRA.TXT HARINA.TXT m) AVISO.TXT monitor 4. a) MORE <INFORME.TXT b) TYPE INFORME.TXT >PRN c) SORT >PRN d) VOL >>VARIOS.TXT e) DIR >>VARIOS.TXT 5. a) y c) Imprimir EJEMPLO.TXT b) y f) Mostrar con pausa en cada pantalla EJEMPLO.TXT d) y g) Visualizar EJEMPLO.TXT e) y h) Mostrar el directorio actual con pausa en cada pantalla. Índice · Arriba · Publicaciones · Saulo.Net Puesta en práctica Vamos a seguir los siguientes pasos: 1. Crear un fichero llamado AMIGOS1.TXT que contenga los siguientes datos. (Las dos primeras líneas no debe crearlas en el fichero: están para introducir las columnas correctamente). 0 10 20 30 40 12345678901234567890123456789012345678901234567 Ismael Caballero Valladolid 7986821 María López Córdoba 4568756 Sonia Aguilar Valladolid 1239083 Juan Ramírez Córdoba 7643434 Laura Díaz Córdoba 4221336 Enrique Ortiz Burgos 3423444 Mónica Carrasco Madrid 1234123 Cristina Reyes Madrid 3344334 2. Conocer todos los amigos de Córdoba. Página 8 de 10Curso de MS-DOS Capítulo 8
  15. 15. 3. Conocer el número de teléfono de Cristina. 4. Ordenar alfabéticamente el fichero basándonos en la ciudad. 5. Ordenar alfabéticamente el fichero basándonos en el apellido. 6. Crear otro fichero llamado AMIGOS2.TXT que contenga lo siguiente: 0 10 20 30 40 12345678901234567890123456789012345678901234567 Antonio López Alicante 8344621 Juan Moreno Alicante 4352359 7. Unir ambos ficheros en un tercero llamado AMIGOS3.TXT 8. Ordenar alfabéticamente AMIGOS3.TXT por el nombre y escribir el resultado en un nuevo fichero llamado AMIGOS4.TXT. 9. Visualizar por pantalla AMIGOS4.TXT. Si tiene impresora, imprímalo. 10. Borrar los cuatro ficheros creados. Resolución en el ordenador: A:>copy con amigos1.txt Ismael Caballero Valladolid 7986821 María López Córdoba 4568756 Sonia Aguilar Valladolid 1239083 Juan Ramírez Córdoba 7643434 Laura Díaz Córdoba 4221336 Enrique Ortiz Burgos 3423444 Mónica Carrasco Madrid 1234123 Cristina Reyes Madrid 3344334 ^Z 1 archivo(s) copiado(s) A:>find "Córdoba" <amigos1.txt María López Córdoba 4568756 Juan Ramírez Córdoba 7643434 Laura Díaz Córdoba 4221336 A:>find "Cristina" <amigos1.txt Cristina Reyes Madrid 3344334 A:>sort /+26 <amigos1.txt Enrique Ortiz Burgos 3423444 Laura Díaz Córdoba 4221336 María López Córdoba 4568756 Juan Ramírez Córdoba 7643434 Mónica Carrasco Madrid 1234123 Cristina Reyes Madrid 3344334 Sonia Aguilar Valladolid 1239083 Ismael Caballero Valladolid 7986821 A:>sort /+12 <amigos1.txt Sonia Aguilar Valladolid 1239083 Ismael Caballero Valladolid 7986821 Mónica Carrasco Madrid 1234123 Laura Díaz Córdoba 4221336 Página 9 de 10Curso de MS-DOS Capítulo 8
  16. 16. María López Córdoba 4568756 Enrique Ortiz Burgos 3423444 Juan Ramírez Córdoba 7643434 Cristina Reyes Madrid 3344334 A:>copy con amigos2.txt Antonio López Alicante 8344621 Juan Moreno Alicante 4352359 ^Z 1 archivo(s) copiado(s) A:>type amigos1.txt >amigos3.txt A:>type amigos2.txt >>amigos3.txt A:>type amigos3.txt Ismael Caballero Valladolid 7986821 María López Córdoba 4568756 Sonia Aguilar Valladolid 1239083 Juan Ramírez Córdoba 7643434 Laura Díaz Córdoba 4221336 Enrique Ortiz Burgos 3423444 Mónica Carrasco Madrid 1234123 Cristina Reyes Madrid 3344334 Antonio López Alicante 8344621 Juan Moreno Alicante 4352359 A:>sort <amigos3.txt >amigos4.txt A:>type amigos4.txt Antonio López Alicante 8344621 Cristina Reyes Madrid 3344334 Enrique Ortiz Burgos 3423444 Ismael Caballero Valladolid 7986821 Juan Moreno Alicante 4352359 Juan Ramírez Córdoba 7643434 Laura Díaz Córdoba 4221336 María López Córdoba 4568756 Mónica Carrasco Madrid 1234123 Sonia Aguilar Valladolid 1239083 A:>del amigos?.txt A:> Índice · Arriba · Capítulo 9 · Publicaciones · Saulo.Net Página 10 de 10Curso de MS-DOS Capítulo 8
  17. 17. Capítulo 10 Ficheros por lotes (I) Índice · Capítulo 9 · Capítulo 11 · Publicaciones · Saulo.Net 10-1 Introducción En muchas ocasiones los usuarios de ms-dos 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. Índice · Arriba · Publicaciones · Saulo.Net 10-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 Echo Controla el eco de las órdenes y visualiza mensajes. Página 1 de 11Curso de MS-DOS Capítulo 10
  18. 18. La siguiente tabla muestra aquellos símbolos empleados exclusivamente en los ficheros por lotes: Índice · Arriba · Publicaciones · Saulo.Net 10-3 La orden ECHO Se puede utilizar de cinco formas: 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 Rem Introduce comentarios. Pause Detiene temporalmente el desarrollo de un programa. Goto Desvía incondicionalmente el desarrollo de un programa. If Desvía condicionalmente el desarrollo de un programa. Choice Permite elegir entre unas opciones establecidas. For Repite una misma orden en un conjunto de ficheros. Call Llama a un fichero por lotes desde otro. Shift Desplaza el valor de los parámetros. Símbolo Significado :etiqueta Nombre de una etiqueta. %número Parámetro del fichero por lotes. %variable% Variable del entorno. %%variable Variable de la orden For. ECHO Indica si está activado o desactivado el eco de las órdenes. ECHO ON Activa el eco ECHO OFF Desactiva el eco ECHO mensaje Visualiza un mensaje en pantalla. ECHO. Visualiza una línea en blanco en pantalla. Página 2 de 11Curso de MS-DOS Capítulo 10
  19. 19. 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: Índice · Arriba · Publicaciones · Saulo.Net 10-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 Ejercicios de autocomprobación 1. Indique la diferencia entre las siguientes órdenes: ECHO Ficheros por lotes REM Ficheros por lotes Índice · Arriba · Publicaciones · Saulo.Net 10-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 ms-dos admiten parámetros, también será posible gestionar parámetros en los ficheros por lotes. Página 3 de 11Curso de MS-DOS Capítulo 10
  20. 20. 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 b: copy %2 b: copy %3 b: Ejecución: A:>copiab juan.bak alberto.bmp marta.dbf Índice · Arriba · Publicaciones · Saulo.Net 10-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 disquete en la unidad B: pause Si no deseamos ver el mensaje de Pause, podemos redireccionarlo al dispositivo ficticio NUL. echo Inserte un disquete en B: y pulse Enter pause >nul Ejercicios de autocomprobación 2. ¿Qué hace la orden PAUSE >NUL ? 3. Escriba un fichero de procesamiento por lotes que pida un disco en la unidad A: antes de mostrar su directorio raíz. Página 4 de 11Curso de MS-DOS Capítulo 10
  21. 21. Índice · Arriba · Publicaciones · Saulo.Net 10-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: Versión MS-DOS 6.22 En este ejemplo, la orden Vol nunca se ejecutará: al llegar la orden GOTO FINAL, ms-dos 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. Ejercicios de autocomprobación 4. ¿Qué hace el siguiente fichero por lotes? @echo off dir c: goto etiqueta2 :etiqueta1 ver :etiqueta2 Página 5 de 11Curso de MS-DOS Capítulo 10
  22. 22. Índice · Arriba · Publicaciones · Saulo.Net 10-8 La orden IF Desvía condicionalmente el proceso de ejecución de un fichero por lotes. Admite 6 sintaxis diferentes: 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 BORRA2.BAT hemos supuesto que el usuario siempre introduce dos parámetros. Sin embargo, se producirá un error si el usuario sólo introduce uno de ellos: la orden DEL %2 quedará transformada en DEL a secas y como Del no funciona sin parámetros, ms-dos mostrará una advertencia. Este problema se soluciona con lo siguiente: @echo off rem Programa: BORRA2B.BAT if "%1"=="" echo Debe introducir uno o dos ficheros como parámetros. if not "%1"=="" del %1 if not "%2"=="" del %2 La primera línea If avisa si no se ha introducido ningún parámetro. La segunda línea únicamente borrará el primer parámetro si se ha introducido. La tercera línea hace lo mismo pero con el segundo parámetro. IF ERRORLEVEL Cada orden externa de ms-dos genera un código de salida a su término indicando si pudo realizarse satisfactoriamente. Generalmente un código de salida 0 indica que no hubo ningún problema y un código de salida superior hace referencia a diferentes errores. IF EXIST fichero orden Si existe el fichero se ejecuta la orden. IF NOT EXIST fichero orden Si no existe el fichero se ejecuta la orden. IF cadena1==cadena2 orden Si ambas cadenas son iguales se ejecuta la orden. IF NOT cadena1==cadena2 orden Si ambas cadenas son diferentes se ejecuta la orden. IF ERRORLEVEL número 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. Página 6 de 11Curso de MS-DOS Capítulo 10
  23. 23. Muchos ficheros por lotes necesitan saber si la orden anterior cumplió su cometido correctamente: para ello utilizan la orden If errorlevel. Es muy importante recordar que la orden se ejecutará si el código de salida es igual o superior al especificado detrás de ERRORLEVEL. A modo de ejemplo tenemos a continuación los códigos de salida de Xcopy: Vamos a crear un fichero por lotes para copiar los ficheros de la unidad A: a la B: e informe del resultado de la copia. @echo off rem Programa: COPIA-AB.BAT xcopy a: b: if errorlevel 1 goto Error if errorlevel 0 echo ¡La copia fue correcta! goto Final :Error echo Se produjo un error durante la copia :Final En primer lugar, Xcopy intenta realizar la copia de ficheros y devolverá un código de salida. Si se ha producido algún error el código será 1 o superior y entonces, el programa se desvía hasta la etiqueta :Error, muestra el mensaje y finaliza. Si la copia fue satisfactoria, el código de salida es 0. La segunda línea If mostrará el mensaje de éxito, saltando después a la etiqueta :Final y como no hay más líneas, termina el proceso. En muchas ocasiones puede ser fuente de complicaciones que If errorlevel número se cumpla si el número es igual o mayor. Para cumplirse exclusivamente si el código de salida es 5 -por ejemplo- podemos usar lo siguiente: if errorlevel 5 if not errorlevel 6 dir Esta compleja línea se traduce así: «Si el código de salida es 5 o superior pero inferior a 6 ejecutar Dir», es decir, si el código es 5 ejecutar Dir. Índice · Arriba · Publicaciones · Saulo.Net 10-9 La orden CHOICE Permite escoger una opción entre varias y, dependiendo de la opción elegida, devuelve un código de salida. Su sintaxis es: CHOICE [mensaje] [/C:opciones] [/N] [/S] [/T:opción,segundos] Código Significado 0 Los ficheros fueron copiados sin error. 1 No se encontraron ficheros para copiar. 2 El usuario presionó Ctrl+Pausa para suspender el proceso de Xcopy. 4 Ocurrió un error de inicio. No hay suficiente memoria o espacio en el disco, se introdujo un nombre de unidad no válida o se utilizó una sintaxis incorrecta en la línea de órdenes. 5 Ocurrió un error de escritura de disco. /C:opciones Especifica las opciones posibles. Si el usuario pulsa la primera de las opciones, Choice devolverá un código de salida 1; si pulsa la segunda opción, Choice devuelve el código 2 y así sucesivamente. Si no se especifica este parámetro se asumen las opciones por defecto (SN). /N No muestra las opciones admitidas detrás del mensaje. /S Hace distinción entre mayúsculas y minúsculas. Si no se especifica este parámetro se toman como la misma opción. /T:opción,segs Toma la opción indicada si no se pulsa ninguna otra tecla en los segundos especificados. Página 7 de 11Curso de MS-DOS Capítulo 10
  24. 24. El programa DEMO.BAT podemos mejorarlo sensiblemente si cambiamos las órdenes Pause por órdenes Choice. @echo off rem Programa: DEMOB.BAT echo ******************************************** echo ** Este programa copia todos los ficheros ** echo ** de la unidad A: al directorio actual ** echo ******************************************** choice ¿Desea continuar? if errorlevel 2 goto Final :Proceso copy a: . choice Para continuar con otro disquete pulse C y para finalizar, F /C:FC if errorlevel 2 goto proceso :Final En la primera orden Choice se toman las opciones por defecto S y N. `S' corresponde a un código de salida 1 y `N' a un código 2. En la segunda orden Choice se toman las opciones F y C. `F' corresponde a un código 1 y `C' a un código 2. Con la orden Choice y de una forma muy sencilla podemos crear menús con diferentes opciones: @echo off rem Programa: UTIL.BAT :Menu cls echo UTILIDADES DE MS-DOS echo -------------------- echo. echo A. Anti-Virus echo B. Backup echo D. Defragmentar echo E. Editor echo S. Salir echo. choice ¿Qué utilidad desea comenzar? /c:abdes /n /t:s,15 if errorlevel 5 goto Salir if errorlevel 4 goto Editor if errorlevel 3 goto Defrag if errorlevel 2 goto Backup if errorlevel 1 goto Anti if errorlevel 0 goto Menu :Anti MSAV goto Menu :Backup MSBACKUP goto Menu :Defrag DEFRAG goto Menu :Editor EDIT goto Menu :Salir echo. Observe la orden Choice: el modificador /C indica las opciones admitidas. Si se pulsa la `A' se generará un código de salida 1 y así sucesivamente hasta la `S' que corresponde a un código 5. Gracias al modificador /N Choice no muestra las teclas admitidas detrás del mensaje. El modificador /T toma como opción por defecto la `S' si pasan 15 segundos sin pulsar ninguna tecla. Observe, asimismo, cómo se ha comenzado en las líneas If por el errorlevel más alto: así se evitan conflictos. El código de salida 0 se obtiene si el usuario responde con Ctrl+Pausa al mensaje de Choice. mensaje Contiene el mensaje mostrado al usuario pidiendo que introduzca una de las opciones admitidas. Página 8 de 11Curso de MS-DOS Capítulo 10
  25. 25. Ejercicios de autocomprobación 5. Escriba un fichero de procesamiento por lotes para borrar el fichero introducido como parámetro. El programa debe comprobar previamente si se ha introducido algún parámetro y si el fichero existe. 6. ¿Para qué devuelven un código de salida las órdenes externas? 7. Escriba un fichero por lotes que nos pregunte si deseamos ver el directorio de A: o el de B: Índice · Arriba · Publicaciones · Saulo.Net 10-10 Las variables del entorno Se puede recuperar el valor de una determinada variable del entorno introduciendo ésta entre signos de porcentajes (%NombreVariable%). Ejemplo: Echo El valor de la variable PATH es %PATH% Echo El valor de la variable PROMPT es %PROMPT% El siguiente ejemplo da el valor C:DOS a la variable TEMP si no ha sido definida: if "%TEMP%"=="" set TEMP=C:DOS Índice · Arriba · Publicaciones · Saulo.Net 10-11 Otras órdenes Existen otras tres órdenes más diseñadas para su uso en ficheros por lotes. Como estas órdenes tienen un menor uso, se exponen resumidamente a continuación. La orden FOR Su sintaxis es: FOR %%variable IN (conjunto) DO orden Esta orden repite la orden especificada para cada valor del conjunto. Conjunto es una lista de nombres de ficheros. En ella, se pueden establecer varios nombres separados por espacios y también, utilizar comodines. Ejemplo for %%I in (juan.txt maria.txt *.dat) do type %%i La variable %%I va tomando cada uno de los valores del conjunto y se los envía a la orden Type. En este ejemplo se visualizan en pantalla los ficheros JUAN.TXT, MARIA.TXT y todos los que tengan extensión DAT. La orden SHIFT Se traduce al español por desplazamiento. Mueve el valor de cada parámetro a la variable anterior. Por ejemplo, si existen 3 parámetros (%1, %2 y %3) y se utiliza la orden Shift, el valor de %1 lo tomará %0, el valor de %2 lo tomará %1 y el valor de %3 lo tomará %2. Programa: Página 9 de 11Curso de MS-DOS Capítulo 10
  26. 26. @echo off rem Programa: DEMO2.BAT echo El parámetro 1 es %1 shift echo El parámetro 2 es %1 shift echo El parámetro 3 es %1 Ejecución: C:BATH>demo2 juan maria alberto El parámetro 1 es juan El parámetro 2 es maria El parámetro 3 es alberto C:BATH> La orden CALL Se utiliza para llamar a un fichero por lotes desde el interior de otro. Su sintaxis es: CALL fichero [ParámetrosDelFichero] En el siguiente ejemplo, el fichero PRG1.BAT llama a PRG2.BAT. Cuando la ejecución de PRG2.BAT termina, continua PRG1.BAT en la siguiente línea a Call. Programa PRG1.BAT: @echo off echo línea 1 call prg2.bat echo línea 4 echo línea 5 Programa PRG2.BAT: @echo off echo línea 2 echo línea 3 Ejecución: C:BATH>prg1 línea 1 línea 2 línea 3 línea 4 línea 5 C:BATH> Índice · Arriba · Publicaciones · Saulo.Net Clave de los ejercicios de autocomprobación 1. La línea ECHO muestra el mensaje "Ficheros por lotes" en pantalla y la línea REM es ignorada al funcionar el programa. 2. Espera la pulsación de una tecla. Como la salida de Pause está redireccionada al dispositivo nulo, no se mostrará ningún mensaje en la pantalla. 3. @echo off Echo Introduzca un disquete en la unidad A: Pause Página 10 de 11Curso de MS-DOS Capítulo 10
  27. 27. dir a: 4. Muestra el directorio raíz de la unidad C: y luego la versión del sistema operativo. Como el nombre de las etiquetas sólo admite ocho caracteres significativos la orden GOTO ETIQUETA2 llevará a la primera etiqueta empezada por ETIQUETA, en este caso ETIQUETA1. 5. @echo off if "%1"=="" goto Error1 if not exist %1 goto Error2 del %1 echo El fichero %1 se ha borrado goto Final :Error1 echo Debe especificar un fichero goto Final :Error2 echo El fichero %1 no existe :Final echo. 6. Las órdenes externas devuelven un código de salida para ser utilizado en los ficheros por lotes. Posteriormente se podrá evaluar este código gracias a la orden If errorlevel. 7. @echo off echo A. Ver el directorio de A: echo B. Ver el directorio de B: choice Elija opción /c:ab if errorlevel 1 if not errorlevel 2 dir a: if errorlevel 2 if not errorlevel 3 dir b: Índice · Arriba · Publicaciones · Saulo.Net Puesta en práctica Además de los ejemplos expuestos en este capítulo, en el siguiente encontrará una selección de varios ficheros por lotes. Se sugiere comentar cada uno de los ficheros y, una vez comprendidos, introducirlos en el ordenador. Índice · Arriba · Capítulo 11 · Publicaciones · Saulo.Net Página 11 de 11Curso de MS-DOS Capítulo 10
  28. 28. Capítulo 11 Ficheros por lotes (II) Índice · Capítulo 10 · Capítulo 12 · Publicaciones · Saulo.Net 11-1 Introducción Este capítulo está dedicado a la explicación de varios ejemplos de ficheros por lotes. Este es un capítulo avanzado, pues comprende prácticamente toda la materia estudiada durante el curso. Posiblemente necesite volver atrás en más de una ocasión. Normalmente los ficheros por lotes comprenden una serie de tareas que son útiles desde cualquier directorio. Lo más normal es crear un directorio dedicado exclusivamente a los ficheros por lotes: en los ejemplos explicados se asume el directorio C:BATH. Además, debemos introducir el directorio elegido en la ruta de acceso (variable PATH). De esta forma podemos ejecutar cualquier fichero por lotes desde cualquier directorio del ordenador. Como las demostraciones estudiadas a lo largo del capítulo son relativamente largas, se recomienda utilizar el Editor del ms-dos para la creación y su posterior edición. El primer fichero objeto de estudio es el rey de los ficheros por lotes: el AUTOEXEC.BAT. Seguidamente se estudian sus diferencias con el resto del conjunto de ficheros por lotes y se repasan las órdenes más usuales. Índice · Subir · Publicaciones · Saulo.Net 11-2 El fichero AUTOEXEC.BAT Como cualquier fichero por lotes, el AUTOEXEC.BAT posee las mismas características que los demás: lleva extensión BAT, contiene órdenes, se puede ejecutar introduciendo su nombre después del símbolo del sistema y se interrumpe su funcionamiento si pulsamos Ctrl+Pausa. Además se añaden tres características exclusivas: Tiene un nombre y extensión obligatorias: siempre debe llamarse AUTOEXEC.BAT Se ejecuta cada vez que arranca el ordenador. Si no existe, ms-dos hace funcionar a tres órdenes en su lugar: Date, Time y Ver. Debe residir en el directorio raíz de la unidad de arranque. Por ejemplo, si arrancamos con el disco duro _es lo más normal_ se buscará el fichero AUTOEXEC.BAT en su directorio raíz y luego, se ejecutará. En el capítulo destinado a las variables del entorno, advertimos que estas variables se guardan en la memoria y se pierden al apagar el ordenador. La única forma de tener unas variables del entorno fijas (PATH, PROMPT, TEMP...) es definiéndolas en cada arranque del ordenador. El fichero AUTOEXEC.BAT contiene además órdenes para configurar el idioma del usuario. Página 1 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  29. 29. Por último, suele contener unas órdenes cuya misión es cargar programas residentes en memoria. Estos programas quedarán almacenados en memoria hasta el apagado del ordenador. Se suelen introducir como programas residentes un anti-virus, el programa Doskey y cualquier otro. Por tanto, el fichero AUTOEXEC.BAT debe contener estos tres módulos indispensables: Órdenes para configurar las variables del entorno (Set, Path y Prompt). Órdenes para seleccionar el idioma. Órdenes para instalar programas residentes. Ejemplo de un fichero AUTOEXEC.BAT @ECHO OFF SET PROMPT=$P$G SET PATH=C:DOS;C:BATH;C:WINDOWS SET TEMP=C:DOSTEMP SET DIRCMD=/O:GEN MODE CON CODEPAGE PREPARE=((850) C:DOSEGA.CPI) MODE CON CODEPAGE SELECT=850 C:DOSKEYB SP,,C:DOSKEYBOARD.SYS C:DOSSMARTDRV.EXE C:DOSDRIVERSMOUSE.COM C:DOSSHARE.EXE /L:500 /F:5100 C:DOSDOSKEY /INSERT C:DOSVSAFE El primer grupo de órdenes contiene la definición de variables del entorno. Recuerde que las variables PATH y PROMPT se pueden definir con la orden Set o con unas órdenes diseñadas al efecto llamadas igualmente Path y Prompt. El segundo grupo de órdenes definen el español como idioma. El tercer grupo de órdenes cargan en memoria programas residentes. Aunque suele ser suficiente poner el nombre de la orden a secas, es habitual añadir la trayectoria del fichero delante de su nombre y la extensión detrás: de esta forma no hay confusión posible. A continuación se colocan los parámetros. Orden Significado SET PROMPT Define el símbolo del sistema. SET PATH Define la vía de acceso. SET TEMP Define el directorio para ficheros temporales. SET DIRCMD Define cómo queremos ver el directorio (ordenación, formato...). Página 2 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  30. 30. Índice · Subir · Publicaciones · Saulo.Net 11-3 Ejemplo primero: BUSCAR.BAT Como estudiamos en el Capítulo 6, encontramos una aplicación de la orden Dir en la búsqueda de ficheros por el disco duro. Ocurre a menudo que creamos un fichero pero luego no lo encontramos en el directorio esperado. Generalmente, el fichero se encontrará almacenado en otro directorio diferente. Podemos utilizar el siguiente programa para buscar un fichero por todo el disco duro. Programa: @echo off rem Autor: Saulo Barajas rem Fecha: Agosto de 1995 rem Programa: BUSCAR.BAT rem Cometido: Buscar el fichero o grupo de ficheros rem especificado como parámetro en la unidad actual. echo. dir %1 /b /s /p echo. Ejecución: C:BATH>buscar perdido.*↵ C:PERDIDO.TXT C:PRUEBAPERDIDO.DBF C:TRABAJOSPERDIDO.TXT C:BATH> Lo verdaderamente importante en este fichero es la orden Dir. El utilizar el símbolo de directorio raíz `' antes del parámetro es para comenzar la búsqueda desde el directorio raíz a todos los subdirectorios. De esta forma no hará falta cambiar al raíz para hacer funcionar al programa. Orden Significado SMARTDRV Carga un programa de caché de disco (ver Capítulo 13). MOUSE Carga el controlador del ratón (se suministra al adquirir un ratón). SHARE Controla la compartición de ficheros. Es requerido por algunas aplicaciones. DOSKEY Instala el editor de órdenes y macros (ver Capítulo 12). VSAFE Carga el anti-virus residente de ms-dos (ver Capítulo 17). Página 3 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  31. 31. El parámetro %1 se sustituirá automáticamente por el fichero o grupo de ficheros a buscar. El parámetro /b presenta el resultado de la búsqueda en formato sencillo. El parámetro /s permite buscar el fichero en todos los subdirectorios y, finalmente, el parámetro /p muestra por pantallas el resultado de la búsqueda. En el ejemplo se han buscado todos los ficheros con nombre PERDIDO y se han encontrado tres. Índice · Subir · Publicaciones · Saulo.Net 11-4 Ejemplo segundo: RELOJ.BAT Permite mostrar la fecha y la hora del sistema. Este programa se apoya en las órdenes Date y Time de ms-dos y utiliza lo estudiado en el Capítulo 8 para filtrar la entrada y la salida de las órdenes. Suponga que sólo quiere ver la hora. Si ejecuta la orden Time, deberá pulsar Enter para no cambiar la hora actual. La hora actual es 14:10:51,92 Escriba la nueva hora:↵ Este problema se soluciona si redirigimos la entrada de la orden desde un fichero, llamado RELOJ.TXT que contiene únicamente 2 bytes: un retorno de carro (Enter) y un código de fin de fichero (Ctrl+Z). Como la salida de la orden contiene dos líneas y sólo nos interesa la primera, podemos filtrar la salida con la orden Find. Para funcionar el fichero RELOJ.BAT, se necesita crear el fichero RELOJ.TXT de la siguiente forma: escribimos COPY CON RELOJ.TXT, pulsamos Enter dos veces, pulsamos Ctrl+Z y pulsamos finalmente Enter. C:BATH>copy con reloj.txt↵ ↵ ^Z↵ 1 archivo(s) copiado(s) C:BATH> A continuación tiene el código del programa y un ejemplo de su ejecución: Programa: @echo off rem Autor: Saulo Barajas rem Fecha: Agosto de 1995 rem Programa: RELOJ.BAT rem Cometido: Mostrar la fecha y la hora actual en pantalla if not exist c:bathreloj.txt goto Error date <c:bathreloj.txt |find "actual" Página 4 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  32. 32. time <c:bathreloj.txt |find "actual" goto Final: :Error echo ¡Falta el fichero RELOJ.TXT! :Final echo. Ejecución: C:BATH>reloj↵ La fecha actual es Mar 15/08/1995 La hora actual es 14:15:09,58 C:BATH> En primer lugar se comprueba la existencia del fichero RELOJ.TXT en el directorio C:BATH. Si el directorio en el que reside es otro, debemos ajustar las órdenes convenientemente. Si el fichero RELOJ.TXT no existe, el programa no funcionará correctamente y, con el fin de evitarlo, se muestra un aviso y termina. Si el fichero existe, se ejecutan las órdenes Date y Time. El operador `<' hace que la entrada de la orden sea el fichero RELOJ.TXT y el filtro Find hace aparecer la línea que contiene la palabra actual. Índice · Subir · Publicaciones · Saulo.Net 11-5 Ejemplo tercero: PROGRAMA.BAT En muchas ocasiones, cuando un usuario recibe una aplicación desconocida, se ve obligado a buscar el fichero ejecutable que haga funcionar la aplicación. El siguiente fichero por lotes busca todos los ficheros ejecutables (aquellos con extensión COM, EXE o BAT) y los visualiza en pantalla. Programa: @echo off rem Autor: Saulo Barajas rem Fecha: Agosto de 1995 rem Programa: PROGRAMA.BAT rem Cometido: Visualizar ordenados y con pausa en cada rem pantalla todos los ficheros ejecutables del rem directorio actual. set fichtemp=%temp%temporal.txt if exist *.com dir *.com /b >%fichtemp% if exist *.exe dir *.exe /b >>%fichtemp% if exist *.bat dir *.bat /b >>%fichtemp% type %fichtemp% |sort |more del %fichtemp% Página 5 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  33. 33. set fichtemp= echo. Ejecución: C:WP60>programa↵ CV.EXE INSTALL.BAT MCV.EXE QFIGENES.EXE VAPINUL.COM VMP.COM WPINFO.EXE WP.COM WP.EXE C:WP60> Este fichero por lotes necesita crear un fichero temporal para ir añadiéndole todos los ficheros con extensiones COM, EXE o BAT. Este fichero temporal debe ser creado en el directorio destinado a este fin (variable TEMP). Por tanto se crea otra variable llamada FICHTEMP que contiene el nombre del fichero (TEMPORAL.TXT) y su trayectoria. Si no se utilizase el directorio definido en la variable TEMP para crear el fichero TEMPORAL, podría darse el caso de intentar escribir en un disquete protegido contra escritura y no poder completarse la función del programa. La primera línea If crea el fichero temporal con el nombre de los ficheros con extensión COM. La segunda línea If añade al fichero temporal, aquellos ficheros con extensión EXE y la tercera línea If hace lo mismo con los ficheros BAT. La orden Type muestra todos los programas (ahora grabados en el fichero TEMPORAL.TXT) ordenados y por pantallas. Finalmente, la orden Del borra el fichero temporal creado y la orden Set elimina la variable del entorno creada. Índice · Subir · Publicaciones · Saulo.Net 11-6 Ejemplo cuarto: BORRAR.BAT Este fichero por lotes, desplaza un fichero o grupo de ficheros a un directorio llamado C:BASURA. De esta forma, si luego necesitamos recuperar un fichero borrado, sólo hará falta buscarlo en el directorio C:BASURA. Sin embargo, esto tiene un problema: el directorio C:BASURA crecerá y crecerá de tamaño llenando nuestro disco duro de ficheros inservibles. Por tanto, es necesario eliminar periódicamente el contenido de este directorio. Si le parece interesante la idea consulte la orden Undelete. Undelete detecta la orden Del de ms-dos y mueve, igualmente, los ficheros a un directorio. Lo más importante de Undelete es la posibilidad de eliminar (realmente) los Página 6 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  34. 34. ficheros más antiguos almacenados de una forma automática. Programa: @echo off rem Autor: Saulo Barajas rem Fecha: Agosto de 1995 rem Programa: BORRAR.BAT rem Cometido: Mueve el fichero o grupo de ficheros rem especificados a un directorio llamado rem C:BASURA. Si no existe, lo crea. if "%1"=="" goto Error if not exist %1 goto Error xcopy %1 c:basura >nul if errorlevel 1 goto Error del %1 echo A continuación se recuerda el estado del directorio C:BASURA DIR C:BASURA |FIND "archivo(s)" goto Final :Error echo ¡No se pudo borrar %1! :Final echo. Ejecución: C:PRUEBA>borrar *.ini↵ A continuación se recuerda el estado del directorio C:BASURA 5 archivo(s) 27.238 bytes C:PRUEBA> La primera orden If detecta si no se ha introducido ningún parámetro, produciendo un aviso en este caso. La segunda orden If comprueba que el fichero para borrar exista, si no es así dará un mensaje de error. La orden Xcopy mueve el fichero o ficheros especificados como parámetros al directorio C:BASURA. La barra inclinada invertida detrás de BASURA se emplea para informar a Xcopy que BASURA es un directorio y no un fichero. Si el directorio no existe, Xcopy sabrá que es un directorio y lo creará automáticamente. La salida de la orden se ha redireccionado al dispositivo ficticio NUL. De esta forma, no aparecerá ningún mensaje producido por la orden en la pantalla. La siguiente línea If comprueba el código de salida. Si se ha producido un error en la copia de los ficheros, los ficheros no se borrarán. Esto es una medida de seguridad para evitar la desaparición definitiva de los ficheros. Página 7 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  35. 35. La orden Del borra los ficheros del directorio actual. Ya hemos mencionado el problema de este fichero por lotes. Como solución, se informa al usuario del número de ficheros y los bytes ocupados por todos ellos en el directorio C:BASURA. De esta forma el usuario sabrá si debe borrar con la orden Del los ficheros del directorio BASURA. Índice · Subir · Publicaciones · Saulo.Net 11-7 Ejemplo quinto: COPIADIR.BAT Este programa se basa en el método para copiar un directorio que no cabe en un único disquete, en varios; explicado en el apartado 6-3. Programa: @echo off rem Autor: Saulo Barajas rem Fecha: Agosto de 1995 echo Este programa copia todos los ficheros del echo directorio actual a la unidad A: echo (si no cabe en un sólo disquete, se pedirán más) if not exist *.* goto Error attrib +a *.* :Proceso echo. echo ** Inserte un nuevo disquete en A: Pulse Enter para proseguir pause >nul xcopy *.* a: /m if errorlevel 5 goto Error if errorlevel 4 goto Proceso if errorlevel 1 goto Error if errorlevel 0 goto FinCopia echo. echo ¡No se pudo realizar la copia! goto final :FinCopia echo. echo ¡El proceso de copia se completó con éxito! :Final echo. La primera línea If detecta si el directorio actual está vacío produciendo un error. La orden Attrib enciende el bit de archivar a todos los ficheros del directorio actual. Página 8 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  36. 36. Seguidamente, COPIADIR.BAT pide un primer disquete en la unidad A:, luego comienza la copia de todos los ficheros a la unidad A:. El parámetro /m desactiva el bit de archivar a los ficheros copiados. Las siguientes líneas If comprueban el resultado de la orden. Las posibilidades son las siguientes: a) No hay suficiente espacio en el disco para copiar todos los ficheros. En este caso, se pide otro disquete y se reanuda la copia donde se quedó; b) Se presionó Ctrl+Pausa u ocurrió un error de escritura en el disco. Se produce un mensaje y finaliza; c) La copia fue correcta. Esto significa que todos los ficheros han podido copiarse en uno o más disquetes y por tanto, se ha cumplido el objetivo del programa. Índice · Subir · Capítulo 12 · Publicaciones · Saulo.Net Página 9 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
  37. 37. Capítulo 12 El programa DOSKEY Índice · Capítulo 11 · Capítulo 13 · Publicaciones · Saulo.Net 12-1 Introducción Doskey es un programa residente en memoria diseñado para facilitarnos la edición de anteriores líneas de órdenes y la introducción de órdenes frecuentemente utilizadas. Doskey guarda en memoria las últimas órdenes tecleadas y permite acceder a ellas de una forma sencilla. Además, es capaz de crear macros. Las macros guardan un paralelismo con los ficheros por lotes pero son más sencillas y rápidas. Este capítulo se divide en tres partes: edición de órdenes sin Doskey, edición de órdenes con Doskey y creación de macros. El presente capítulo es el último de esta primera parte del libro. Al final del capítulo podrá encontrar ejercicios de todo el temario estudiado durante el curso. La segunda parte presenta una serie de capítulos prácticamente independientes entre ellos, que le otorgarán el grado de usuario avanzado de ms-dos. Índice · Arriba · Publicaciones · Saulo.Net 12-2 Edición de órdenes sin Doskey Si trabaja o piensa trabajar a menudo con ms-dos, le conviene conocer algunos trucos para ahorrarse pulsaciones de teclas. Recuerde que informática es sinónimo de velocidad. Vamos a denominar plantilla a una región de memoria que almacena la última línea de órdenes introducida. Repetición de la última orden La tecla F3 copia la plantilla a partir de la posición actual del cursor. Si la anterior orden fue: C:VARIOS>copy a: . podemos repetirla de nuevo si pulsamos F3 Página 1 de 7Curso de MS-DOS Capítulo 12
  38. 38. C:VARIOS>copy a: . Cambio de un carácter de la última orden La Flecha derecha hace aparecer los caracteres grabados en la plantilla uno a uno. Las teclas Flecha izquierda y Retroceso eliminan el último carácter de la línea actual. Si la última línea fue: C:VARIOS>copy a: . puede cambiar la letra `a' por la `b' de la siguiente forma: pulse la Flecha derecha cinco veces, luego escriba una `b' y pulse la Flecha derecha hasta el final. C:VARIOS>copy b: . Suprimir un carácter La tecla Supr elimina el carácter de la plantilla situado en la posición actual del cursor. Si la última orden fue la siguiente (incorrecta): C:>dir //p /w puede eliminar la barra inclinada repetida de la siguiente forma: utilice la Flecha derecha cinco veces, pulse Supr y luego continúe con la Flecha derecha hasta el final. C:>dir /p /w Insertar un carácter La tecla Insert permite introducir caracteres en la línea actual sin sobrescribir la plantilla. Si la última orden introducida fue C:>dir /w /p y deseamos introducir `*.exe' entre `dir' y `/w' debemos dar los siguientes pasos: pulsamos la Flecha derecha cuatro veces, presionamos Insert, escribimos `*.exe' y dejamos presionada la Flecha derecha hasta el final. Página 2 de 7Curso de MS-DOS Capítulo 12
  39. 39. C:>dir *.exe /w /p Puede que en muchas ocasiones prefiera repetir la nueva línea e ignorar lo explicado hasta el momento. Sin embargo, estos procedimientos resultan muy útiles al trabajar con líneas de órdenes largas y complejas. Índice · Arriba · Publicaciones · Saulo.Net 12-3 Edición de órdenes con Doskey El programa Doskey amplia las posibilidades de edición estándares del ms-dos. No sólo es capaz de recordar la última orden introducida, Doskey almacena una gran cantidad de ellas. Por defecto, Doskey reserva 512 bytes como almacén de últimas órdenes. Por término medio, esto significa un almacén para unas 50 órdenes. Para instalar el programa, escriba DOSKEY a continuación del símbolo del sistema. A partir de ese instante, Doskey permanecerá en la memoria del ordenador, facilitando las tareas de repetición y edición de anteriores órdenes. Recuperar una orden Existen tres procedimientos para recuperar una orden tecleada con anterioridad. Flecha arriba y Flecha abajo. En cada pulsación de la Flecha arriba aparecerá la orden anteriormente tecleada a la actual. Y en cada pulsación de Flecha abajo, la orden posterior. Pulsar la tecla F7 para ver una lista con todas las órdenes almacenadas en memoria y sus respectivos números. Luego, pulsamos F9 e indicamos el número de línea de órdenes a recuperar. Introducir los primeros caracteres de la orden y pulsar F8. Doskey mostrará la primera orden que empiece de esta forma. Para ver más, pulsamos repetidamente la tecla F8. Teclas de uso frecuente La siguiente tabla explica las teclas de uso frecuente reconocidas por Doskey. Teclas Utilidad Flecha arriba Muestra la orden anterior a la actual. Flecha abajo Muestra la orden posterior a la actual. RePag Muestra la primera orden almacenada. AvPag Muestra la última orden almacenada. Página 3 de 7Curso de MS-DOS Capítulo 12
  40. 40. Sintaxis Puede personalizar el funcionamiento de Doskey si utiliza sus parámetros al instalarlo. Su sintaxis es: DOSKEY [/REINSTALL] [/BUFSIZE=bytes] [/HISTORY] [/INSERT | /OVERSTRIKE] Flecha derecha Desplaza el cursor un carácter a la derecha. Flecha izquierda Desplaza el cursor un carácter a la izquierda (no borra). Ctrl+Flecha derecha Desplaza el cursor una palabra a la derecha. Ctrl+Flecha izquierda Desplaza el cursor una palabra a la izquierda. Inicio Desplaza el cursor al primer carácter de la línea. Fin Desplaza el cursor al último carácter de la línea. Esc Borra la línea actual Supr Borra el carácter situado en el lugar del cursor. Retroceso Borra el carácter situado a la izquierda del cursor. Ins Cambia el modo de edición (insertar-sobrescribir) F7 Muestra numeradas todas las órdenes almacenadas. F8 Busca en el almacén todas las órdenes cuyos primeros caracteres coincidan con los tecleados. F9 Pide el número de orden y la muestra en pantalla. Alt+F10 Elimina las macros definidas. Modificador Descripción /REINSTALL Instala una nueva copia del programa. Se emplea para cam-biar el tamaño del almacén sin reiniciar el ordenador. Utilice lo menos posible este parámetro, pues cada copia instalada ocupa memoria. /BUFSIZE=bytes Reserva los bytes especificados para guardar órdenes y macros. El valor por defecto es 512 y el mínimo 256. /HISTORY Muestra todas las órdenes almacenadas. /INSERT Establece el modo de insertar como modo por defecto. /OVERSTRIKE Establece el modo sobrescribir como modo por defecto. Si no se especifica ni el parámetro /INSERT ni /OVERSTRIKE se toma OVERSTRIKE. Página 4 de 7Curso de MS-DOS Capítulo 12
  41. 41. Índice · Arriba · Publicaciones · Saulo.Net 12-4 Creación de macros Una macro es un conjunto de una o más órdenes que se ejecutarán de manera automática. Son similares, por tanto, a los ficheros por lotes. Sin embargo, cada macro debe caber en una sola línea y además, se almacenan en la memoria con un nombre identificativo. Guardarse en la memoria lleva consigo una mayor rapidez de ejecución; pero también, una disminución de memoria libre y la pérdida de las macros al apagarse el ordenador. Para ejecutar una macro se introduce su nombre a continuación del símbolo del sistema seguido de los posibles parámetros que soporte. Nota: No se puede ejecutar una macro desde un fichero por lotes. Una vez que hemos instalado Doskey, utilizamos la siguiente sintaxis para trabajar con macros: DOSKEY [[NombreMacro=]valor] [/MACROS] El valor de una macro admite nombres de órdenes con sus respectivos parámetros y, además, unos caracteres especiales precedidos del signo dolar ($). Aplicaciones: Crear una macro para formatear rápidamente el disquete en A: C:>doskey rapid=format a: /q (Después de introducir esta macro, escribir `rapid' será equivalente a escribir `format a: /q') Crear una macro para dar un formato rápido al disquete especificado. Símbolo Descripción $1 a $9 Son los parámetros agregados detrás del nombre de la macro. Es similar a los símbolos %1 al %9 en los ficheros por lotes. $* Hace referencia a todos los parámetros agregados detrás de la macro. $T Separador de órdenes $G Operador > $G$G Operador >> $L Operador < $B Operador | Página 5 de 7Curso de MS-DOS Capítulo 12
  42. 42. C:>doskey rapid $1=format $1 /q Crear una macro para ver un fichero por pantallas. C:>doskey ver $1=more $L$1 Crear una macro para crear un directorio y entrar en él. C:>doskey mc $1=md $1$Tcd $1 Borrar una macro. C:>doskey mc= Ver todas las macros. C:>doskey /macros Crear un fichero con todas las macros. C:>doskey /macros >macros.txt Ejercicios de autocomprobación 1. ¿En qué ocasión no es conveniente instalar el programa Doskey? 2. Qué tecla repite la última orden introducida en cada caso: a) sin Doskey. b) con Doskey instalado. 3. ¿Qué tecla se pulsa para consultar el almacén de órdenes de Doskey? 4. Explique las diferencias entre una macro y un fichero por lotes. Índice · Arriba · Publicaciones · Saulo.Net Clave de los ejercicios de autocomprobación 1. Cuando el ordenador no disponga de mucha memoria. 2. a) F3 b) Flecha arriba Página 6 de 7Curso de MS-DOS Capítulo 12
  43. 43. 3. La tecla F7 4. El código de un fichero por lotes, como indica su nombre, se almacena en un fichero. Admite, por tanto, cualquier tamaño. En cambio, una macro solamente tiene una línea y su almacenamiento se realiza en memoria. Índice · Arriba · Publicaciones · Saulo.Net Puesta en práctica Introduzca en su fichero AUTOEXEC.BAT de su ordenador una línea de órdenes que instale el programa Doskey al arrancar su equipo. Utilice los parámetros necesarios para establecer el modo de insertar como modo por defecto y reserve 300 bytes para guardar órdenes y macros. Pautas para la resolución en el ordenador: C:>edit autoexec.bat En este momento aparece en pantalla un fichero similar al siguiente: @ECHO OFF SET PROMPT=$P$G SET PATH=C:DOS;C:TRABAJOSBATH SET TEMP=C:DOSTEMP SET DIRCMD=/O:GEN MODE CON CODEPAGE PREPARE=((850) C:DOSISO.CPI) MODE CON CODEPAGE SELECT=850 LH C:DOSKEYB SP,,C:DOSKEYBOARD.SYS C:DOSSMARTDRV.EXE 6000 2024 Añada la línea de órdenes: C:DOSDOSKEY /INSERT /BUFSIZE=300 Grabe las modificaciones con el comando "Guardar" del menú "Archivo". Abandone el Editor con el comando "Salir" del menú "Archivo". Reinicie el ordenador. Índice · Arriba · Capítulo 13 · Publicaciones · Saulo.Net Página 7 de 7Curso de MS-DOS Capítulo 12
  44. 44. Capítulo 13 La memoria Índice · Capítulo 12 · Capítulo 14 · Publicaciones · Saulo.Net 13-1 Introducción En este capítulo se explica uno de los temas más conflictivos entre los usuarios de ms-dos: la memoria del ordenador. Se ha dividido en dos partes claramente diferenciadas: explicación de los diferentes tipos de memoria y análisis de las órdenes de ms-dos relacionadas con la gestión de memoria. A efectos prácticos encontrará de utilidad las siguientes herramientas: SMARTDRV.EXE. Crea un caché de disco en memoria. De esta forma se ahorran accesos al disco duro y se acelera notablemente el rendimiento global del sistema. Aunque este programa es situado automáticamente en el AUTOEXEC al instalar ms-dos, aprenderá a configurarlo adecuadamente para su equipo. RAMDRIVE.SYS. Crea una unidad de disco RAM en memoria. Un disco RAM se comporta como cualquier otra unidad de disco, es decir, para referirnos a ella utilizamos una letra del alfabeto. Podemos crear directorios, ficheros, etc. Su ventaja es la impresionante velocidad al leer o escribir datos. Sin embargo, ocupa la siempre escasa memoria del ordenador y su contenido se pierde al desconectarlo. MEMMAKER. Optimiza la memoria del sistema. Su objetivo principal es liberar la mayor cantidad de memoria convencional. La razón es simple: todos los programas de aplicación basados en ms-dos utilizan esta memoria. Índice · Arriba · Publicaciones · Saulo.Net 13-2 Memoria ROM y memoria RAM La primera gran clasificación de la memoria de un ordenador la divide en ROM (Read Only Memory) y RAM (Random Acces Memory). Memoria ROM Es memoria no volátil de sólo lectura. No volátil. Su contenido no se pierde nunca, aún apagado el ordenador. De sólo lectura. El usuario no puede alterar el contenido de la ROM. En esta memoria se encuentran los programas que toman el control al encender el ordenador, realizan un chequeo del sistema y finalmente buscan un sistema operativo para ejecutarlo. Página 1 de 12Curso de MS-DOS Capítulo 13
  45. 45. Un elemento de suma importancia en el funcionamiento de un ordenador reside en la memoria ROM: la BIOS (Basic Input Output System: Sistema básico de entrada y salida). La ROM-BIOS engloba un conjunto de sencillas rutinas para gestionar la pantalla, teclado, discos... Como vemos, el sistema operativo junto con la BIOS es el encargado de desarrollar las operaciones más básicas del ordenador. Memoria RAM Es memoria volátil de lectura y escritura. Volátil. Su contenido se pierde al desconectar el ordenador. De lectura y escritura. Es una memoria de trabajo: el usuario lee y escribe en ella tantas veces como quiera. La memoria RAM es el elemento central en el funcionamiento de un ordenador. Internamente, toda la información del ordenador tiene paso obligado por la memoria RAM. Para ejecutar cualquier programa, éste debe copiarse previamente a la memoria. Por estas razones la memoria que nos interesa es la RAM: a partir de ahora utilizaremos el término memoria para referirnos a la memoria RAM. El siguiente gráfico representa el funcionamiento general de un ordenador: cualquier dato introducido por teclado se coloca en memoria. El microprocesador toma los datos de la memoria, los procesa y devuelve el resultado al mismo lugar. Posteriormente pueden ser almacenados en el disco o visualizados en pantalla. Índice · Arriba · Publicaciones · Saulo.Net 13-3 Tipos de memoria RAM Página 2 de 12Curso de MS-DOS Capítulo 13
  46. 46. Aunque toda la memoria es igual, según su lugar en el mapa de memoria adquiere diversos nombres. Cada programa necesita uno o varios tipos de memoria. Por esta razón debemos aprender a configurar el ordenador de acuerdo a los requerimientos de cada aplicación. Memoria convencional Comprende la porción entre 0K y 640K. Esta memoria es aprovechada sin problemas por la totalidad de órdenes del sistema y las aplicaciones. Debido a ciertas limitaciones del microprocesador y del propio ms-dos, otras zonas de memoria tienen un acceso mucho más difícil. Por tanto, todos los programas que admitan otro tipo de memoria, deben trasladarse para conseguir la mayor cantidad posible de memoria convencional. La zona entre 0K y 64K se denomina también memoria baja. Memoria superior Es la zona situada entre los 640K y los 1024K (1Mb). Esta memoria es aprovechada principalmente por el sistema. Como la memoria ROM es lenta, se suelen copiar a esta zona, las rutinas de la ROM-BIOS y así conseguir una velocidad global mucho mayor. También se utiliza para almacenar los caracteres impresos en la pantalla en cada momento. Sin embargo, los programadores del dos advirtieron que los datos del sistema no ocupan la totalidad de esta memoria. A partir de la versión 5.0 de ms-dos se pueden cargar controladores y programas residentes en los bloques libres de memoria superior. Controlador de dispositivo.— Programa que comunica el ms-dos con un dispositivo hardware (impresora, ratón, tarjeta de sonido...). Se suele instalar agregando una línea Device al fichero CONFIG.SYS o Devicehigh para instalarlo en memoria superior. Programa residente (TSR).— Programa que permanece en memoria después de ejecutarse. Para instalarlo en memoria superior se utiliza la orden Lh. Fichero CONFIG.SYS .— Es un fichero de texto ASCII que contiene una serie de órdenes especiales para configurar el ordenador (Ver Capítulo 18). Este fichero debe encontrarse en el directorio raíz de la unidad de arranque. Al cargarse el MS-DOS primero se ejecuta el CONFIG.SYS y luego el AUTOEXEC.BAT. Memoria alta Es la memoria comprendida entre 1024K y 1088K. Esta zona de apenas 64K se puede aprovechar para instalar el núcleo del ms-dos y ahorrar memoria convencional (Ver más adelante la orden Dos de CONFIG.SYS). Página 3 de 12Curso de MS-DOS Capítulo 13
  47. 47. Memoria expandida Es una técnica software utilizada para acceder a la memoria por encima de 1 Mb. Para emplear memoria expandida se precisa un administrador de memoria expandida. Como las aplicaciones sólo son capaces de acceder a la memoria inferior de 1Mb, el administrador se encarga de copiar, según se necesiten, los datos por encima de 1Mb a un marco de página de 64K situado en memoria superior. Como solamente se puede trabajar con 64K de información a la vez, es necesario copiar continuamente datos desde la memoria expandida (más de 1Mb) a la memoria superior y viceversa. Otra solución más rápida y eficiente es la llamada memoria extendida. Memoria extendida Es la memoria por encima de 1Mb. Para poder alcanzar esta región, el microprocesador debe trabajar en un modo llamado modo protegido. Aunque el ms-dos, no es capaz de operar en este modo, la mayoría de las aplicaciones sobre ms-dos emplean diversas técnicas para acceder a memoria extendida. Es necesario un administrador de memoria extendida como HIMEM.SYS para habilitar esta memoria. Nota: El usuario debe revisar los requerimientos de sus aplicaciones para comprobar si necesita memoria extendida o expandida. Índice · Arriba · Publicaciones · Saulo.Net 13-4 Configurar los tipos de memoria Habilitar memoria extendida y alta Para utilizar la memoria extendida y la alta es necesario introducir la siguiente línea en el fichero CONFIG.SYS: DEVICE=C:DOSHIMEM.SYS Esta línea debe colocarse delante de aquellas líneas de órdenes que precisen memoria extendida. Al instalar ms-dos, se coloca automáticamente la orden anterior en la primera línea del CONFIG.SYS. Habilitar memoria superior y expandida El controlador EMM386.EXE puede habilitar la memoria superior, la expandida o ambas. Este controlador precisa situarse en el fichero CONFIG.SYS detrás del controlador HIMEM.SYS. Página 4 de 12Curso de MS-DOS Capítulo 13
  48. 48. Las siguientes entradas preparan los bloques de memoria superior para su posterior uso: DEVICE=C:DOSEMM386.EXE NOEMS DOS=UMB La siguiente entrada toma memoria extendida para simular expandida cuando sea necesario. DEVICE=C:DOSEMM386.EXE Las siguientes entradas habilitan los bloques de memoria superior y toman memoria extendida para simular expandida cuando sea necesario. DEVICE=C:DOSEMM386.EXE RAM DOS=UMB Notas: No prepare memoria expandida a menos que una aplicación se lo indique. La memoria superior es recomendable habilitarla. La orden DOS de CONFIG.SYS Indica el lugar donde se cargará el núcleo del ms-dos y prepara la memoria superior para cargar controladores y programas residentes. Aplicaciones: Cargar ms-dos en memoria convencional y no habilitar memoria superior. Al ser la configuración por defecto, no se introduce ninguna orden. Cargar ms-dos en memoria alta y no habilitar memoria superior. Se introduce la siguiente línea en cualquier lugar del CONFIG.SYS: DOS=HIGH Cargar ms-dos en memoria convencional y habilitar memoria superior. DOS=UMB Cargar ms-dos en memoria alta y habilitar memoria superior. Esta posibilidad es la más recomendable. DOS=HIGH,UMB Ejemplos de configuración ¿Cuáles son las órdenes necesarias para un fichero CONFIG.SYS en cada caso? Página 5 de 12Curso de MS-DOS Capítulo 13
  49. 49. Cargar ms-dos en memoria convencional y habilitar memoria extendida. DEVICE=C:DOSHIMEM.SYS Cargar ms-dos en memoria alta y habilitar memoria superior. DEVICE=C:DOSHIMEM.SYS DEVICE=C:DOSEMM386.EXE NOEMS DOS=HIGH,UMB Cargar ms-dos en memoria alta y habilitar las memorias superior y expandida. DEVICE=C:DOSHIMEM.SYS DEVICE=C:DOSEMM386.EXE RAM DOS=HIGH,UMB Índice · Arriba · Publicaciones · Saulo.Net 13-5 Aprovechar la memoria superior Recordemos los tres requerimientos necesarios para preparar la memoria superior: 1. Instalar HIMEM.SYS 2. Instalar EMM386.EXE 3. Introducir una orden Dos que contenga el parámetro UMB. Instalar un controlador en memoria superior Los controladores se suelen configurar en el fichero CONFIG.SYS mediante órdenes Device. Sin embargo, Device los instala en memoria convencional. Para instalar un controlador en memoria superior debemos cambiar Device por Devicehigh. Ejemplo: DEVICEHIGH=C:DOSANSI.SYS Esta orden del CONFIG.SYS carga en memoria superior el controlador ANSI.SYS situado en el directorio C:DOS. Instalar un programa residente en memoria superior Generalmente los programas residentes en memoria se inician desde el fichero AUTOEXEC.BAT. Es habitual, además, especificar la trayectoria completa del programa para evitar confusiones. Por ejemplo: Página 6 de 12Curso de MS-DOS Capítulo 13
  50. 50. C:DOSDRIVERSMOUSE.COM Para cargar el programa anterior en la memoria superior, se utiliza la orden Lh. LH C:DOSDRIVERSMOUSE.COM Notas: Algunos controladores y programas residentes no admiten cargarse en memoria superior. Otros se cargan en memoria superior aunque no se utilicen las órdenes estudiadas (por ejemplo, SMARTDRV.EXE). Si se intenta cargar un controlador o programa en memoria superior pero está totalmente ocupada, se cargará de forma automática en memoria convencional. El mensaje "Archivo comprimido alterado" Es posible que si utiliza las órdenes Devicehigh y Lh llegue a liberar una gran cantidad de memoria convencional. Sin embargo, hay algunos programas que no pueden ejecutarse en memoria baja (de 0K a 64K) y producen el error "Archivo comprimido alterado". En estas ocasiones utilice la orden Loadfix para forzar la ejecución del programa por encima de los primeros 64K de memoria. Por ejemplo, para ejecutar el programa GAME.EXE introduzca lo siguiente: A:>loadfix game.exe Índice · Arriba · Publicaciones · Saulo.Net 13-6 La orden MEM Muestra la memoria usada y disponible en el ordenador. Su sintaxis es la siguiente: MEM [/C | /D | /F | /M programa] [/P] Utilice los modificadores /D y /P conjuntamente para conocer la cantidad de memoria utilizada por cada elemento instalado. De esta forma puede conocer con detalle la cantidad de memoria utilizada por cada programa y decidir si merece la pena tal gasto. Si desea optimizar su memoria adecuadamente pruebe con diversas configuraciones en los Parámetro Descripción /C Presenta una lista de aquellos programas cargados actualmente en memoria, indicando la memoria convencional y superior usada por cada uno. /D Informa acerca de los programas y controladores cargados actualmente en memoria. Proporciona amplia información técnica sobre cada uno. /F Ofrece una relación detallada de los bloques libres existentes en memoria convencional y superior. /M programa Muestra la memoria usada actualmente por un programa. /P Muestra la información de salida con pausa en cada pantalla. Puede usarse con cualquier modificador anterior. Página 7 de 12Curso de MS-DOS Capítulo 13
  51. 51. ficheros CONFIG.SYS y AUTOEXEC.BAT y luego, observe el gasto de memoria en cada caso con la orden Mem. La orden Mem sin parámetros ofrece un listado similar al siguiente: D:>mem Tipo de memoria Total = Usada + Libre ---------------- ------- ------- ------- Convencional 640K 28K 612K Superior 111K 82K 29K Reservada 384K 384K 0K Extendida (XMS) 7,057K 6,221K 836K ---------------- ------- ------- ------- Memoria total 8,192K 6,715K 1,477K Total menor 1 MB 751K 110K 641K Programa ejecutable más extenso 612K (626,880 bytes) Bloque memoria superior más extenso 13K (13,184 bytes) MS-DOS reside en el área de memoria alta. D:> En este ejemplo, observamos la distribución de memoria en un ordenador con 8Mb totales. El apartado "Memoria Superior" hace referencia, en realidad, a los bloques libres de memoria superior. Como sabemos la memoria superior es de 384K, pero en este caso solamente se pueden aprovechar como máximo 111K. El apartado "Memoria Reservada" aparece en otras versiones de ms-dos como "Adaptador RAM/ROM". Hace referencia a una zona de memoria empleada íntegramente por rutinas del sistema. Aquí se incluye la copia de la ROM-BIOS sobre memoria RAM. Finalmente, en "Extendida" se indica la restante memoria hasta completar los 8Mb del ordenador en cuestión. La línea "Total menor 1 MB" es la suma entre "Memoria Convencional" y "Memoria Superior". Las línea «Programa ejecutable más extenso» muestra la memoria convencional libre. Esta cifra es decisiva para conocer si un programa puede ejecutarse o no. Aunque un ordenador tenga 32Mb totales de memoria, si la convencional está totalmente ocupada, las aplicaciones darán un mensaje de memoria insuficiente. La última línea ofrece información sobre la memoria alta. Observe que no hay forma de conocer cuánta memoria alta hay ocupada y cuánta libre. Índice · Arriba · Publicaciones · Saulo.Net 13-7 Crear un caché de disco Un caché de disco es una zona de memoria intermedia entre el ordenador y los discos. Si trabaja con programas de aplicación, observará como ms-dos invierte cierto tiempo en leer o escribir en el disco duro. Página 8 de 12Curso de MS-DOS Capítulo 13
  52. 52. Un caché de disco de lectura evita que ms-dos lea dos veces en disco la misma información en intervalos cortos de tiempo. Un caché de disco de escritura retarda la grabación de datos en el disco cuando el ordenador tiene mucho trabajo y aprovecha los momentos de menor actividad para ir guardando los datos en el disco. Veámoslo más claro con un ejemplo. Un usuario trabaja frecuentemente en una base de datos y precisa consultar y cambiar continuamente unos mismos datos. Si el usuario necesita abrir un fichero, ms-dos lo busca el disco, lo copia en el caché y luego se lo ofrece a la aplicación. Si posteriormente, dicha persona necesita abrir el mismo fichero, ms-dos se ahorrará volver a leerlo en el disco porque ya se encuentra almacenado en memoria. Lógicamente, el mayor o menor rendimiento de un caché de disco viene definido por la cantidad de memoria destinada. Cuanta más memoria se dedique al caché, mayor número de informaciones del disco se podrán almacenar. SMARTDRV El programa proporcionado por ms-dos como caché de disco se denomina Smartdrv. Para instalarlo se utiliza la siguiente sintaxis: SMARTDRV [[unidad[+|-]]...] [TamañoCachéInicial [TamañoCachéWin]] [/E:TamañoElemento] [/B:TamañoBúfer] [/C] [/R] [/F] [/N] [/L] [/Q] [/S] Después de la instalación podemos usar desde el símbolo del sistema la siguiente sintaxis: SMARTDRV [[unidad[+|-]]...]] [/C] [/R] [/S] Parámetro Explicación unidad Es la letra de unidad la cual estamos definiendo. Después de la unidad puede estar el signo más (+), el signo menos (-) o ninguno de los dos. Incluyendo el signo más, se habilita el caché de lectura y escritura. Sin colocar ningún signo detrás de la unidad, se habilita el caché de lectura exclusivamente y colocando un signo menos se elimina el caché para la unidad. Si no especifica ninguna unidad, Smartdrv revisará sus unidades de disco y decidirá por usted. TamCachéIni Especifica el tamaño del caché en kilobytes. Si no utiliza este parámetro, Smartdrv lo establecerá automáticamente según nuestro equipo. Si su memoria es igual o superior a 4Mb seguramente le interesará aumentar el caché. Si una aplicación precisa memoria y el ordenador no dispone de ella, Smartdrv reduce el caché y cede memoria a la aplicación. Por consiguiente, podemos crear un gran caché con la seguridad que la memoria especificada queda a disposición de las aplicaciones. TamCachéWin Especifica el tamaño mínimo del caché al que las aplicaciones podrán reducirlo. Al utilizar Windows 3.1 ó 3.11, el caché se reduce automáticamente al mínimo. /E:TamElem Indica la cantidad de bytes que Smartdrv puede mover a la vez. Los valores válidos son 1024, 2048, 4096 y 8192. El valor por defecto es 8192. /B:TamBúfer Especifica el tamaño en bytes del búfer. El búfer es información adicional leída en cada acceso al disco. Si se pide leer 16384 bytes del disco duro y el búfer es de 8192 bytes, ms-dos leerá la Página 9 de 12Curso de MS-DOS Capítulo 13
  53. 53. Tenga precaución si utiliza el caché de escritura con alguna unidad. Antes de apagar el ordenador debe salir siempre al símbolo del sistema. Ahora bien, la forma de comportarse de Smartdrv depende de la versión de ms-dos instalada: Si tiene instalada la versión 6.0 le conviene utilizar SMARTDRV /C o pulsar Ctrl+Alt+Supr antes de apagar su ordenador. Si no sigue uno de estos procedimientos se arriesga a perder información no grabada al disco. Si tiene instalada la versión 6.2 o superior no es necesario seguir estos procedimientos (a no ser que utilice el modificador /N). Cuando el símbolo del sistema aparezca en pantalla es señal de haber escrito la totalidad de los datos al disco. Entonces, puede apagar el ordenador con total seguridad. Lo normal es instalar Smartdrv en el fichero AUTOEXEC.BAT. Para calcular el tamaño de caché ideal deberá realizar diversas pruebas en su sistema. En primer lugar, ejecute Smartdrv sin especificar el tamaño del caché y luego escriba SMARTDRV /S para averiguar cuáles son las cantidades por defecto sugeridas para su sistema. Al especificar el parámetro /S Smartdrv presenta los aciertos y los fallos de su caché. Se produce un acierto cuando se ahorra un acceso al disco y un fallo cuando la información no se encuentra en el caché y debe buscarse en el disco. Probando diversas configuraciones y utilizando el parámetro /S podrá calcular la configuración óptima para su ordenador. Ejemplos: La siguiente línea insertada en el autoexec.bat, crea un caché de disco de 2 Mb de memoria extendida. Como tamaño mínimo de caché se establece 1 Mb. Como no se especifican unidades, el caché para el disco duro será de lectura/escritura y para los disquetes de sólo lectura. C:DOSSMARTDRV.EXE 2048 1024 La siguiente línea insertada el autoexec.bat, crea un caché de disco en memoria extendida de 5 Mb. Como tamaño mínimo se establecen 2 Mb. Se habilita el caché de lectura en la unidad C: y se deshabilita el caché en la unidad D: C:DOSSMARTDRV.EXE C D- 5120 2048 información pedida y además los 8192 bytes situados detrás. El tamaño por defecto del búfer es 16384 bytes. /C Escribe toda la información del caché en el disco duro. /R Borra el contenido del caché existente y reinicia Smartdrv. /F Escribe los datos del caché antes de mostrar el símbolo del sistema. Este modificador sólo es válido para las versiones de Smartdrv suministradas con ms-dos 6.20 y 6.22. Este es el valor por defecto en estas versiones. /N Escribe los datos del caché durante la inactividad del sistema. Al regreso del símbolo del sistema, no todos los datos del caché han sido escritos. Este modificador sólo es válido para las versiones de ms- dos 6.20 y 6.22. Sin embargo, éste es el valor por defecto en la versión 6.0 de ms-dos. /L Carga Smartdrv en memoria convencional. Si no se especifica se carga en memoria superior. /V Muestra mensajes al iniciarse Smartdrv. /Q No muestra mensajes al iniciarse Smartdrv. Es la opción por defecto. /S Presenta el estado de Smartdrv. Página 10 de 12Curso de MS-DOS Capítulo 13
  54. 54. Índice · Arriba · Publicaciones · Saulo.Net 13-8 Crear un disco RAM Un disco RAM es una unidad "de disco" creada en memoria. Es una unidad. Es decir, se comporta como otra unidad de disquete o disco duro. Al crear un disco RAM se le adjudica la siguiente letra libre de unidad. A partir de ese momento se pueden crear y borrar ficheros de la forma habitual. En memoria. Al crearse en memoria lleva consigo una enorme rapidez al acceder a los datos contenidos. Pero también supone una disminución de la memoria libre. Recuerde además que la memoria RAM es volátil: los datos guardados deberán copiarse a un lugar permanente antes de apagar el ordenador. En realidad, un disco RAM responde a necesidades muy concretas: ordenadores con mucha memoria, programadores, etc. Como generalmente la memoria RAM es un bien escaso -y caro- puede resultar más interesante crear un gran caché de disco antes de un disco RAM. RAMDRIVE.SYS Para crear un disco RAM se utiliza el controlador RAMDRIVE.SYS. Debe instalarse en el CONFIG.SYS mediante una orden Device. Su sintaxis es: DEVICE=RAMDRIVE.SYS [TamañoDisco [TamañoSector [NúmEntradas]]] [/E|/A] Ejemplos: Para crear un disco RAM de 1Mb en memoria extendida, introduzca la siguiente línea en el fichero CONFIG.SYS. DEVICE=C:DOSRAMDRIVE.SYS 1024 /E Parámetro Explicación TamañoDisco Tamaño en Kb del disco RAM. El tamaño por defecto es de 64K y el máximo es 32767K (32Mb) si su ordenador tiene más de 32Mb de memoria. TamañoSector Tamaño del sector en bytes. Se admiten los valores de 128, 256 y 512 bytes. El tamaño por defecto es 512 bytes. NúmEntradas Número de entradas admitidas en el directorio raíz del disco RAM. Los valores válidos son de 2 hasta 1024. /E La unidad RAM se crea en memoria extendida. /A La unidad RAM se crea en memoria expandida. Página 11 de 12Curso de MS-DOS Capítulo 13
  55. 55. Para crear un disco RAM de 2Mb en memoria expandida y un número máximo de entradas en el directorio raíz de 20, introduzca la siguiente línea en el fichero CONFIG.SYS DEVICE=C:DOSRAMDRIVE.SYS 2048 512 20 /A Índice · Arriba · Publicaciones · Saulo.Net 13-9 El programa MEMMAKER Con los conocimientos adquiridos en este capítulo, usted ya es capaz de configurar la memoria de su ordenador de una forma adecuada. Sin embargo, puede optar por una configuración automática. En esencia, el programa Memmaker modifica los ficheros CONFIG.SYS y AUTOEXEC.BAT con objeto de liberar la mayor cantidad de memoria convencional. Para ello habilita la memoria superior y desplaza aquellos programas que lo permitan desde la memoria convencional a la superior. Para ejecutar el programa Memmaker, reinicie su ordenador y luego escriba MEMMAKER a continuación del símbolo del sistema. Este programa posee una completa ayuda en pantalla que le guiará en cada momento. Si desea más información pulse la tecla F1. Para completar la optimización de memoria, Memmaker deberá reiniciar su ordenador un par de veces. Finalmente, el programa presentará una pantalla indicando los cambios efectuados en memoria. Si por alguna razón, su ordenador se bloquea al arrancar el sistema operativo, debe conocer las siguientes teclas: F5. Si pulsa la tecla F5 mientras se presenta en pantalla el mensaje "Iniciando MS-DOS...", se le pedirá confirmación antes de ejecutar cada orden del CONFIG.SYS y del AUTOEXEC.BAT. Así, puede encontrar la orden que produce el bloqueo. F8. Si pulsa la tecla F8 mientras aparece el mensaje anterior, se omitirán los ficheros CONFIG.SYS y AUTOEXEC.BAT. Para restaurar los cambios efectuados por Memmaker, escriba lo siguiente a continuación del símbolo del sistema (si pulsa F8 al arrancar el ordenador, la vía de acceso no se define y debe cambiar antes al directorio C:DOS): C:>cd dos C:DOS>memmaker /undo Índice · Arriba · Capítulo 14 · Publicaciones · Saulo.Net Página 12 de 12Curso de MS-DOS Capítulo 13
  56. 56. Capítulo 14 Los discos del DOS Índice · Capítulo 13 · Capítulo 15 · Publicaciones · Saulo.Net 14-1 Introducción Este capítulo muestra cómo graba ms-dos la información en los discos. Explica detalladamente cada una de las divisiones físicas propias de todo disco (caras, pistas, sectores) así como la estructura lógica creada por ms-dos al formatear un disco (sector de arranque, FAT, directorio raíz, área de datos). Además, el capítulo es especialmente interesante por las órdenes Chkdsk y Scandisk. Estas órdenes de conocimiento imprescindible solucionan los errores producidos en un disco. Le conviene aprender a solucionar posibles problemas en su disco duro, pues se producen a menudo y pueden llegar a inutilizar el disco. Índice · Subir · Publicaciones · Saulo.Net 14-2 El sistema de disco El sistema de disco permite leer y grabar información de forma permanente. Esta formado por: El disco. Dispositivo magnético que almacena la información. La unidad de disco. Dispositivo mecánico que mueve las cabezas de lectura y escritura para acceder a toda la superfice del disco. La controladora de disco. Dispositivo electrónico que transforma las peticiones del sistema operativo en movimiento de la unidad de disco. En los discos duros, el disco y la unidad de disco forman un solo cuerpo cerrado herméticamente. No se puede utilizar más de un disco para la misma unidad de disco duro. Por el contrario, las unidades de disco flexible y compacto admiten diversos discos para la misma unidad. Las unidades de disco flexible se corresponden con los tipos de disquetes existentes: 5¼ DD, 5¼ HD, 3½ DD, 3½ HD y 3½ ED. Cada una de estas unidades admite el disquete indicado en su nombre y los inferiores de su mismo tamaño. Es decir, una disquetera de 3½ HD trabaja con discos de 3½ HD y 3½ DD. En cambio, una disquetera de 5¼ DD solamente admite discos de 5¼ DD. Disquetera.— Unidad de disco flexible. Disquete.— Disco flexible y su funda protectora. El siguiente cuadro muestra los discos admitidos por cada unidad de disco flexible: Página 1 de 14Curso de MS-DOS Capítulo 14
  57. 57. Las unidades de disco compacto se clasifican según su velocidad de acceso a una información (en milisegundos) y su velocidad de transferencia. La velocidad de transferencia de datos entre el disco compacto y el ordenador se rige por la siguiente tabla: Aunque es necesaria una controladora de disco para cada unidad, generalmente se comercializan tarjetas con varias controladoras integradas. El caso más común son tarjetas controladoras (se conectan a la placa base y unidades de disco) para dos unidades de disco flexible y dos unidades de disco duro. Sin embargo, la tendencia actual es incorporar las controladoras en la propia placa base. Las unidades de disco compacto se conectan como segundo disco duro o bien, a una tarjeta controladora propia. Índice · Subir · Publicaciones · Saulo.Net 14-3 El disco Es un soporte magnético que almacena información de forma permanente. La memoria, en cambio, es almacenamiento temporal. Los datos de la memoria se pierden al apagar el ordenador pero los datos de un disco quedan grabados aún sin corriente eléctrica. La superficie de un disco se puede dividir según su estructura física o lógica. Según su estructura física, se divide en: Caras o cabezas. Pistas o cilindros. Sectores. Según su estructura lógica, se divide en: Sector de arranque. FAT. Directorio raíz Área de datos. Tipo de unidad Velocidad de transferencia Simple velocidad 150 Kilobytes cada segundo. Doble velocidad 300 Kb/seg Triple velocidad 450 Kb/seg. Cuádruple velocidad 600 Kb/seg. Velocidad x 150 · x Kb/seg. Página 2 de 14Curso de MS-DOS Capítulo 14
  58. 58. Estructura física Cada tipo de disco posee una estructura propia, determinada por el fabricante. Los valores para los discos flexibles son fijos: Los valores de los discos duros dependen de su capacidad. Además, discos duros con igual capacidad y diferente fabricante pueden tener estructura física distinta. Las caras son las superficies del disco que almacenan datos. Los disquetes actuales poseen dos caras: la superior y la inferior. Para acceder a cada cara del disco, las unidades poseen una cabeza de lectura/escritura por cada una. Las pistas son anillos concéntricos en cada una de las caras. En los discos duros se denominan cilindros. A su vez, las pistas se subdividen en sectores. En la mayoría de los discos un sector almacena 512 bytes de información. Estructura lógica Cada sistema operativo crea una estructura lógica distinta en sus discos. En este caso, estudiamos la estructura lógica creada por ms-dos. El siguiente gráfico representa el desarrollo de un disco formateado, desde el primer sector hasta el último. 5 1/4 DD 5 1/4 DD 3 1/2 DD 3 1/2 HD 3 1/2 ED Caras 2 2 2 2 2 Pistas/Cara 40 80 80 80 160 Sectores/Pista 9 15 9 18 36 Página 3 de 14Curso de MS-DOS Capítulo 14
  59. 59. El propósito de esta estructura lógica es grabar y leer datos de la forma más eficiente posible. Cada una de las divisiones tiene un tamaño fijo según el disco y una misión específica para el sistema operativo. La siguiente tabla muestra el sector de comienzo y cantidad de sectores ocupados por cada área en los cuatro disquetes más extendidos. Índice · Subir · Publicaciones · Saulo.Net 14-4 Sector de arranque Ocupa el primer sector del disco. Este sector dispone de un pequeño programa que busca los ficheros ocultos IO.SYS y MSDOS.SYS en el directorio raíz. Si los encuentra, carga el sistema operativo y si no, muestra alguna variante del conocido mensaje "Error, de disco de sistema. Reemplace y presione cualquier tecla". Nota: Para crear un disquete de arranque utilice la orden Sys o también Format con el modificador /S. El sector de arranque de cada disco posee, además, las siguientes informaciones: Nombre y versión del sistema operativo. Tipo de disco. Número de caras del disco. Número de sectores por pista. 5 1/4 DD 5 1/4 DD 3 1/2 DD 3 1/2 HD Sector comienzo sector de arranque 0 0 0 0 Longitud sector de arranque 1 1 1 1 Sector comienzo primera FAT 1 1 1 1 Sector comienzo segunda FAT 3 8 6 10 Longitud ambas FAT 4 14 10 18 Sector comienzo directorio raíz 5 15 11 19 Longitud directorio raíz 7 14 7 14 Sector comienzo área de datos 12 29 18 33 Longitud área de datos 709 2372 1123 2848 Página 4 de 14Curso de MS-DOS Capítulo 14

×