curso de ms-dos

125
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 6 Curso de MS-DOS

Upload: jhonathan-fuentes

Post on 02-Jan-2016

140 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Curso De Ms-Dos

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

Page 2: Curso De Ms-Dos

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

Page 3: Curso De Ms-Dos

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

Page 4: Curso De Ms-Dos

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

Page 5: Curso De Ms-Dos

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

Page 6: Curso De Ms-Dos

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

Page 7: Curso De Ms-Dos

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 DispositivoEntrada 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

Page 8: Curso De Ms-Dos

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

Page 9: Curso De Ms-Dos

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

Page 10: Curso De Ms-Dos

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

Page 11: Curso De Ms-Dos

(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

Page 12: Curso De Ms-Dos

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

Page 13: Curso De Ms-Dos

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

Page 14: Curso De Ms-Dos

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

Page 15: Curso De Ms-Dos

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

Page 16: Curso De Ms-Dos

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

Page 17: Curso De Ms-Dos

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

Page 18: Curso De Ms-Dos

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 ecoECHO 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

Page 19: Curso De Ms-Dos

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

Page 20: Curso De Ms-Dos

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

Page 21: Curso De Ms-Dos

Í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

Page 22: Curso De Ms-Dos

Í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

Page 23: Curso De Ms-Dos

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

Page 24: Curso De Ms-Dos

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

Page 25: Curso De Ms-Dos

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

Page 26: Curso De Ms-Dos

@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

Page 27: Curso De Ms-Dos

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

Page 28: Curso De Ms-Dos

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)

Page 29: Curso De Ms-Dos

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:\DOS\TEMP SET DIRCMD=/O:GEN MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI) MODE CON CODEPAGE SELECT=850 C:\DOS\KEYB SP,,C:\DOS\KEYBOARD.SYS C:\DOS\SMARTDRV.EXE C:\DOS\DRIVERS\MOUSE.COM C:\DOS\SHARE.EXE /L:500 /F:5100 C:\DOS\DOSKEY /INSERT C:\DOS\VSAFE

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)

Page 30: Curso De Ms-Dos

Í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:\PRUEBA\PERDIDO.DBF C:\TRABAJOS\PERDIDO.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)

Page 31: Curso De Ms-Dos

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:\bath\reloj.txt goto Error date <c:\bath\reloj.txt |find "actual"

Página 4 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)

Page 32: Curso De Ms-Dos

time <c:\bath\reloj.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)

Page 33: Curso De Ms-Dos

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)

Page 34: Curso De Ms-Dos

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)

Page 35: Curso De Ms-Dos

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)

Page 36: Curso De Ms-Dos

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)

Page 37: Curso De Ms-Dos

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

Page 38: Curso De Ms-Dos

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

Page 39: Curso De Ms-Dos

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

Page 40: Curso De Ms-Dos

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

Page 41: Curso De Ms-Dos

Í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

Page 42: Curso De Ms-Dos

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

Page 43: Curso De Ms-Dos

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:\TRABAJOS\BATH SET TEMP=C:\DOS\TEMP SET DIRCMD=/O:GEN MODE CON CODEPAGE PREPARE=((850) C:\DOS\ISO.CPI) MODE CON CODEPAGE SELECT=850 LH C:\DOS\KEYB SP,,C:\DOS\KEYBOARD.SYS C:\DOS\SMARTDRV.EXE 6000 2024

Añada la línea de órdenes:

C:\DOS\DOSKEY /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

Page 44: Curso De Ms-Dos

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

Page 45: Curso De Ms-Dos

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

Page 46: Curso De Ms-Dos

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

Page 47: Curso De Ms-Dos

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:\DOS\HIMEM.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

Page 48: Curso De Ms-Dos

Las siguientes entradas preparan los bloques de memoria superior para su posterior uso:

DEVICE=C:\DOS\EMM386.EXE NOEMS DOS=UMB

La siguiente entrada toma memoria extendida para simular expandida cuando sea necesario.

DEVICE=C:\DOS\EMM386.EXE

Las siguientes entradas habilitan los bloques de memoria superior y toman memoria extendida para simular expandida cuando sea necesario.

DEVICE=C:\DOS\EMM386.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

Page 49: Curso De Ms-Dos

Cargar ms-dos en memoria convencional y habilitar memoria extendida.

DEVICE=C:\DOS\HIMEM.SYS

Cargar ms-dos en memoria alta y habilitar memoria superior.

DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE NOEMS DOS=HIGH,UMB

Cargar ms-dos en memoria alta y habilitar las memorias superior y expandida.

DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.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:\DOS\ANSI.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

Page 50: Curso De Ms-Dos

C:\DOS\DRIVERS\MOUSE.COM

Para cargar el programa anterior en la memoria superior, se utiliza la orden Lh.

LH C:\DOS\DRIVERS\MOUSE.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

Page 51: Curso De Ms-Dos

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

Page 52: Curso De Ms-Dos

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úferEspecifica 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

Page 53: Curso De Ms-Dos

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:\DOS\SMARTDRV.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:\DOS\SMARTDRV.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

Page 54: Curso De Ms-Dos

Í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:\DOS\RAMDRIVE.SYS 1024 /E

Parámetro ExplicaciónTamañ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

Page 55: Curso De Ms-Dos

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:\DOS\RAMDRIVE.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

Page 56: Curso De Ms-Dos

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ísicaspropias 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 discoduro, 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 launidad 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 disqueterade 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

Page 57: Curso De Ms-Dos

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 dedisco flexible y dos unidades de disco duro. Sin embargo, la tendencia actual es incorporar las controladoras en la propia placabase. 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/segTriple 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

Page 58: Curso De Ms-Dos

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 porms-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 EDCaras 2 2 2 2 2

Pistas/Cara 40 80 80 80 160Sectores/Pista 9 15 9 18 36

Página 3 de 14Curso de MS-DOS Capítulo 14

Page 59: Curso De Ms-Dos

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 untamañ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ásextendidos.

Í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 yMSDOS.SYS en el directorio raíz. Si los encuentra, carga el sistema operativo y si no, muestra alguna variante del conocidomensaje "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 HDSector comienzo sector de arranque 0 0 0 0

Longitud sector de arranque 1 1 1 1Sector comienzo primera FAT 1 1 1 1Sector comienzo segunda FAT 3 8 6 10

Longitud ambas FAT 4 14 10 18Sector comienzo directorio raíz 5 15 11 19

Longitud directorio raíz 7 14 7 14Sector 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

Page 60: Curso De Ms-Dos

Número de bytes por sector.

Número total de sectores.

Número de sectores en cada grupo.

Número de FAT's.

Número de entradas máximas en el directorio raíz.

Número de sectores ocupados por cada FAT.

Número de serie del disco.

Etiqueta del disco.

Índice · Subir · Publicaciones · Saulo.Net

14-5 Los grupos

El área de datos está dividida lógicamente en grupos. Los grupos, clusters o también llamados unidades de asignación tienen una correspondencia con los sectores del disco. En los disquetes de doble densidad, 2 sectores del área de datos forman un grupo.Pero en los disquetes de alta densidad, cada sector forma un grupo.

Los dos primeros grupos están reservados (grupos 0 y 1). El primer grupo disponible es el número 2.

Cada grupo puede almacenar información de un sólo fichero. Si un fichero no cabe en un sólo grupo, se utilizan varios -no necesariamente contiguos-.

En un disquete de 3½ HD, cada grupo almacena 512 bytes. Si crea un fichero de 1 byte, éste se almacena ocupando todo un grupo.Si luego crea otro fichero de 1 byte, éste empleará un nuevo grupo. Como vemos, el gasto del disco no es de 2 bytes sino de ¡1024bytes!

Índice · Subir · Publicaciones · Saulo.Net

14-6 La FAT

Es el índice del disco. Almacena los grupos utilizados por cada fichero, los grupos libres y los defectuosos.

Como hemos indicado anteriormente, un fichero puede usar varios grupos no consecutivos. Para seguir el rastro del fichero por eldisco, el dos emplea la FAT.

La FAT o tabla de asignación de ficheros es de tal importancia en un disco que se graba por duplicado. Si la FAT se estropea, el dos no reconocerá la información del disco.

Vamos a verlo con un ejemplo. En un disquete vacío de 3½ HD creamos un fichero de 251 bytes llamado ROMANCE.TXT. Como

Página 5 de 14Curso de MS-DOS Capítulo 14

Page 61: Curso De Ms-Dos

el grupo es de 512 bytes, ROMANCE ocupa el primero disponible (grupo 2). La FAT contiene lo siguiente:

Luego, creamos otro fichero llamado SONETO.TXT de 632 bytes. Como no cabe en un sólo grupo, ocupa dos. LA FAT cambiaautomáticamente:

Es decir, SONETO empieza en el grupo 3, continúa en el 4 y finaliza.

Ahora, borramos el fichero ROMANCE.TXT. El dos marca como libres los grupos ocupados por el fichero (en este caso, el grupo2).

Para finalizar, creamos un nuevo fichero con 606 bytes de tamaño y de nombre RECUERDO.TXT. ms-dos busca el primer grupo disponible y lo utiliza. Como no cabe en un sólo grupo, busca otro y también lo utiliza. La FAT queda de esta forma.

Grupo Valor 0 (reservado)1 (reservado)2 (final)3 (libre)4 (libre)5 (libre)

... ...

Grupo Valor 0 (reservado)1 (reservado)2 (final)3 44 (final)5 (libre)

... ...

Grupo Valor 0 (reservado)1 (reservado)2 (libre)3 44 (final)5 (libre)

... ...

Grupo Valor 0 (reservado)

Página 6 de 14Curso de MS-DOS Capítulo 14

Page 62: Curso De Ms-Dos

El fichero RECUERDO ha quedado fragmentado en dos grupos no contiguos: el 2 y el 5.

Índice · Subir · Publicaciones · Saulo.Net

14-7 El directorio raíz

Esta área almacena las entradas del directorio raíz. Cada entrada consta de los siguientes campos:

Cada entrada es almacenada en disco como un conjunto de 32 bytes. Todos los campos menos el nombre y extensión se codificanpara ahorrar espacio. Por ejemplo, el campo de la hora con sólo 2 dígitos almacena horas, minutos y segundos.

El directorio raíz (descodificado) del último ejemplo es el siguiente:

Notas: La orden Dir muestra los campos nombre, extensión, hora, fecha y tamaño. Sin embargo no muestra los segundos del campo hora. La orden Attrib muestra los campos nombre, extensión y los atributos de sólo lectura (R), oculto (H), sistema (S) y archivar (A).

Los subdirectorios del raíz se comportan como ficheros. Aunque parezca extraño, para el dos un directorio es un fichero cuyonombre es el nombre del directorio y cuyo contenido son las entradas del directorio. Para diferenciar a los subdirectorios de los ficheros, el dos coloca un atributo especial a los subdirectorios (D).

Además, el directorio raíz contiene la etiqueta del disco. La etiqueta ocupa una entrada más y posee un atributo característico (E).Recuerde como el nombre de una etiqueta no puede sobrepasar los 11 caracteres (8 + 3).

Nota: La etiqueta de un disco se almacena en dos lugares distintos: sector de arranque y directorio raíz.

Si al disco del ejemplo anterior, le creamos un subdirectorio llamado TEXTOS y además, le ponemos la etiqueta "CAPITULO-14", el directorio raíz será el siguiente:

1 (reservado)2 53 44 (final)5 (final)

... ...

Nombre Extensión Atributos Reservado Hora Fecha Grupo 1º Tamaño (8 bytes) (3 bytes) (1 byte) (10 bytes) (2 bytes) (2 bytes) (2 bytes) (4 bytes)

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño RECUERDO TXT A 17:00:06 31/08/95 2 606SONETO TXT A 16:58:02 31/08/95 3 632

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño

Página 7 de 14Curso de MS-DOS Capítulo 14

Page 63: Curso De Ms-Dos

Índice · Subir · Publicaciones · Saulo.Net

14-8 El área de datos

Almacena todos los subdirectorios y ficheros del disco. El área de datos se divide en un número fijo de grupos dependiendo deltipo de disco. Cuando alguien habla del tamaño de un disco, en realidad, se refiere al tamaño del área de datos. En el área de datosde un disquete de 3½ HD caben 1,44 Mb.

La orden CHKDSK

Tiene dos misiones principales: mostrar información relativa al disco y corregir errores del disco (ver más adelante).

Un listado de la orden Chkdsk en un disquete de 3½ HD puede ser el siguiente:

A:\>chkdsk El volumen CAPITULO-14 se creó el 31/08/1995 a las 17:22 El número de serie del volumen es 11F5-1441 1.457.664 bytes de espacio total en disco 512 bytes en 1 directorio(s) 2.560 bytes en 3 archivo(s) de usuario 1.454.592 bytes disponibles en el disco 512 bytes en cada unidad de asignación 2.847 total de unidades de asignación en el disco 2.841 unidades de asignación disponibles en disco 655.360 bytes de memoria total 627.040 bytes libres

La primera línea obtiene la información de la entrada con atributo E en el directorio raíz. El número de serie del disco lo encuentraleyendo el sector de arranque.

La siguiente línea muestra la capacidad total del área de datos. "Bytes en x directorio(s)" apunta los bytes consumidos por los subdirectorios (sin contar el raíz). Debe ser múltiplo del tamaño del grupo. La línea "bytes en x archivo(s) de usuario" indica los bytes ocupados por el total de ficheros en el disco. Debe ser múltiplo igualmente del tamaño del grupo. Si dividimos 2560 entre512 obtenemos 5 grupos utilizados por ficheros. Los bytes disponibles se obtienen restando de la capacidad total, los bytes usados(1.457.664 - 512 - 2560 = 1.454.592)

El siguiente bloque de texto muestra información sobre los grupos o unidades de asignación. Como ya sabemos, los grupos de undisquete de 3½ HD almacenan un máximo de 512 bytes. Restando los grupos totales menos los grupos disponibles, tenemos los

RECUERDO TXT A 17:00:06 31/08/95 2 606SONETO TXT A 16:58:02 31/08/95 3 632TEXTOS D 17:20:10 31/08/95 6 0CAPITULO -14 E 17:22:36 31/08/95 0 0(libre)...

Página 8 de 14Curso de MS-DOS Capítulo 14

Page 64: Curso De Ms-Dos

grupos usados (2.847 _ 2.841 = 6). Seis grupos usados: cinco en ficheros y uno en subdirectorios.

El último bloque informa sobre la memoria convencional.

Índice · Subir · Publicaciones · Saulo.Net

14-9 Estructura lógica de los discos duros

Los discos duros presentan una serie de diferencias frente a la estructura lógica de los discos flexibles:

Tienen una tabla de particiones en el primer sector.

Pueden crearse de una a cuatro particiones.

Poseen tantos sectores de arranque como particiones.

Las particiones son divisiones lógicas efectuadas en un disco duro. Responden a una necesidad muy importante en informática:compartir un mismo disco duro para varios sistemas operativos. Cada partición tiene la estructura lógica correspondiente a susistema operativo. Una partición dos contiene sector de arranque, FAT, directorio raíz y área de datos. Los datos de una particiónno se mezclan con los de otra.

Si se preparan varias particiones es necesario establecer una partición como activa. La partición activa es la que arranca al encender el ordenador.

En el primer sector de todo disco duro se sitúa una tabla de particiones con el siguiente formato.

La entrada de cada partición contiene los siguientes campos:

Concepto Bytes ocupados (reservado) 445 bytes

Entrada de la partición 1 16 bytesEntrada de la partición 2 16 bytesEntrada de la partición 3 16 bytesEntrada de la partición 4 16 bytes

Campo Bytes ocupados Partición activa o no 1 byte

Cabeza primer sector de la partición 1 byteCilindro y sector del primer sector 2 bytesTipo de partición: DOS, XENIX... 1 byte

Cabeza último sector de la partición 1 byteCilindro y sector del último sector 2 bytes

Primer sector de la partición 4 bytesLongitud de la partición en sectores 4 bytes

Página 9 de 14Curso de MS-DOS Capítulo 14

Page 65: Curso De Ms-Dos

Nota: Para cambiar las particiones, se utiliza la orden Fdisk.

Cuando el ordenador arranca, busca en la tabla de particiones la partición activa y cede el control al sector de arranque de dichapartición.

Índice · Subir · Publicaciones · Saulo.Net

14-10 Corrección de errores en los discos

Para corregir errores producidos en un disco por mal uso o por defectos del hardware o software se emplea la orden Chkdsk (hasta la versión 6.0) o Scandisk (desde la 6.2)

Scandisk detecta y corrige los siguientes problemas en un disco sin comprimir:

Las FAT's no coinciden.

Estructura del directorio incorrecta.

Sistema de ficheros incorrecto (cadenas perdidas y vínculos cruzados)

Errores físicos en el disco.

Chkdsk detecta únicamente los siguientes errores. Para corregirlos es necesario añadir el modificador /F.

Estructura del directorio incorrecta.

Sistema de ficheros incorrecto (cadenas perdidas y vínculos cruzados)

Para verificar el disco duro C:, escriba lo siguiente según su versión de ms-dos:

Hasta la versión 6.0

C:\>chkdsk /f

Si detecta algún error, Chkdsk pide confirmación al usuario antes de solventarlo. Si el disco es correcto, Chkdsk muestra información del disco y termina.

Desde la versión 6.2

C:\>scandisk

Scandisk comprueba en primer lugar la estructura lógica del disco y en segundo lugar, la estructura física. Si detecta algunaanomalía, Scandisk ofrece una explicación detallada del problema antes de resolverlo. Si se encargó solucionar el error, Scandiskofrece la posibilidad de crear un disquete Deshacer. Un disquete Deshacer permite restaurar un disco a su estado original si éste funciona peor después de la reparación efectuada. Para ello escribimos SCANDISK /UNDO.

Página 10 de 14Curso de MS-DOS Capítulo 14

Page 66: Curso De Ms-Dos

Verificar el disco duro frecuentemente es una tarea más que necesaria. Los errores lógicos o físicos pueden producirse por diversosmotivos: no salir adecuadamente de las aplicaciones, apagar el ordenador a mitad de una operación, un corte de suministroeléctrico, fallo de la parte mecánica del disco duro, programas defectuosos...

Por estas razones debe solucionar los posibles errores antes de que sea demasiado tarde. Una colección de pequeños errores puedeninutilizar el disco.

Si dispone de una versión de ms-dos anterior a la 6.0 agregue la siguiente línea al AUTOEXEC.BAT para que el disco duro seachequeado en cada arranque del sistema.

CHKDSK C: /F

Si su versión es posterior a la 6.2 coloque la siguiente línea en el AUTOEXEC.BAT

SCANDISK C: /CUSTOM

A continuación se describen los errores detectados por Chkdsk y Scandisk.

Las FAT's no coinciden.

Debido a la vital importancia de este área, se encuentra almacenada en dos lugares diferentes. Si Scandisk detecta alguna diferenciaentre ambas copias, actualiza la segunda copia con los datos de la primera.

Estructura del directorio incorrecta.

Chkdsk y Scandisk revisan las entradas de los directorios comparándolas con la FAT. Si detectan un carácter no válido o un datoincorrecto en alguna entrada, se lo comunican al usuario.

Imagine un disco de 3½ HD con las siguientes informaciones:

Página 11 de 14Curso de MS-DOS Capítulo 14

Page 67: Curso De Ms-Dos

El fichero PRUEBA.TXT, según el directorio raíz, empieza en el grupo 2. Observando la FAT, el grupo 2 es el último del fichero.Sin embargo, un grupo equivale a 512 bytes y el fichero tiene 711 bytes. Para solucionar el problema, Scandisk o Chkdsk cambianel valor 711 por 512.

Cadenas perdidas

Son informaciones del área de datos no asignadas a ningún fichero.

Suponga un disco de 3½ HD con el siguiente contenido:

El grupo 4 y 5 se encuentran en la FAT como usados. Sin embargo, ningún fichero se hace responsable de estas informaciones. Portanto, los grupos 4 y 5 forman una cadena perdida. Para solucionarlo, tanto Chkdsk como Scandisk ofrecen dos posibilidades:borrar o recuperar.

Si borramos, los grupos 4 y 5 se marcan en la FAT como libres:

Grupo Valor 0 (reservado)1 (reservado)2 (final)3 (libre)

... ...

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño PRUEBA TXT A 10:15:28 01/01/96 2 711

Grupo Valor 0 (reservado)1 (reservado)2 (final)3 (final)4 55 (final)

... ...

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño FICH1 TXT A 09:40:00 03/06/96 2 250FICH2 TXT A 10:41:02 03/06/96 3 372

Grupo Valor 0 (reservado)

Página 12 de 14Curso de MS-DOS Capítulo 14

Page 68: Curso De Ms-Dos

Si recuperamos, ms-dos asigna un nombre de fichero a la cadena perdida. A la primera cadena recuperada la llama FILE0001.CHKy así sucesivamente:

Generalmente las cadenas perdidas recuperadas no tienen ninguna utilidad y se pueden borrar simplemente. Este error se produce frecuentemente al apagar el ordenador sin salir de una aplicación.

Vínculos cruzados

Se produce cuando un mismo grupo es compartido por varios ficheros.

El siguiente disco posee el grupo 2 común a los ficheros FICH1.TXT y FICH2.TXT

El siguiente disco de 3½ HD posee un vínculo cruzado a nivel de FAT. El grupo 3 es compartido por dos ficheros.

1 (reservado)2 (final)3 (final)4 (libre)5 (libre)

... ...

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño FICH1 TXT A 09:40:00 03/06/96 2 250FICH2 TXT A 10:41:02 03/06/96 3 372FILE0001 CHK A 11:42:04 03/06/95 4 1024

Grupo Valor 0 (reservado)1 (reservado)2 (final)

... ...

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño FICH1 TXT A 10:02:18 01/01/96 2 160FICH2 TXT R 10:03:22 01/01/96 2 450

Grupo Valor 0 (reservado)1 (reservado)2 33 (final)

Página 13 de 14Curso de MS-DOS Capítulo 14

Page 69: Curso De Ms-Dos

Para solventar un vínculo cruzado, Chkdsk o Scandisk copian el grupo común a otro lugar del disco. El segundo fichero implicadose dirige al nuevo lugar, rompiendo el cruzamiento.

Errores físicos

Se origina un error físico en un sector del disco cuando ese sector no almacena datos de forma segura.

Si Scandisk encuentra un sector defectuoso en el sector de arranque, FAT o directorio raíz, no puede hacer nada y el disco quedainservible.

En cambio, si encuentra un grupo defectuoso en el área de datos, Scandisk copia la información existente a lugar seguro y marca enla FAT ese grupo como defectuoso.

La siguiente FAT corresponde a un disco con el grupo 3 defectuoso. ms-dos evitará ese bloque en todas las operaciones de escritura:

Índice · Subir · Capítulo15 · Publicaciones · Saulo.Net

... ...

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño FICH1 TXT A 12:22:00 01/01/96 2 800FICH2 TXT A 12:24:08 01/01/96 3 257

Grupo Valor 0 (reservado)1 (reservado)2 43 (defectuoso)4 (final)

... ...

Página 14 de 14Curso de MS-DOS Capítulo 14

Page 70: Curso De Ms-Dos

Capítulo 15 Defrag, Undelete y Unformat

Índice · Capítulo 14 · Capítulo 16 · Publicaciones · Saulo.Net

15-1 Introducción

En este capítulo se estudia la utilidad, uso y funcionamiento interno de estas tres herramientas proporcionadas por ms-dos:

Defrag. Elimina la fragmentación del disco duro y, en consecuencia, se acelera la búsqueda de información por el disco. Undelete. Recupera ficheros borrados por equivocación. Admite varios niveles que garantizan en mayor o menor medida el éxito de la restauración. Unformat. Restablece un disco formateado con Format por equivocación. Solamente se asegura una recuperación total si el disco no ha sido modificado desde el uso de Format.

Índice · Arriba · Publicaciones · Saulo.Net

15-2 DEFRAG

Elimina la fragmentación de un disco.

Concepto de fragmentación

Un disco está fragmentado cuando posee algún fichero (o directorio) almacenado en grupos no consecutivos del disco.

Grupo.— Los ficheros (o directorios) creados por el usuario se almacenan en uno o más grupos. Cada tipo de disco tiene un número fijo de grupos. El primero disponible es el número 2. Un fichero (o directorio) ocupa como mínimo un grupo. Para más información ver capítulo anterior.

FAT.— Es una división lógica del disco. Almacena qué grupos son ocupados por cada fichero o directorio. Se explica detalladamente en el capítulo anterior.

La siguiente FAT corresponde a un disco fragmentado.

Observe cómo el disco tiene dos ficheros. El primero comienza en el grupo 2 y sigue en el 5. Está fragmentado en dos grupos no

Grupo Valor0 (reservado)1 (reservado)2 53 44 (final)5 (final)

Página 1 de 16Curso de MS-DOS Capítulo 15

Page 71: Curso De Ms-Dos

contiguos. El segundo fichero ocupa los grupos 3 y 4. Por tanto, se almacena en un sólo bloque.

Veamos cómo se puede fragmentar un disco.

Por borrado

Cuando se borra un fichero, la FAT se actualiza y marca como libres los grupos ocupados por el fichero. Si luego creamos un nuevo fichero más largo que el borrado, no entrará en el hueco libre y ocupará nuevos grupos.

La siguiente FAT corresponde a un supuesto disco con dos ficheros. El primero está situado únicamente en el grupo 2 y el segundo ocupa los grupos 3 y 4.

Ahora borramos el primer fichero:

Finalmente, creamos un fichero que ocupe dos bloques del disco. ms-dos ocupará los dos primeros marcados como libres (el 2 y el 5). Se acaba de producir una fragmentación:

Por ampliación

Si añadimos información a un fichero existente, posiblemente invadirá un nuevo grupo. En el siguiente ejemplo hemos creado dos ficheros. Cada uno ocupa un solo grupo.

Grupo Valor0 (reservado)1 (reservado)2 (final)3 44 (final)5 (libre)

Grupo Valor0 (reservado)1 (reservado)2 (libre)3 44 (final)5 (libre)

Grupo Valor0 (reservado)1 (reservado)2 53 44 (final)5 (final)

Página 2 de 16Curso de MS-DOS Capítulo 15

Page 72: Curso De Ms-Dos

Suponga que el primer fichero corresponde a una carta destinada a un viejo amigo. Si recuerda algo importante no incluido en la carta seguramente lo añadirá al fichero. Conclusión: el primer fichero aumenta de tamaño. Tenemos un nuevo caso de fragmentación:

Para comprender cómo la fragmentación ralentiza el funcionamiento de un disco, vamos a observar un caso extremo. La FAT representada a continuación pertenece a un imaginario disquete de 3½ HD (2847 grupos totales).

El fichero está ocupando los grupos 2, 2846, 3 y 2845. Cuando ms-dos acceda a tal singular fichero, se provocarán tres largos desplazamientos de las cabezas lectoras: el grupo 2 y el 2846 son los más distantes físicamente en un disco de 3½ HD.

El programa Defrag mueve la información de cada grupo con objeto de colocar secuencialmente los ficheros y directorios:

Utilización de DEFRAG

Grupo Valor0 (reservado)1 (reservado)2 (final)3 (final)

Grupo Valor0 (reservado)1 (reservado)2 43 (final)4 (final)

Grupo Valor0 (reservado)1 (reservado)2 28463 2845

... ...2845 (final)2846 3

Grupo Valor0 (reservado)1 (reservado)2 33 44 55 (final)

... ...

Página 3 de 16Curso de MS-DOS Capítulo 15

Page 73: Curso De Ms-Dos

Aunque soporta una serie de parámetros en su línea de órdenes, es usual ejecutarlo sin ninguno.

C:\>defrag

Nota: Algunos programas residentes son incompatibles con Defrag. Tales son los casos de Fastopen y Windows.

El programa dispone de una pequeña ayuda sensible al contexto. Podemos pulsar F1 en cualquier momento para solicitar información ampliada.

Defrag comprueba nuestro equipo y nos pregunta qué unidad deseamos optimizar. Seguidamente, lee el disco y aconseja uno de los dos métodos de optimización.

Optimización plena. Coloca los directorios al principio del área de datos seguido por los ficheros. No deja ningún grupo sin utilizar entre dos usados: todos quedan al final del disco. Defragmentar sólo archivos. De esta forma, no queda ningún fichero (o directorio) repartido en grupos no contiguos. Sin embargo, deja grupos libres entre usados. Los ficheros y directorios quedan entremezclados en el disco. Este método de optimización es más rápido aunque ofrece peores resultados que la optimización plena.

Para aceptar el método propuesto, pulse el botón "Optimizar". Para acceder a más opciones pulse "Configurar".

Si pulsamos "Configurar", se despliega el menú Optimizar con los siguientes comandos:

Iniciar Optimización Comienza la defragmentación con las opciones seleccionadas.

Unidad... Permite cambiar la unidad de disco para optimizar.

Método de optimización... Aquí elegimos uno de los métodos explicados anteriormente.

Ordenación de archivos... Clasifica según un criterio (nombre, extensión, fecha o tamaño) los ficheros dentro de cada directorio. No coloca los ficheros físicamente ordenados en el área de datos, sino ordena únicamente las entradas de cada directorio.

Leyenda de mapa... El mapa aparecido en el centro de la pantalla representa el área de datos del disco, desarrollado desde el primer grupo hasta el último. Cada carácter (bloque) simboliza varios grupos contiguos. Este comando muestra el significado de los caracteres empleados en el mapa.

Página 4 de 16Curso de MS-DOS Capítulo 15

Page 74: Curso De Ms-Dos

Acerca de Defragmentar... Informa sobre el programa.

Salir Finaliza la ejecución de Defrag.

Cuando Defrag termina la optimización de una unidad ofrece un cuadro de diálogo con tres botones:

Otra unidad Defragmenta otro disco.

Configurar Vuelve al menú Optimizar.

Salir de Defrag Finaliza la ejecución de Defrag.

Ejecutar Defrag periódicamente, acelera la lectura de datos en el disco duro.

Índice · Arriba · Publicaciones · Saulo.Net

15-3 Preparar UNDELETE

Recupera ficheros borrados accidentalmente por cualquier orden del dos (Del, Deltree...) o aplicación (WordPerfect, Windows...). Sin embargo no puede restaurar directorios borrados ni ficheros dentro de un directorio eliminado. Si advierte haber borrado un fichero importante, deje cualquier otro trabajo y ejecute Undelete de inmediato. Si escribe nueva información en el disco posiblemente se grabe encima de la borrada.

Niveles de protección

Undelete puede trabajar con uno de los siguientes niveles:

Estándar. Es el nivel más bajo. No ocupa memoria ni espacio en disco. En ocasiones muy concretas, Undelete no puede restaurar un fichero ni ejecutándolo justo después de borrarlo. Registro de eliminación. Ofrece un nivel intermedio de seguridad. Ocupa 13,5K de memoria y un insignificante espacio en disco (55K en discos duros con más de 32Mb totales). Garantiza la recuperación de un fichero si no se escribió nada en el disco desde su eliminación. Precisa crear un fichero en el directorio raíz denominado PCTRACKR.DEL Centinela de eliminación. Ocupa 13,5K de memoria y cierto espacio en disco. Asegura la recuperación total de los últimos ficheros borrados. Necesita crear un subdirectorio del raíz oculto llamado SENTRY para almacenarlos.

Instalar un nivel

Debe optar por uno de los tres niveles de protección (Estándar, Registro o Centinela). Considere el gasto de memoria y disco de cada uno, así como su efectividad.

Para instalar el nivel Estándar no debe hacer nada: está presente desde el encendido del ordenador. Para instalar el Registro de eliminación agregue la siguiente línea a su AUTOEXEC.BAT y reinicie el ordenador.

Página 5 de 16Curso de MS-DOS Capítulo 15

Page 75: Curso De Ms-Dos

C:\DOS\UNDELETE.EXE /T

Si prefiere el Centinela escriba esta otra línea:

C:\DOS\UNDELETE.EXE /S

En el segundo caso, se habilita el Registro para su disco duro. En discos mayores de 32Mb, la configuración por defecto almacena datos sobre los 303 últimos ficheros. Se creará un fichero llamado PCTRACKR.DEL en su directorio raíz con los atributos de archivar y sistema.

En el tercer caso, se crea un directorio oculto desde el raíz con nombre SENTRY. Este directorio, por defecto, está limitado al 20% del tamaño del disco. Si se sobrepasa, se eliminan -esta vez definitivamente- los ficheros más antiguos. Además, los ficheros borrados no podrán residir en este directorio más de 7 días.

Configurar el nivel Centinela o Registro

Para configurar Undelete se utiliza el fichero UNDELETE.INI situado en el directorio C:\DOS. Si no existe, se crea automáticamente al cargar Undelete en memoria. A continuación tiene un ejemplo del fichero UNDELETE.INI

[configuration] archive=FALSE days=7 percentage=20 [sentry.drives] C= D= [mirror.drives] C= E= [sentry.files] sentry.files=*.* -*.TMP -*.VM? -*.WOA -*.SWP -*.SPL -*.RMG -*.IMG -*.THM -*.DOV [defaults] d.sentry=FALSE d.tracker=TRUE

El fichero consta de 5 secciones: configuration, sentry.drives, mirror.drives, sentry.files y defaults. Se describen a continuación:

La sección [configuration] afecta únicamente al método Centinela. Contiene tres líneas:

"archive" se puede igualar a "TRUE" o a "FALSE". Si es "FALSE" los ficheros sin atributo de archivar, se copian al directorio SENTRY. Si es "TRUE" estos ficheros no se copian. La razón de esta opción es sencilla, un fichero sin atributo de archivar significa que se ha copiado a disquetes con Xcopy o Msbackup.

"days" se debe igualar al número máximo de días que permanecerán los ficheros en el directorio SENTRY.

"percentaje" debe igualarse a un número entre 1 y 100. Es el porcentaje del total de disco que como máximo puede ser destinado al directorio SENTRY.

La sección [sentry.drives] contiene las unidades protegidas por el método Centinela si se activa este método. En este caso las unidades C: y D:

La sección [mirror.drives] contiene las unidades protegidas por el método Registro de eliminación si éste se activa. En el ejemplo,

Página 6 de 16Curso de MS-DOS Capítulo 15

Page 76: Curso De Ms-Dos

las unidades C: y E:

La sección [sentry.files] afecta únicamente al método Centinela. Contiene los ficheros protegidos por el Centinela cuando esté activo. En este caso se protegen todos los ficheros (*.*) menos los ficheros con extensiones TMP, VM?, WOA, SWP, SPL, RMG, IMG, THM y DOV.

La sección [defaults] especifica el método de Undelete definido. Contiene dos opciones. La opción "d.sentry" hace referencia al método Centinela y la opción "d.tracker" al Registro. "TRUE" significa activado y "FALSE" desactivado. Esta sección varía automáticamente según se cargue Undelete con el parámetro /S (Centinela) o /T (Registro).

Si desea aumentar o disminuir el número de ficheros guardados en el fichero PCTRACKR.DEL (método Registro) siga este procedimiento:

1. Si reside en memoria el método Registro, lo quitamos:

C:\>undelete /unload

2. Si existe el fichero PCTRACKR.DEL, lo borramos:

C:\>deltree \pctrackr.del

3. Creamos un nuevo PCTRACKR.DEL para almacenar datos de n ficheros. n debe ser un número entre 1 y 999. El tamaño de PCTRACKR.DEL se obtiene dividiendo n entre 5,5. Sintaxis:

UNDELETE /T-n

La siguiente línea de órdenes crea un registro para 500 ficheros:

C:\>undelete /t-500

Desinstalación

Para desinstalar el Registro, quitamos la línea correspondiente del AUTOEXEC.BAT y reiniciamos el ordenador. Luego borramos el fichero PCTRACKR.DEL

C:\>deltree \pctrackr.del

Para desistalar el Centinela, borramos la línea correspondiente del AUTOEXEC.BAT y reiniciamos el ordenador. Seguidamente eliminamos el directorio SENTRY.

C:\>undelete /purge

Índice · Arriba · Publicaciones · Saulo.Net

15-4 Restaurar ficheros borrados con UNDELETE

Undelete utiliza el método superior instalado para recuperar ficheros. Si existe el directorio SENTRY emplea el método Centinela. Si el fichero PCTRACKR.DEL está en el raíz, utiliza el Registro. En último caso, usa el método Estándar.

Página 7 de 16Curso de MS-DOS Capítulo 15

Page 77: Curso De Ms-Dos

Nota: Si usa el método Estándar, el primer carácter del nombre de un fichero borrado se pierde. Por tanto, Undelete lo solicita al restaurarlo.

Para recuperar todos los ficheros ejecutamos Undelete sin parámetros. Si deseamos recuperar un fichero o un grupo de ellos, se lo introducimos como parámetro. El modificador /ALL restaura todos los ficheros especificados sin pedir confirmación.

Aplicaciones:

Ver los ficheros recuperables del directorio actual.

D:\VARIOS>undelete /list RESTABLECER - Una protección contra eliminación Copyright (C) 1987-1993 Central Point Software, Inc. Reservados todos los derechos. Directorio: D:\VARIOS Especificación de archivos: *.* No se encontró archivo control Centinela de eliminación. No se encontró el archivo de Registro de eliminación. El directorio MS-DOS contiene 3 archivos eliminados. De los cuales, 3 pueden ser recuperados. Usando el método directorio MS-DOS. ?ALANC94 PCX 3439 23/07/95 17:57 ...A ?ONETO TXT 632 29/04/95 0:11 ...A ?ECUERDO TXT 606 29/04/95 0:18 ...A

(como no existe ni SENTRY ni PCRACKR.DEL, Undelete usa el método Estándar. Se observa como se ha perdido el primer carácter del nombre de cada fichero)

Recuperar todos los ficheros del directorio actual.

D:\VARIOS>undelete

(Undelete pedirá confirmación para cada fichero)

Recuperar todos los ficheros del directorio actual sin pedir confirmación.

D:\VARIOS>undelete /all

Recuperar un grupo de ficheros.

D:\VARIOS>undelete *.txt

También podemos obligar a Undelete a utilizar un método concreto. Utilizamos los siguientes modificadores:

Modificador Método seguido para restaurar /DOS Estándar.

/DT Registro de eliminación./DS Centinela de eliminación.

Página 8 de 16Curso de MS-DOS Capítulo 15

Page 78: Curso De Ms-Dos

El siguiente ejemplo muestra los ficheros recuperables con el método Estándar existiendo el Registro de eliminación.

D:\VARIOS>undelete /dos /list RESTABLECER - Una protección contra eliminación Copyright (C) 1987-1993 Central Point Software, Inc. Reservados todos los derechos. Directorio: D:\VARIOS Especificación de archivos: *.* No se encontró archivo control Centinela de eliminación. Archivo Registro de eliminación contiene 2 eliminados. De los cuales, 2 tiene(n) disponibles todos sus grupos, 0 tiene(n) disponibles parte de sus grupos, 0 no tiene(n) grupos disponibles. El directorio MS-DOS contiene 3 archivos eliminados. De los cuales, 3 pueden ser recuperados. Usando el método directorio MS-DOS. ?ALANC93 TXT 1160 23/07/95 17:56 ...A ?ALANC93 PCX 3826 23/07/95 17:56 ...A ?ALANC94 PCX 3439 23/07/95 17:57 ...A

Índice · Arriba · Publicaciones · Saulo.Net

15-5 Funcionamiento de UNDELETE

Cuando se borra un fichero del disco, ms-dos indica en la FAT que los grupos usados han quedado libres, y además cambia el primer carácter del nombre del fichero por el número 229 en la tabla ASCII. Cuando ms-dos lee el directorio ignora aquellas entradas comenzadas por el carácter ASCII 229.

La siguiente FAT y directorio raíz corresponden a un disquete de 3½ HD con dos ficheros:

Después de borrar SONETO.TXT, el disco queda así.

Grupo Valor0 (reservado)1 (reservado)2 33 (final)4 (final)

Nombre Ext. Atrib. Hora Fecha Grupo 1º TamañoSONETO TXT A 00:11:02 29-04-95 2 632ROMANCE TXT A 00:11:56 29-04-95 4 251

Página 9 de 16Curso de MS-DOS Capítulo 15

Page 79: Curso De Ms-Dos

En realidad, los grupos 2 y 3 siguen almacenando el fichero. Sin embargo al estar marcados como libres, serán usados en la primera operación de escritura.

Método estándar

Undelete reconoce los ficheros borrados buscando las entradas del directorio comenzadas por el carácter ASCII 229. Para recuperar el fichero SONETO.TXT del ejemplo anterior, Undelete haría lo siguiente:

Sabe que el grupo inicial es el 2. Además conoce el número de grupos usados (632 / 512 = 1,2 » 2 grupos). Por tanto sólo le resta recuperar los dos primeros grupos libres comenzando en el grupo 2 (grupos 2 y 3). Como el primer carácter del nombre del fichero se perdió, Undelete lo solicita al usuario. El fichero finalmente ha sido restaurado con éxito.

Aunque parezca correcto, este método puede fallar al recuperar ficheros fragmentados. Observe el siguiente ejemplo. Corresponde a un disco con un sólo fichero (grupos 2 y 4).

Grupo Valor0 (reservado)1 (reservado)2 (libre)3 (libre)4 (final)

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño?ONETO TXT A 00:11:02 29-04-95 2 632ROMANCE TXT A 00:11:56 29-04-95 4 251

Grupo Valor0 (reservado)1 (reservado)2 33 (final)4 (final)

Nombre Ext. Atrib. Hora Fecha Grupo 1º TamañoSONETO TXT A 00:11:02 29-04-95 2 632ROMANCE TXT A 00:11:56 29-04-95 4 251

Grupo Valor0 (reservado)1 (reservado)2 43 (libre)4 (final)

Página 10 de 16Curso de MS-DOS Capítulo 15

Page 80: Curso De Ms-Dos

Si borramos el fichero, la FAT queda así:

Leyendo la correspondiente entrada del directorio, Undelete conoce el grupo inicial (el 2) y el número de grupos usados (2). Al restaurar, asignará equivocadamente los dos primeros grupos libres comenzando por el segundo. La FAT resultante es la siguiente:

Undelete ha asignado los grupos 2 y 3 al fichero en lugar de los grupos 2 y 4 que le corresponden.

Registro de eliminación

Este método asegura la recuperación de ficheros fragmentados.

El programa Undelete permanece en memoria. Si detecta que algún programa intenta borrar un fichero, Undelete copia previamente su entrada del directorio y los números de grupos ocupados, en el fichero PCTRACKR.DEL.

En el último ejemplo, Undelete conoce leyendo PCTRACKR.DEL, que el fichero ocupa los grupos 2 y 4. Además ha almacenado el nombre del fichero borrado, no se pedirá el primer carácter al usuario. Por tanto, el Registro es capaz de restaurar con éxito ficheros fragmentados siempre y cuando no se haya escrito nueva información en el disco.

Centinela de eliminación

Garantiza la recuperación total de los últimos ficheros aún escribiendo nueva información en el disco.

Undelete permanece residente en memoria analizando todas las acciones del sistema. Si descubre un intento de borrar un fichero, Undelete entra en funcionamiento moviendo el fichero en cuestión al directorio SENTRY. Fíjese lo sencillo que resulta mover un fichero: se elimina la entrada del directorio original y se crea en el directorio SENTRY: la FAT permanece intacta.

Con objeto de evitar dos ficheros llamados igual en SENTRY, Undelete codifica el nombre de cada uno. Al restaurar un fichero borrado, le devuelve su nombre original. Para controlar donde estaba cada fichero y cuál es el verdadero nombre de cada uno, el directorio SENTRY posee un fichero con atributo de sistema llamado CONTROL.FIL.

Grupo Valor0 (reservado)1 (reservado)2 (libre)3 (libre)4 (libre)

Grupo Valor0 (reservado)1 (reservado)2 33 (final)4 (libre)

Página 11 de 16Curso de MS-DOS Capítulo 15

Page 81: Curso De Ms-Dos

Veamos cómo trabaja el Centinela en el siguiente ejemplo:

Directorio raíz:

Directorio SENTRY:

Cuando borremos RECUERDO.TXT, el disco cambiará:

Directorio raíz:

Directorio SENTRY:

Índice · Arriba · Publicaciones · Saulo.Net

Grupo Valor0 (reservado)1 (reservado)2 33 (final)

... ...10 (final)11 (final)

Nombre Ext. Atrib. Hora Fecha Grupo 1º TamañoRECUERDO TXT A 00:18:06 29-04-95 2 606SENTRY D-H 11:00:04 28-04-95 10 0

Nombre Ext. Atrib. Hora Fecha Grupo 1º TamañoCONTROL FIL A-S 11:00:16 28-04-95 11 437

Grupo Valor0 (reservado)1 (reservado)2 33 (final)

... ...10 (final)11 (final)

Nombre Ext. Atrib. Hora Fecha Grupo 1º Tamaño?ECUERDO TXT A 00:18:06 29-04-95 2 606SENTRY D-H 11:00:04 28-04-95 10 0

Nombre Ext. Atrib. Hora Fecha Grupo 1º TamañoCONTROL FIL A-S 11:00:16 28-04-95 11 437#A1B2C3E MS A 00:18:06 29-04-95 2 606

Página 12 de 16Curso de MS-DOS Capítulo 15

Page 82: Curso De Ms-Dos

15-6 La orden FORMAT

Aunque admite numerosos modificadores, muchos de ellos pertenecen a versiones antiguas de ms-dos. La sintaxis útil para la versión 6 y siguientes se ofrece a continuación:

FORMAT unidad: [/V:etiqueta] [/Q] [/U] [/F:tamaño] [/S] [/C]

Format puede formatear un disco de cuatro maneras diferentes:

Formato seguro. Sólo es válido para disquetes formateados previamente. Se puede recuperar posteriormente con la orden Unformat.

Normal. Si no se especifica el tipo de disquete, se asume el más alto permitido por la disquetera. Guarda el área del sistema (sector arranque, FAT y directorio raíz) en espacio libre del área de datos. Luego crea un nuevo área del sistema y verifica el área de datos buscando grupos defectuosos. No sobrescribe el área de datos. Si encuentra un grupo dañado, lo marca en la FAT para evitarlo en futuras operaciones. Rápido. No es necesario especificar el tipo de disquete. Guarda el área del sistema en espacio libre del área de datos. Finalmente crea un nuevo área de sistema.

Format incondicional. No se puede restablecer un disquete formateado de este modo. Normal. Se utiliza en disquetes nuevos para poder trabajar con ellos. En disquetes formateados, se pierde definitivamente su contenido. Crea toda la estructura lógica del disco (sector de arranque, FAT, directorio raíz y área de datos). Además verifica el disco buscando sectores defectuosos. Rápido. Sólo se admite en disquetes ya formateados. Crea un nuevo área del sistema y finaliza. Es muy rápido.

Aplicaciones:

Formatear un disquete nuevo de 3½ HD en una unidad de 3½ HD (formato incondicional).

C:\>format a: /u

(para formatear un disquete nuevo se puede usar o no el modificador /U. Sin embargo, este modificador acelera el proceso)

Formatear un disquete nuevo de 3½ DD en una unidad de 3½ HD (formato incondicional).

C:\>format a: /f:720 /u

Dar un formato seguro a un disquete usado de 5¼ DD en una unidad de 5¼ HD.

C:\>format a: /f:360

Dar un formato seguro a un disquete usado de 5¼ HD en una unidad de 5¼ HD.

Parámetro Descripción /V:etiqueta Especifica la etiqueta del disco.

/Q Realiza un formato rápido./U Realiza un formato incondicional.

/F:tamaño Especifica el tipo de disquete al que se dará formato (tales como 360, 720, 1.2, 1.44 ó 2.88)./S Crea un disquete de arranque. Para ello copia los ficheros IO.SYS, MSDOS.SYS y COMMAND.COM después de

formatear./C Verifica los grupos actualmente marcados como defectuosos.

Página 13 de 16Curso de MS-DOS Capítulo 15

Page 83: Curso De Ms-Dos

C:\>format a:

Dar un formato incondicional rápido a un disquete usado.

C:\>format a: /u /q

Dar un formato seguro rápido a un disquete usado.

C:\>format a: /q

Dar un formato seguro a un disco duro formateado o un formato incondicional si el disco duro no tiene formato.

C:\>format d:

Índice · Arriba · Publicaciones · Saulo.Net

15-7 UNFORMAT

Restaura el área del sistema de un disco formateado con Format. Si utiliza otro programa para formatear diferente a Format, no podrá recuperar el disco. Solamente se garantiza la recuperación total de los datos si el disco recibió un formato seguro normal o rápido (no se utilizó /U) y si no se ha escrito nueva información en el disco desde el formateo.

Uso de Unformat

Escriba UNFORMAT seguido de la unidad que quiere restaurar. Unformat mostrará mensajes de advertencia y pedirá confirmación antes de continuar.

Nota: Si está restaurando un disquete, puede que Unformat _incorrectamente_ haga referencia a su disco duro. No se alarme, es problema de la traducción al español. Si especificó una unidad de disco flexible, el disco duro no se tocará.

Unformat buscará el área del sistema guardada por Format en el área de datos. Si lo encuentra muestra la fecha y hora del último uso de Format.

Si la fecha es correcta, continuamos. Unformat restaurará el área del sistema: ¡el disco ha sido recuperado!

A continuación se formatea el disco duro D: y luego se recupera con Unformat.

D:\>dir El volumen de la unidad D no tiene etiqueta El número de serie del volumen es 401F-19FF Directorio de D:\ EMPRESA <DIR> 05/09/95 21:07 RECUERDO TXT 606 29/04/95 0:18 ROMANCE TXT 251 29/04/95 0:11 SONETO TXT 632 29/04/95 0:11 4 archivo(s) 1.489 bytes 41.531.392 bytes libres

Página 14 de 16Curso de MS-DOS Capítulo 15

Page 84: Curso De Ms-Dos

D:\>format d: ADVERTENCIA: SE PERDERAN LOS DATOS EN LA UNIDAD D: DE DISCO DURO. ¿Continúar con formato (S/N)?s Verificando el formato del disco. Guardando la información de RECONSTRUIR. Verificando 39.78M Formato completado. Escriba una etiqueta de volumen (11 caracteres, ENTRAR para ninguna) 41.619.456 bytes de espacio total en disco 41.619.456 bytes disponibles en disco 2.048 bytes en cada unidad de asignación. 20.322 unidades de asignación disponibles en disco. El número de serie del volumen es 392C-1DF3 D:\>dir El volumen de la unidad D no tiene etiqueta El número de serie del volumen es 392C-1DF3 Directorio de D:\ No se encontró el archivo D:\>unformat d: Restaura el área del sistema de su disco duro utilizando la imagen de archivo creada por el comando MIRROR.

!! ADVERTENCIA !! !! ADVERTENCIA !! ¡Este comando debe ser utilizado únicamente para la recuperación del uso inadvertido de los comandos FORMAT o RECOVER. Un uso diferente del comando UNFORMAT puede causar la pérdida de datos! Archivos modificados desde la creación de imagen de archivo MIRROR se perderan. Se busca en disco la imagen MIRROR La última vez que usó el comando FORMAT fue a la(s)22:39 el 05/09/95. Imagen de archivo MIRROR declarada válida. Está seguro que desea actualizar área del sistema de su unidad D (S/N)? s El área del Sistema de la unidad D ha sido reconstruida. Tal vez necesite reiniciar su sistema. D:\>dir El volumen de la unidad D no tiene etiqueta El número de serie del volumen es 401F-19FF Directorio de D:\ EMPRESA <DIR> 05/09/95 21:07 RECUERDO TXT 606 29/04/95 0:18

Página 15 de 16Curso de MS-DOS Capítulo 15

Page 85: Curso De Ms-Dos

ROMANCE TXT 251 29/04/95 0:11 SONETO TXT 632 29/04/95 0:11 4 archivo(s) 1.489 bytes 41.531.392 bytes libres D:\>

Creación de un disquete de arranque con UNFORMAT.COM

Suponga por un momento que por alguna razón se formatea accidentalmente su disco duro. Su ordenador posiblemente no arranque y si lo hace el disco estará vacío. Necesita el fichero UNFORMAT.COM y no lo tiene. Para prevenir esta situación, vamos a crear ahora mismo un disquete de arranque con el fichero UNFORMAT.COM.

1. Formateamos un disquete en la unidad A: con los ficheros del sistema.

C:\>format a: /s

2. Le copiamos el fichero UNFORMAT.COM del directorio C:\DOS

C:\DOS>copy unformat.com a:\

3. Probamos el disquete, lo rotulamos y lo guardamos en lugar seguro.

Funcionamiento de Unformat

Cuando se da un formato seguro a un disquete se realiza lo siguiente:

1. Se busca espacio en el área de datos para guardar el área del sistema (sector de arranque, FAT y directorio raíz) 2. Se copia el área del sistema del disco al espacio libre encontrado (no se refleja en la FAT). 3. Se escribe en el último sector del disco el sector donde comienza la imagen del área del sistema. Además, se graba la fecha y

hora.

Al escribir nueva información en un disquete recién formateado, posiblemente se sobrescriba la imagen del área del sistema. ¿Por qué? porque los grupos ocupados por dicha imagen están marcados como libres en la FAT.

Cuando se ejecuta Unformat se efectúa lo siguiente:

1. Lee el último sector del disco. Si no encuentra información muestra un aviso. 2. Se dirige al sector inicial de la imagen creada por Format. Lee los sectores correspondientes. Si no encuentra la imagen

completa da un aviso. 3. Si todo es correcto, sobrescribe el verdadero área del sistema con la imagen.

Índice · Arriba · Capítulo 16 · Publicaciones · Saulo.Net

Página 16 de 16Curso de MS-DOS Capítulo 15

Page 86: Curso De Ms-Dos

Capítulo 16 Msbackup

Índice · Capítulo 15 · Capítulo 17 · Publicaciones · Saulo.Net

16-1 Introducción

Realizar copias de seguridad de los datos del disco duro es una tarea imprescindible que debe convertirse en habitual.Las copias de seguridad permiten conservar en dos lugares diferentes aquellos datos de vital importancia. Desde un fallode hardware hasta un uso inadecuado existe un abanico de situaciones que pueden desembocar en pérdidas de datos. Lasestadísticas afirman que sería necesario un promedio de 2000 horas de trabajo para reconstruir la mayoría de discosduros. En cambio, si tiene un copia de seguridad reciente sólo tardará unos minutos.

Msbackup permite realizar y restaurar copias de seguridad del disco duro. En este capítulo no sólo aprenderá a manejar el programa, sino también a elegir el método de copia adecuado en cada situación.

Índice · Arriba · Publicaciones · Saulo.Net

16-2 Organización eficiente de un disco duro

Los ficheros de un disco duro se pueden clasificar en ficheros de programas y de usuario.

Los ficheros de programas son creados en el disco duro al instalar una determinada aplicación. Generalmente cada aplicación reside en uno o varios directorios claramente diferenciados de los demás.

Los ficheros de usuario son creados por el usuario cuando trabaja en una aplicación. En la mayor parte de los programas de aplicación se puede definir el directorio que almacenará estos ficheros.

De los primeros ficheros no es necesario hacer copias de seguridad. Si se estropea un programa del disco duro, lovolvemos a restaurar de los disquetes originales. Sin embargo, conviene duplicar estos disquetes con la orden Diskcopy y así evitar riesgos innecesarios.

Las copias de seguridad se realizarán únicamente de los ficheros de usuario. Para facilitar la molesta labor de separar losficheros de ambos tipos conviene introducirlos todos en un mismo directorio. Se puede crear un subdirectorio del raízllamado TRABAJOS. En este directorio se crean nuevos subdirectorios para contener los ficheros de usuario de cadaaplicación. El siguiente directorio TRABAJOS corresponde a un persona que trabaja con WordPerfect, CorelDraw yDbase.

Página 1 de 23Curso de MS-DOS Capítulo 16

Page 87: Curso De Ms-Dos

En primer lugar se crea el árbol de directorios y luego se indica a cada programa dónde debe guardar sus ficheros. Deesta forma se separan ambos tipos. Al realizar una copia de seguridad, sólo será necesario copiar el árbol de directoriosTRABAJOS.

Si utiliza aplicaciones basadas en Windows 3.1 ó 3.11 puede cambiar el directorio de trabajo de la siguiente forma:

1. Haga clic en el icono del Administrador de programas que carga la aplicación.

2. Seleccione el comando "Propiedades..." del menú Archivo.

3. Cambie el directorio de trabajo y pulse "Aceptar".

Página 2 de 23Curso de MS-DOS Capítulo 16

Page 88: Curso De Ms-Dos

Índice · Arriba · Publicaciones · Saulo.Net

16-3 Tipos de copias de seguridad

Msbackup realiza tres tipos copias:

Completa. Copia todos los ficheros elegidos del disco duro en disquetes. Todos los datos importantes se almacenan en un único grupo de copias.

Progresiva. Copia únicamente los ficheros nuevos o modificados desde la última copia de seguridad completa o progresiva. De esta forma la ejecución de la copia es más rápida. Sin embargo, deben guardarse todos los grupos de copias efectuados desde la copia completa.

Diferencial. Copia únicamente los ficheros nuevos o modificados desde la última copia de seguridad completa. Aunque el tiempo puede ser superior al invertido en copias progresivas, sólo deben almacenarse dos grupos de copias: la completa y la última diferencial.

Realizar copias de seguridad completas

Si sus datos no ocupan mucho espacio de disco, su elección es clara: realice copias de seguridad completas regularmente. Si modifica los datos a diario, las copias deberán efectuarse con intervalo de un día o dos. Ejemplo:

Todos los datos del disco duro se almacenan en la última copia completa.

Día semana Tipo de copia

Lunes Completa

Miércoles Completa

Viernes Completa

Página 3 de 23Curso de MS-DOS Capítulo 16

Page 89: Curso De Ms-Dos

Combinar copias completas con diferenciales o progresivas

Si sus ficheros de usuario ocupan gran cantidad de espacio en disco, es necesario combinar la copia completa con laprogresiva o diferencial.

Si utiliza ficheros diferentes cada día realice copias progresivas después de una completa. Observe el siguiente ejemplo:

Como veremos, al realizar ciclos de copias de seguridad existe un fichero llamado catálogo maestro que coordina todos los grupos de copias. Si el Sábado nos vemos obligados a recuperar un determinado fichero, Msbackup basándose en elcatálogo maestro nos pedirá automáticamente el disco que lo contiene: "Introduzca el disco número ... del grupo de copias ...". Todos los datos del disco duro se reparten entre la copia completa y las progresivas.

Si emplea los mismos ficheros cada día realice una copia completa seguida de copias diferenciales. Ejemplo:

Aunque conviene utilizar varios juegos de disquetes, también es posible crear la copia del Viernes sobre los disquetesdel Miércoles. Todos los datos del disco duro se reparten entre la copia completa y la última diferencial.

Índice · Arriba · Publicaciones · Saulo.Net

16-4 Glosario de MSBACKUP

Grupo de copias

Cada vez que realice una copia de seguridad ya sea completa, diferencial o progresiva estará creando un conjunto de unoo más disquetes llamado grupo de copias. Los disquetes de un grupo de copias tienen un orden concreto comenzandopor el disquete 1. Cada grupo de copias contiene un catálogo.

Día semana Tipo de copia

Lunes Completa

Miércoles Progresiva

Viernes Progresiva

Día semana Tipo de copia

Lunes Completa

Miércoles Diferencial

Viernes Diferencial

Página 4 de 23Curso de MS-DOS Capítulo 16

Page 90: Curso De Ms-Dos

Catálogo

Por cada grupo de copias se genera un catálogo. El mismo catálogo se graba en dos lugares: en el último disquete delgrupo de copias y en el disco duro. Si perdemos el catálogo del disco duro, es necesario introducir el último disquetepara recuperarlo.

Contiene la siguiente información:

Estructura de directorios del disco duro origen.

La entrada del directorio de cada fichero copiado.

El número total de ficheros copiados.

El tamaño total del grupo de copias.

El nombre del fichero de especificaciones usado.

La fecha de la copia de seguridad.

Gracias al catálogo, Msbackup puede restaurar ficheros individuales. Como tiene almacenados el nombre de los ficheroscopiados, podemos seleccionar sólo uno para restaurar. Msbackup lee en el catálogo en qué disquete se encuentra ydespués nos pide introducirlo.

Antes de restaurar un grupo de copias, debemos cargar el catálogo correspondiente.

El catálogo de cada grupo de copias se diferencia de los demás por un nombre específico. Vamos a analizar el nombredel catálogo CD50905A.FUL

Carácter Descripción

C Primera letra de unidad de disco duro que se copió

D Última letra de unidad de disco duro que se copió

5 Último dígito del año. El catálogo del ejemplo es del año 1995

09 Mes en que se efectuó la copia

05 Día en que se efectuó la copia

A Hace referencia a la primera copia realizada en el día. La letra B se refiere a la segunda copia del día con las mismas especificaciones, C la tercera y así sucesivamente

FUL La extensión indica el tipo de copia. FUL es una copia completa, INC progresiva y DIF diferencial

Página 5 de 23Curso de MS-DOS Capítulo 16

Page 91: Curso De Ms-Dos

Fichero de especificaciones

Un fichero de especificaciones contiene la siguiente información:

Ficheros de los que se hará copia de seguridad.

Destino de la copia de seguridad.

Tipo de copia.

Opciones de copia.

De esta forma se simplifica el proceso rutinario de realizar un mismo tipo de copia de seguridad de los mismos ficherosen el mismo destino y con opciones idénticas. Msbackup soporta hasta 50 ficheros de especificaciones distintos.

Los ficheros de especificaciones se gestionan desde el menú Archivo. Tienen extensión SET.

Si no creamos uno nuevo ni elegimos uno existente, se selecciona de forma automática el fichero de especificacionesDEFAULT.SET. No hay ningún problema en trabajar habitualmente con este fichero.

Ciclo de copias

Un ciclo de copias es un conjunto de grupos de copias efectuados de manera regular. Un ciclo de copias comienza conuna copia completa e incluye todas las copias progresivas o diferenciales posteriores.

Si el Lunes efectuamos una copia completa, el Miércoles una progresiva y el Viernes otra progresiva; habremos creadoun ciclo de copia de tres días.

Si todos los días de la semana realizamos una copia completa, el ciclo de copia será de un día.

Catálogo maestro

Es útil al trabajar con ciclos de copias superiores a un día. El catálogo maestro engloba todos los catálogos del ciclo decopias. Adopta el mismo nombre que el fichero de especificaciones usado al realizar la copia pero extensión CAT.

Permite recuperar cualquier fichero del ciclo de copias. Si se realizan varias copias de seguridad de los mismos ficheros,es posible encontrar varias versiones de uno mismo. Si el Lunes crea el fichero TEXTO.TXT, hace una copia completa yel Martes modifica el fichero y realiza una progresiva; habrá generado dos versiones de TEXTO.TXT

Si deseamos restaurar el fichero TEXTO.TXT, el catálogo maestro ofrecerá la versión más reciente (la del Martes). Sinembargo, se puede optar por una versión anterior (la del Lunes).

Índice · Arriba · Publicaciones · Saulo.Net

Página 6 de 23Curso de MS-DOS Capítulo 16

Page 92: Curso De Ms-Dos

16-5 Iniciar MSBACKUP

Cuando ejecutemos el programa por primera vez, aparecerá la siguiente pantalla:

C:\>msbackup

Pulsamos Enter para comenzar la configuración de Msbackup para nuestro ordenador. El programa se ejecutará deforma automática tomando las selecciones por el usuario. Lea atentamente los cuadros de diálogos mostrados enpantalla.

Al ejecutar Msbackup por primera vez, éste se configura automáticamente

para nuestro ordenador.

Las configuraciones de pantalla y ratón ya se han seleccionado. Pulse Enter para continuar.

Página 7 de 23Curso de MS-DOS Capítulo 16

Page 93: Curso De Ms-Dos

Para realizar esta prueba retire los disquetes de las unidades de disco y presione la tecla Enter.

Se acaban de configurar las unidades de disquete de nuestro sistema. Pulse Enter para proseguir. A continuación serealizan las pruebas de velocidad del procesador y de lectura del disco duro:

Página 8 de 23Curso de MS-DOS Capítulo 16

Page 94: Curso De Ms-Dos

La pantalla anterior pide confirmación antes de efectuar la Prueba de compatibilidad. Si dispone de dos disquetesiguales _formateados o no_, pulse Enter. Si la prueba resulta correcta significa que su sistema está preparado pararealizar copias de seguridad fiables. También puede ignorar la prueba y realizarla en otro momento. Tanto si realiza laprueba como si no, aparecerá la siguiente pantalla:

Pulse Enter para hacer permanente la configuración establecida. Msbackup ha quedado configurado para realizar copiasde seguridad fiables. La siguiente pantalla es el menú principal de Msbackup:

El cuadro "Versión 6.0" contiene los siguientes botones:

Copiar - Hace una copia de seguridad del disco duro.

Restaurar - Restablece una copia de seguridad desde disquetes.

Comparar - Compara la información del disco duro con su copia de seguridad.

Página 9 de 23Curso de MS-DOS Capítulo 16

Page 95: Curso De Ms-Dos

Configurar - Cambia la configuración de la pantalla, ratón y disqueteras. También permite realizar la Prueba de compatibilidad.

Abandonar - Termina la ejecución de Msbackup.

Índice · Arriba · Publicaciones · Saulo.Net

16-6 Crear copias de seguridad

Para realizar una copia de seguridad de todos o algunos ficheros del disco duro pulsamos sobre el botón "Copiar" delmenú principal. Si no hemos seleccionado ningún fichero de especificaciones, se cargará el fichero DEFAULT.SET.

La siguiente imagen muestra el cuadro "Copiar". Para desplazarse por los elementos del cuadro puede utilizar las teclasTab o Mays+Tab (o el ratón). Aunque en la figura no se aprecia, cada elemento posee una letra resaltada. Podemosacceder a un elemento pulsando Alt+LetraResaltada. Las teclas válidas son las siguientes:

Teclas Elemento

Alt+E Archivo de especificaciones.

Alt+I Cuadro Copiar de:

Alt+P Copiar en:

Alt+L Seleccionar archivos...

Alt+T Tipo de copia.

Alt+O Opciones...

Alt+N Iniciar copiar.

Esc Cancelar.

Página 10 de 23Curso de MS-DOS Capítulo 16

Page 96: Curso De Ms-Dos

Elegir un fichero de especificaciones

En primer lugar debemos elegir un fichero de especificaciones. Si el elemento "Archivo de especificaciones:" nomuestra el correcto podemos seguir diferentes caminos.

Para crear un nuevo fichero, seleccionamos el comando "Guardar como..." del menú Archivo. El nuevo fichero contendrá la configuración actual.

En este caso el directorio donde se guardará el fichero es C:\MSBACKUP, para seleccionar un nuevo

Página 11 de 23Curso de MS-DOS Capítulo 16

Page 97: Curso De Ms-Dos

directorio pulsamos Alt+D. Con la tecla Espacio nos desplazamos por el árbol de directorios del disco duro (en el ejemplo hay dos discos duros, el C y el D).

Pulsamos Alt+N e introducimos el nombre del nuevo fichero de especificaciones. Si escribimos uno existente se sobrescribirá. El elemento "Descripción:" permite introducir un breve texto que identifique al fichero.

Finalmente pulsamos Enter para crear el nuevo fichero de especificaciones.

Para abrir un fichero existente seleccionamos el elemento "Archivo de especificaciones:" en el cuadro Copiar:

Con las Flechas nos movemos por los ficheros disponibles. Pulsamos Espacio para seleccionar y Enter para aceptar laselección.. Si el fichero de especificaciones no se encuentra en la lista utilice el comando "Abrir..." del menú "Archivo".Con este comando se puede abrir un fichero de especificaciones ubicado en cualquier directorio del disco duro.

Seleccionar el origen de la copia

Desde el cuadro "Copiar" pulsamos Alt+I para acceder al cuadro "Copiar de:". Este cuadro contiene una lista de lasunidades de disco duro o unidades de red disponibles en nuestro sistema. Para elegir todos los ficheros de una unidad, pulse Espacio sobre ella (otra vez Espacio para desmarcarla). Para elegir algunos ficheros de la unidad resaltada, pulseEnter. Se muestra el cuadro "Seleccionar archivos a copiar":

Página 12 de 23Curso de MS-DOS Capítulo 16

Page 98: Curso De Ms-Dos

Para desplazarse por este cuadro utilice el Tabulador. En cada pulsación de esta tecla accedemos a una zona del cuadrosegún este orden: selección de ficheros, botones, selección de unidad y selección de directorios. Dentro de cada zona nos desplazamos mediante las Flechas.

En la zona de directorios elegimos los que serán copiados. Si pulsamos Espacio se selecciona el directorio completo.Los directorios sin ficheros no pueden seleccionarse. Para seleccionar sólo unos ficheros de un directorio nos situamossobre él y pulsamos Tabulador. Con la tecla Espacio vamos seleccionado los ficheros para copiar del directorio.

Con el ratón se pulsa doble clic sobre un directorio o fichero para marcarlo. Además se pueden seleccionar árboles dedirectorios de manera sencilla: Se hace doble clic en el primer directorio y se arrastra hasta el último. Todos quedaránseleccionados.

Observe la ilustración anterior. El directorio \TRABAJOS\BATH se ha seleccionado completo; el directorio\TRABAJOS\CD está seleccionado parcialmente; el directorio \TRABAJOS\PM no se selecciona pues está vacío; y losdirectorios \TRABAJOS\PM\MSDOS y \TRABAJOS\WP están seleccionados íntegros.

Fíjese en el elemento "Archivos selec.:". Muestra el número de ficheros seleccionados, así como el total de Kilobytesocupados.

Pulse Enter para regresar al cuadro "Copiar".

Seleccionar el destino de la copia

Desde el cuadro "Copiar" pulsemos Alt+P, se muestra el cuadro "Copiar en":

Página 13 de 23Curso de MS-DOS Capítulo 16

Page 99: Curso De Ms-Dos

Ayúdese con las Flechas y con la tecla Espacio para seleccionar el destino de la copia. El ordenador del ejemplo poseedos disqueteras de 3½ HD. Msbackup permite introducir disquetes de 3½ HD (1.44 Mb) o de 3½ DD (720 K). La opcióntercera y la sexta se utilizan para efectuar la copia en dos unidades iguales: el primer disquetes lo copia en la unidad A:,el segundo en la unidad B:, el tercero en la A: y así hasta terminar la copia.

También podemos grabar una copia de seguridad en una unidad de disco duro o en cualquier otra reconocida por ms-dos. Para ello seleccionamos la opción "Unidad y ruta MS-DOS". En este caso al regresar al cuadro "Copiar" semostrará lo siguiente:

Nos está pidiendo el directorio donde se efectuará la copia de seguridad. En el directorio introducido, Msbackup crearáotro llamado como el fichero de especificaciones; dentro de éste último, otro directorio llamado como el catálogo ydentro de éste creará finalmente la copia de seguridad.

Elegir el tipo de copia

Desde el cuadro "Copiar" pulsamos Alt+T para acceder al cuadro "Tipo de copia":

Página 14 de 23Curso de MS-DOS Capítulo 16

Page 100: Curso De Ms-Dos

Con las Flechas y la tecla Espacio, seleccionamos el tipo de copia deseada. Para aceptar pulsamos Enter.

Elegir las opciones

Desde el cuadro "Copiar" pulsamos Alt+O para acceder a las opciones de la copia de seguridad. Se muestra el cuadro"Opciones de Copiar"

A continuación se describe cada una de las opciones disponibles:

Verificar datos (leer y comparar) - Después de escribir los datos en el disquete los lee para comprobar que fueronescritos correctamente. Aunque el proceso de copia es más lento, se recomienda activar esta opción para garantizar lafiabilidad de la copia.

Comprimir datos - Realiza una serie de operaciones para copiar más datos en menos espacio. Como el número dedisquetes es menor con esta opción activada, la copia se efectúa con mayor rapidez. Si desea traspasar datos entre lasversiones de ms-dos 6.0 ó 6.20 y la versión 6.22 debe saber que los formatos de compresión son incompatibles. El programa Msbackup proporcionado con la versión 6.22 no reconoce copias comprimidas realizadas con la versión 6.0 ó6.2 y viceversa. En estas ocasiones debe desactivar esta casilla de verificación. Una copia sin comprimir es compatiblecon todas las versiones.

Proteger grupos de copias con contraseña - Evita la restauración de copias de seguridad a usuarios no autorizados.Antes de crear el grupo de copias, se pedirá un contraseña. La contraseña distingue entre mayúsculas y minúsculas.

Página 15 de 23Curso de MS-DOS Capítulo 16

Page 101: Curso De Ms-Dos

Al intentar restaurar _más concretamente, al cagar el catálogo_ un grupo de copias protegidas, Msbackup pedirá lacontraseña:

Aviso de sobrescritura de disquetes usados - Si está activada esta opción, Msbackup informará si se introduce undisquete usado como destino de la copia de seguridad. En estos casos, Msbackup permite introducir otro disquete,sobrescribir el actual o abandonar la copia.

Dar formato a los disquetes siempre - Con esta opción desactivada, Msbackup dará formato sólo a aquellos disquetesque lo necesiten. Con ella activada, se formatean todos los disquetes utilizados en la copia. Se recomienda desactivarla.

Usar corrección de errores en disquetes - Crea un código de corrección de errores en los disquetes usados. Aunqueocupa un 10% de la capacidad total del disco, permite recuperar posibles errores en los disquete. Si está desactivada lacopia puede resultar inservible. Es muy recomendable activar esta opción.

Conservar catálogos antiguos - Si está desactivada, Msbackup borra los catálogos usados en el anterior ciclo de copiasdel disco duro. Si se activa, los catálogos se conservan. Recuerde que el catálogo se graba también en el último disquetede cada grupo de copias. Para evitar catálogos innecesarios en el disco duro, se recomienda desactivarla.

Avisos sonoros - Produce pitidos para solicitar la atención del usuario.

Salir después de copiar - Abandona Msbackup al término de la copia de seguridad.

Iniciar la copia de seguridad

Página 16 de 23Curso de MS-DOS Capítulo 16

Page 102: Curso De Ms-Dos

Una vez realizadas todas las selecciones anteriores, es momento de empezar la copia de seguridad. El cuadro "Copiar"indica los disquetes que se usarían sin compresión de datos. Prepare los disquetes necesarios y etiquete cada uno con elnombre del catálogo y número de orden. Msbackup pedirá los disquetes de forma automática. Cuando aparezca elmensaje " [ Inserte disquete x ] ", podemos sacar el disquete actual e introducir el siguiente _aunque la luz de ladisquetera permanezca encendida_. No es necesario pulsar ninguna tecla para indicar al ordenador la inserción del nuevodisquete. En la siguiente pantalla, Msbackup muestra cómo evoluciona la copia:

Índice · Arriba · Publicaciones · Saulo.Net

16-7 Restaurar copias de seguridad

Desde el menú principal, elegimos el botón Restaurar. El cuadro "Restaurar" aparece en pantalla:

Página 17 de 23Curso de MS-DOS Capítulo 16

Page 103: Curso De Ms-Dos

Puede desplazarse por los elementos del cuadro con las teclas Tab o Mays+Tab o bien, utilizando las siguientessecuencias de teclas:

Elegir el catálogo

Antes de restaurar una copia de seguridad, es necesario cargar el catálogo correspondiente. Para restaurar un únicogrupo de copias, debemos seleccionar su catálogo asociado. En cambio, para restaurar todo un ciclo de copias, es necesario cargar el catálogo maestro. Recuerde que un catálogo maestro tiene por nombre el del fichero deespecificaciones utilizado y por extensión, CAT.

Teclas Elemento

Alt+U Catalogo de grupo de copias.

Alt+G Catálogo...

Alt+E Restaurar de:

Alt+R Restaurar en:

Alt+H Cuadro "Restaurar Archivos".

Alt+L Seleccionar archivos...

Alt+O Opciones...

Alt+I Iniciar Restaurar.

Página 18 de 23Curso de MS-DOS Capítulo 16

Page 104: Curso De Ms-Dos

Para recuperar un catalogo almacenado en el disco duro, pulsamos Alt+U desde el cuadro "Restaurar". Aparecerá unalista de los catálogos maestros y catálogos de grupos de copias almacenados en el directorio del programa_generalmente C:\DOS_. Aunque el catálogo se graba de forma predeterminada en el directorio del programa, tambiénes posible recuperar un catálogo almacenado en otro directorio. Para ello seleccionamos el botón "Catálogo..." (Alt+G)desde el cuadro "Restaurar". Se muestra el cuadro "Seleccionar catálogo".

Ahora podemos desplazarnos por el árbol de directorios del disco duro, hasta encontrar el catálogo. Una vez resaltado elcatálogo, elegimos el botón "Cargar".

Los catálogos maestros se almacenan únicamente en el disco duro, no en el destino de la copia.

Si el catálogo del grupo de copias no está en el disco duro, debemos recuperarlo desde los disquetes. Pulsamos el botón"Recuperar..." (Alt+R) desde el cuadro "Seleccionar catálogo":

Si optamos por una unidad de disquete, Msbackup nos pedirá introducir el último disquete del grupo de copias.

Si nuestro caso es restaurar un catálogo de otra unidad, seleccionamos la opción "Unidad y ruta MS-DOS". Pulsamos Tab y escribimos la localización de la copia de seguridad. Para recuperar la copia del ejemplo siguiente se debe escribir"C:\MSBACKUP\DEFAULT\CC50905A.FUL".

Página 19 de 23Curso de MS-DOS Capítulo 16

Page 105: Curso De Ms-Dos

Tanto si recuperamos el catálogo de una unidad de disquete o de otra unidad, éste se copiará en el directorio delprograma y quedará resaltado en el cuadro "Seleccionar catálogo". Pulsamos sobre "Cargar" (Enter).

El botón "Reconstruir..." del cuadro "Seleccionar catálogo" se utiliza cuando se han perdido ambas copias delcatálogo: la del disco duro y la almacenada en el destino de la copia. Msbackup pide cada uno de los disquetes del grupode copias hasta reconstruir el catálogo.

El botón "Eliminar" del cuadro "Seleccionar catálogo" borra del disco duro el catálogo resaltado.

Seleccionar el origen de la restauración

Si la unidad que contiene la copia de seguridad está mal seleccionada, pulsamos Alt+E para elegir el tipo de discoadecuado.

Accedemos al cuadro "Restaurar archivos" (Alt+H) para seleccionar que ficheros serán restaurados. Pulsando Espaciosobre una unidad, se seleccionan todos sus ficheros (otra vez Espacio se deseleccionan). Para seleccionar sólo algunosficheros de la unidad resaltada se pulsa Enter. Aparece el cuadro "Seleccionar archivos a restaurar":

Para desplazarse por este cuadro utilice el Tabulador. En cada pulsación de esta tecla accedemos a una zona del cuadrosegún este orden: selección de ficheros, botones, selección de unidad y selección de directorios. Dentro de cada zona nos desplazamos con las Flechas.

En la zona de directorios elegimos los directorios que serán restaurados. Si pulsamos Espacio se selecciona el directorio

Página 20 de 23Curso de MS-DOS Capítulo 16

Page 106: Curso De Ms-Dos

completo. Los directorios sin ficheros no pueden seleccionarse. Para restaurar sólo unos ficheros de un directorio nossituamos sobre él y pulsamos Tabulador. Con la tecla Espacio vamos seleccionado los ficheros.

En la ilustración anterior, observe el signo "+" colocado en las entradas del directorio MSB01.PCX y MSB02.PCX. Estosignifica que hay varias versiones del mismo fichero en dos o más grupos del ciclo de copias.

Aunque de forma automática se selecciona la versión más moderna, se puede cambiar la versión de un fichero resaltadopulsando el botón "Versión" (Alt+V):

Pulse el botón "Aceptar" del cuadro "Seleccionar archivos a restaurar" para regresar al cuadro "Restaurar".

Seleccionar el destino de la restauración

Pulsando Alt+R accedemos al cuadro "Restaurar en":

Ubicaciones originales - Coloca los ficheros seleccionados en el mismo lugar que tenían al copiarlos.

Otras unidades - Coloca los ficheros seleccionados en los mismos directorios pero en otra unidad de disco duro.

Otros directorios - Sitúa los ficheros seleccionados en otros directorios diferentes a los originales. Msbackup pedirá el nuevo nombre para cada uno de los directorios.

Página 21 de 23Curso de MS-DOS Capítulo 16

Page 107: Curso De Ms-Dos

Seleccionar las opciones

Pulsando Alt+O desde el cuadro "Restaurar" se accede al cuadro "Opciones de Restaurar":

Verificar al restaurar (leer y comparar) - Comprueba que los datos se escriban correctamente en el disco duro. Se recomienda desactivarla para aumentar la velocidad. Si algún fichero se escribe incorrectamente, se puede recuperar de nuevo desde los disquetes de la copia de seguridad.

Confirmar - Muestra avisos en pantalla durante el proceso de restauración antes de crear un directorio, un fichero o sobrescribir un fichero.

Restaurar directorios vacíos - Si está desactivada, se copian en el disco duro destino únicamente los directorios con ficheros. Si se activa, se crea todo el árbol de directorios del disco duro origen en el destino. Si algún directorio no se había copiado, se crea vacío. Salvo casos muy concretos, es muy recomendable desactivarla.

Avisos sonoros - Produce pitidos para solicitar la atención del usuario.

Salir después de restaurar - Abandona Msbackup al final de la restauración.

Iniciar la restauración

Una vez realizadas todas las selecciones anteriores, es el momento de comenzar la restauración. Msbackup pediráordenadamente los disquetes necesarios. La siguiente pantalla muestra el proceso de la restauración:

Página 22 de 23Curso de MS-DOS Capítulo 16

Page 108: Curso De Ms-Dos

Índice · Arriba · Capítulo 17 · Publicaciones · Saulo.Net

Página 23 de 23Curso de MS-DOS Capítulo 16

Page 109: Curso De Ms-Dos

Capítulo 17 Los virus informáticos

Índice · Capítulo 16 · Capítulo 18 · Publicaciones · Saulo.Net

17-1 Introducción: Los virus informáticos

Los virus informáticos son programas diseñados para causar de forma intencionada daño a nuestro sistema. Los virusposeen una gran facilidad para reproducirse dentro de los discos. Debemos prestar mucha atención al concepto de virus = programa: un virus es un programa, es software. Este concepto implica lo siguiente:

Ha sido diseñado por una persona. Por tanto, un virus no nace de la nada: ha sido programado con antelación.

Se transmite por las mismas vías que el software normal: discos, vía módem o a través de una red de ordenadores.

No puede estropear los componentes físicos del ordenador, el hardware. Solamente puede estropear los datos grabados en los discos, no al disco como tal. Un virus se elimina con un programa denominado anti-virus. En el mejor de los casos se puede eliminar el virus sin afectar a los datos. De lo contrario, cuando no se pueda separar el virus de nuestros datos, habrá que sacrificar nuestros trabajos para eliminar el virus.

Índice · Arriba · Publicaciones · Saulo.Net

17-2 Motivos para fabricar un virus

Los motivos que pueden llevar a un programador a crear un virus informático pueden ser diferentes:

Deseo de demostrarse a sí mismo que es capaz de hacerlo.

Deseo de producir un daño a una entidad o a una persona específica. Por ejemplo, una persona puede vengarse de aquella empresa que le despide introduciendo un virus en sus sistemas.

Intereses económicos: crear el virus, extender la infección a empresas importantes y luego, venderles el anti-virus que lo elimina.

Índice · Arriba · Publicaciones · Saulo.Net

17-3 Clasificación de los virus

Se pueden clasificar en dos tipos principales: a) aquellos que residen en el sector de arranque de un disco y b) aquellos que residen en un fichero ejecutable (EXE o COM).

Página 1 de 11Curso de MS-DOS Capítulo 17

Page 110: Curso De Ms-Dos

En ambos tipos, el objetivo principal es reproducirse de la forma más rápida posible sin que se note (estado de latencia). Cuando el virus considera que se ha extendido lo suficiente pasa al estado de activación. Los efectos del programa en este periodo son tan variados como alcance la imaginación de los autores: unos destruyen datosdifícilmente recuperables y otros se limitan a mostrar mensajes inofensivos en la pantalla.

Virus de sector de arranque

Estos virus se instalan en memoria cada vez que arrancamos con el disco que lo contiene. Si un virus infecta el sector dearranque de un disco duro, cada vez que arranquemos el ordenador (con el disco duro) el virus se acomodará en lamemoria, actuando como filtro entre el sistema operativo y nosotros.

En esta ventajosa posición, el virus podría empezar a destruir datos, pero es poco probable. Si lo hiciera, el usuario sedaría cuenta y pondría remedio: el principal objetivo del virus no se alcanzaría. Lo más normal es que busque nuevasvíctimas antes de pasar al estado de activación.

Estos virus suelen interferir los servicios del sistema relacionados con los discos. Cuando se introduce un disquete, elvirus lo detecta, comprueba que esté sin infectar y si se dan las condiciones propicias (por ejemplo, que el disco esté sinproteger), infecta su sector de arranque.

El virus debe realizar todas estas acciones de forma oculta al usuario. Si éste advirtiera alguna irregularidad en elfuncionamiento del sistema tomaría medidas para eliminar el virus, impidiendo su objetivo principal: la reproducción.

Cuando el virus considere que ha infectado suficientes disquetes, pasará al estado de activación, destruyendo -generalmente- los datos del disco duro.

Virus de fichero

El código de estos virus se añade o se superpone a un fichero ejecutable (un procesador de textos, el command.com... ) yentran en funcionamiento únicamente al ejecutar el fichero infectado. Lógicamente, los ficheros están para ser ejecutados, por lo que tarde o temprano lo cargaremos, entrando en funcionamiento el programa intruso.

Los virus de fichero residentes se cargan en memoria cuando ejecutamos el programa. A partir de este momento, elvirus tratará de infectar otros ficheros ejecutables (COM o EXE). Como la memoria RAM es temporal, al apagar elordenador se borrará el virus de la memoria.

Los virus de fichero de acción directa no se cargan en memoria, solamente funcionan el cargarse un fichero infectado.En estos casos, el virus se añade en alguna posición al fichero sano. Cuando ejecutemos el fichero (ahora infectado),primero toma el control el virus, actúa y luego da paso al verdadero fichero. En el escaso tiempo que actúa, el virusdeberá intentar infectar todos los ficheros que tenga a su alcance lo más rápidamente posible. Si el usuario observarademora, el intruso se delataría a sí mismo.

Los virus de fichero de sobrescritura superponen su propio código sobre el del programa sano. Cuando indicamos a ms-dos que ejecute un fichero con virus de este tipo, el virus se carga en la memoria y muestra en pantalla un mensaje de

Página 2 de 11Curso de MS-DOS Capítulo 17

Page 111: Curso De Ms-Dos

error para intentar engañar al usuario. El fichero primitivo ya no existe y por tanto no puede funcionar. Cuandoobservamos que cada vez menos programas arrancan, es señal inequívoca de un desastre, pero quizás sea ya demasiadotarde para poner remedio.

Índice · Arriba · Publicaciones · Saulo.Net

17-4 Medidas para evitar el contagio

No utilizar software ilegal o de procedencia dudosa. Revisar todos los disquetes que entren de fuera con un buen anti-virus, como el suministrado por ms-dos: Msav.

Realizar copias de seguridad de nuestros trabajos en el disco duro de forma periódica. Los programas deberíamos tenerlos en disquetes, por consiguiente sólo tenemos que preocuparnos de los datos fruto de nuestro trabajo. ms-dos posee una inmejorable herramienta para realizar copias de seguridad: Msbackup.

Proteger todos los disquetes contra escritura. Una disquetera no puede escribir en un disquete protegido. Ningún programa, virus incluidos, es capaz de grabar información en un disquete protegido: la disquetera posee unos mecanismos físicos que lo impiden.

Si estamos conectados a un servicio electrónico (como Compuserve o Microsoft Network) o a una red de ordenadores (Internet), guardar las máximas precauciones: utilizar un anti-virus transparente al usuario, pero que nos protega de virus constantemente. El ms-dos posee un anti-virus de este tipo: Vsafe.

Utilizar un anti-virus de forma regular en el disco duro (Msav). La mayoría de los virus destruyen la estructura del disco. Podemos utilizar el programa Chkdsk o Scandisk para comprobar que el disco duro está en perfectas condiciones. Si uno de estos programas encuentra infinitos errores en el disco, no los arregle, ataque primero la raíz del problema -el virus-. Y una vez saneado el disco, intente utilizar estas herramientas por si consiguenrecuperar algo.

Índice · Arriba · Publicaciones · Saulo.Net

17-5 Síntomas generales de la presencia de un virus

Los siguientes síntomas pueden aparecer cuando el virus se encuentra todavía en estado de latencia:

El ordenador trabaja más lento. Los virus para realizar su trabajo necesitan analizar cada acción del sistema operativo y seleccionar en cuáles puede actuar y en cuáles no.

Aumenta el tamaño de los ficheros. Los virus de fichero (menos los de sobrescritura) necesitan añadir su código al del propio programa.

La fecha o la hora del fichero ha variado. Algunos virus modifican estos parámetros para conocer si un fichero ha

Página 3 de 11Curso de MS-DOS Capítulo 17

Page 112: Curso De Ms-Dos

sido infectado por ellos mismos y evitar un doble contagio. Suelen utilizar códigos especiales: segundos por encima de sesenta, años por encima del 2100, etc...

La memoria parece menor al utilizar la orden Mem. Los virus engañan al sistema operativo para impedir serdetectados en memoria. Si tenemos 640K de memoria convencional, una cifra inferior puede indicar presencia de virus.

Algunos programas no funcionan. Puede ocurrir si el virus ha sobrescrito la información de los ficheros ejecutables.

Hay menos espacio libre en disco que antes. El virus se ha instalado en el disco ocupando espacio.

Alguno o varios de los siguientes síntomas aparecen cuando el virus está ejerciendo su acción destructora:

Desaparición misteriosa de ficheros. El virus ha borrado algunos ficheros o ha modificado la FAT.

En algunos ficheros aparece información de otros. El virus ha modificado la FAT. Los programas Chkdsk oScandisk detectan estas anomalías.

Errores de lectura en el disco. Suelen aparecer cuando ha sido dañada la estructura del disco. El sistema operativono entiende la información del disco y muestra errores.

El sistema no arranca. El virus ha estropeado el sector de arranque del disco duro, sólo podemos arrancar con undisquete en la unidad A:. La información puede estar disponible todavía o quizás no y el disco duro está totalmente inaccesible.

Índice · Arriba · Publicaciones · Saulo.Net

17-6 Los anti-virus

Son programas diseñados para detectar y eliminar virus conocidos y desconocidos. Los fabricantes de los programasanti-virus poseen todo un catálogo con el nombre de los virus conocidos, cómo identificarlos y como eliminarlos.

El proceso seguido por los programas anti-virus suele ser el siguiente: analizar la memoria, el sector de arranque y luego, cada uno de los ficheros ejecutables del disco. Para buscar los virus de fichero, acostumbran a analizar cadafichero buscando unas cadenas de caracteres específicas que identifican a cada virus. El problema se complica cuandolos virus utilizan técnicas de polimorfismo, es decir, ir adoptando formas diferentes en cada infección.

Los anti-virus disponen de múltiples formas de detección. Sin embargo, se pueden agrupar en dos grandes grupos: a)técnicas para detectar los virus conocidos y b) técnicas inteligentes que detectan virus desconocidos. Lógicamente, en estos casos, el programa detectará un posible virus pero no podrá ni asegurarlo ni decirnos su nombre. No todos los anti-virus son capaces de detectar virus desconocidos.

Es también muy importante que los anti-virus no sólo detecten correctamente el nombre del virus sino que la limpieza sea la mejor posible. Esta claro que siempre se puede eliminar un virus si formateamos el disco infectado a bajo nivel.

Página 4 de 11Curso de MS-DOS Capítulo 17

Page 113: Curso De Ms-Dos

Por esta razón sólo se justifica un programa anti-virus si es capaz de apartar los datos válidos del intruso y eliminar aéste último. Pero ni el mejor anti-virus es capaz de detectarlos a todos, ni todos los virus se pueden limpiar sin afectar alos datos.

Otro grupo de anti-virus son los residentes en memoria. Se suelen cargar en la memoria al arrancar el ordenador yrevisan algunas acciones del sistema operativo para comprobar que no hay movimiento de virus. Poseen la ventaja deestar siempre alerta y la desventaja de ocupar memoria.

Recuerde, en todo momento, que la mejor medida para evitar la pérdida de datos es realizar de forma periódica copias deseguridad.

A partir de la versión 6.0, ms-dos lleva incorporadas dos herramientas anti-virus llamadas Msav (Microsoft anti-virus) y Vsafe.

Msav detecta y limpia virus en la memoria, sector de arranque del disco y ficheros del disco.

Vsafe es un anti-virus residente en memoria que, entre otras funciones, nos da mensajes de aviso si se intenta formatear el disco duro o si se va a modificar el sector de arranque del disco duro. Si Vsafe detecta algún virus, hay que utilizar Msav para limpiarlo.

A continuación se describe la utilización de cada una de estas herramientas.

Índice · Arriba · Publicaciones · Saulo.Net

17-7 MSAV

Para detectar la presencia de virus en un disco escribimos MSAV a continuación del símbolo del sistema. Aparecerá uninterface gráfico basado en menús. En todo momento puede pulsar F1 para acceder a una completa ayuda sensible al contexto.

Nota: Si desea que MSAV revise la memoria y el disco cada vez que arranca el ordenador, debe introducir la línea MSAV /P al final del AUTOEXEC.BAT. Si utiliza unidades de red, agregue además el parámetro /L para limitar el examen a las unidades locales.

Página 5 de 11Curso de MS-DOS Capítulo 17

Page 114: Curso De Ms-Dos

Después de cargar el programa, aparece el llamado Menú rápido que posee 5 botones con diversas funciones. Pararealizar un chequeo de un disco, primero elegimos la unidad (F2), luego establecemos las opciones (F8) y posteriormente elegimos entre detectar simplemente (F4) o detectar y limpiar (F5). Para salir pulsamos F3.

Observe la última línea de la pantalla que contiene un esquema del cometido de cada tecla de función. Nos damos cuentaque todas las opciones del menú rápido se encuentran representadas también mediante una tecla de función. En estoscasos podemos elegir el botón oportuno con las teclas del cursor o pulsar la tecla de función asociada.

Vamos a describir todo lo que se puede hacer desde el menú rápido.

Ayuda (F1) Ofrece información de ayuda. Al salir de la ayuda regresamos al mismo punto desde donde la pedimos. Cuando tenga dudas sobre lo que está haciendo en ese momento, pulse F1 y aparecerá una ayuda específica. Con las teclas de función puede acceder a un índice de contenidos y a un glosario de términos, entre otras informaciones de ayuda. Pulse F3 o Esc para salir de la ayuda.

Seleccionar nueva unidad (F2) En la pantalla se muestra la unidad para explorar. Para cambiarla, pulse F2 o seleccione el tercer botón.

Salir (F3) Termina la ejecución de Msav. Aparece una pantalla de despedida. Si activamos la casilla "Guardar configuración", se graban las opciones elegidas para la siguiente vez.

Detectar (F4) Detecta virus en la unidad elegida.

Detectar y limpiar (F5) Detecta y limpia virus en la unidad elegida.

Borrar (F7) Borra los ficheros con los totales de verificación creados por Msav. Estos ficheros los utiliza el anti-virus para guardar algunos datos de cada fichero ejecutable (tamaño, atributos, fecha...) y comprobar si estos datos han variado. Estos ficheros llamados CHKLIST.MS se crean en todos los directorios del disco.

Opciones (F8) Establece las opciones para la detección de virus. Cada una de las opciones se explica más

Página 6 de 11Curso de MS-DOS Capítulo 17

Page 115: Curso De Ms-Dos

abajo.

Lista (F9) Visualizar la lista de todos los virus conocidos por Msav. Si tenemos interés en un virus determinado podemos seleccionarlo para obtener información del virus. Esta información nos dice el tipo del virus, sus características y efectos secundarios. Al final de la lista se encuentra el total de virus detectados por Msav.

Opciones de Msav

Si pulsamos F8 o seleccionamos el botón "Opciones" del Menú rápido accedemos a un cuadro de diálogo denominado"Definición de opciones":

A continuación se describe cada casilla de verificación.

Verificar integridad Si está activada verifica la integridad de cada fichero, es decir, comprueba que no haya ninguna modificación desde la última ejecución de Msav. Si está activada pueden aparecer falsas alarmas. Por ejemplo, si cambiamos el fichero CONFIG.SYS, Msav lo detecta y nos avisa. Si al explorar el disco, Msav muestra cambios en un fichero que nosotros no hemos variado, puede ser síntoma de virus. Utiliza los ficheros CHKLIST.MS de cada directorio. Es recomendable tenerla activada.

Crear nuevos totales de verificación Si está activada, se actualizan los ficheros CHKLIST.MS de cada directorio con los nuevos valores. Se recomienda activarla.

Crear totales en disquete Si están activadas la casilla anterior y ésta, actualiza los ficheros CHKLIST.MS de los disquetes. Se recomienda tenerla desactivada.

Desactivar sonido de alarma Cuando Msav detecta un posible virus hace sonar un aviso por el altavoz del ordenador. Para evitar el sonido, activamos esta casilla.

Crear copia Con esta casilla activada, Msav crea una copia del fichero infectado antes de limpiarlo. El fichero infectado quedará con extensión VIR y el sano con el nombre original. Es recomendable tenerla desactivada.

Crear informe Crea un fichero en el directorio raíz de la unidad con el resultado de la exploración llamado CPAV.RPT.

Mensaje-guía de detección Muestra un cuadro de diálogo al detectar un posible virus. Los tres mensajes

Página 7 de 11Curso de MS-DOS Capítulo 17

Page 116: Curso De Ms-Dos

más usuales se describen más adelante. Si está desactivada, Msav no pide confirmación. En este último caso conviene crear un informe para saber el resultado del análisis. Es recomendable tenerla activada.

Anti Stealth Si se activa a la vez que "Verificar integridad", Msav desarrolla una rutinas a bajo nivel capaces de detectar virus desconocidos o virus camuflados -fenómeno stealth-. Debido al bajo rendimiento de esta opción, se recomienda desactivarla.

Verificar todos los archivos Si la casilla está activada se chequean todos los ficheros del disco, sino sólo los ficheros con extensiones EXE, COM, OVL, OVR, SYS, BIN, APP y CMD. Como los virus suelen afectar solamente a ficheros ejecutables, se recomienda desactivarla.

Cuadros de diálogo durante la exploración

Cuadro de diálogo "Error de verificación".

Muestra que un fichero ejecutable ha cambiado. Si aparece este mensaje debemos hacer memoria y saber si lo hemos modificado nosotros _falsa alarma_. Si fue así pulsamos "Actualizar", si tenemos dudas podemos pulsar "Continuar".

Actualizar Para que tenga efecto debe estar activada la opción Crear nuevos totales de verificación. Después de pulsar éste botón, Msav tomará como correcta la nueva información del fichero y no volverá a detenerse en él.

Reparar Deja al fichero modificado como estaba en un principio.

Continuar Ignora el error y sigue adelante.

Detener Ignora el error y detiene la exploración.

Cuadro de diálogo "Virus de sector de inicialización localizado".

Msav ha detectado un virus en el sector de arranque de un disco. Nos ofrece tres botones:

Limpiar Limpia el virus del sector de arranque. Se recomienda.

Continuar Ignora el virus y sigue adelante.

Detener Ignora el virus y detiene la exploración.

Cuadro de diálogo "Virus localizado".

Página 8 de 11Curso de MS-DOS Capítulo 17

Page 117: Curso De Ms-Dos

Msav ha detectado la presencia de un virus. Muestra el nombre del virus y en qué fichero ha sido encontrado. Ofrece cuatro botones:

Limpiar Limpiar el virus del fichero. Se recomienda.

Continuar Ignora el virus y sigue adelante

Detener Ignora el virus y detiene la exploración

Borrar Borra el fichero completo.

Crear un disquete de arranque

Suponga que su disco duro no arranca por culpa de un virus. La única alternativa que tiene es usar un disquete dearranque. Para crear un disco de arranque y copiarle el anti-virus, hacemos lo siguiente:

1. Formatear un disquete nuevo en la unidad A:

C:\>format a: /s

2. Copiarle los ficheros del anti-virus de Microsoft:

C:\>copy c:\dos\msav*.* a:\

3. Proteger el disquete contra escritura, pegarle una pegatina que lo identifique y guardarlo en lugar seguro.

Si ocurre lo peor, introduzca el disquete anterior en la unidad A: y encienda el ordenador. Cuando se cargue ms-dos, teclee MSAV C:

Índice · Arriba · Publicaciones · Saulo.Net

17-8 VSAFE

Esta herramienta comprueba continuamente el ordenador para detectar la presencia de virus. Vsafe es un programaresidente en memoria que controla todas las acciones del sistema operativo. Si Vsafe detecta algo inusual interfiere loque estemos haciendo y pregunta qué hacer.

Nota: Para utilizar Vsafe en el entorno Windows, debe cargar Vsafe desde el ms-dos, ejecutar Windows y luego, cargar el programa MWAVTSR.EXE.

Cuando escribamos Vsafe a continuación del símbolo del sistema, éste quedará cargado en memoria hasta que lodesactivemos.

Página 9 de 11Curso de MS-DOS Capítulo 17

Page 118: Curso De Ms-Dos

Nota: Si deseamos que Vsafe se cargue cada vez que arranque el ordenador debemos introducir la línea VSAFE al final del AUTOEXEC.BAT

Para ver o seleccionar la manera en que Vsafe va a inspeccionar nuestro equipo pulsamos Alt+V en cualquier momento.Un cuadro de diálogo aparecerá en la pantalla:

Observamos 8 opciones de aviso:

1. Avisa si se intenta formatear el disco duro. Por defecto está activada.

2. Avisa si un programa cualquiera intenta permanecer en memoria. Por defecto está desactivada.

3. Avisa si se intenta escribir en un disco. Por defecto está desactivada.

4. Comprueba los ficheros ejecutables que ms-dos utilice en cada momento en busca de virus. Por defecto está activada.

5. Comprueba el sector de arranque de todos los discos. Por defecto está activada.

6. Avisa si se intenta cambiar el sector de arranque de un disco duro o su tabla de particiones. Por defecto está activada.

7. Avisa si se intenta cambiar el sector de arranque de un disquete. Por defecto está desactivada.

8. Avisa si se está modificando un fichero ejecutable. Por defecto está desactivada.

Si Vsafe detecta algo inusual, toma el control del ordenador y muestra un mensaje en pantalla titulado "Advertencia de Vsafe". A continuación indica el motivo de la interrupción y presenta 3 botones:

Continuar Ignora la advertencia y permite al programa continuar. Debemos pulsarlo si nosotros mismos hemos provocado la situación. Por ejemplo, si modificamos la etiqueta del disco duro, estamos modificando también el sector de arranque, por lo que Vsafe mostrará su advertencia.

Detener Impide al programa continuar. Debemos pulsarlo si sospechamos la presencia de un virus.

Página 10 de 11Curso de MS-DOS Capítulo 17

Page 119: Curso De Ms-Dos

Iniciar Reinicia el ordenador. Se perderá el trabajo que estemos realizando.

Índice · Arriba · Capítulo 18 · Publicaciones · Saulo.Net

Página 11 de 11Curso de MS-DOS Capítulo 17

Page 120: Curso De Ms-Dos

Capítulo 18 El fichero CONFIG.SYS

Índice · Capítulo 17 · Publicaciones · Saulo.Net

18-1 Introducción: El fichero CONFIG.SYS

El fichero CONFIG.SYS es un fichero de texto ASCII situado en el directorio raíz de la unidad de arranque (generalmente la C:). Contiene una serie de órdenes especiales -una en cada línea- con el siguiente formato:

NombreOrden=ParámetrosOrden

Se encarga, como su nombre indica, de la configuración del sistema. Cada vez que arranca el sistema operativo, ms-dos busca los ficheros CONFIG.SYS y AUTOEXEC.BAT en el directorio raíz de la unidad de arranque y los ejecuta.

En este capítulo se estudian las siguientes órdenes especiales reconocidas por CONFIG.SYS:

Nota: Las órdenes Rem, Set y Break son válidas tanto en el fichero CONFIG.SYS como escritas a continuación del símbolo del sistema.

Índice · Subir · Publicaciones · Saulo.Net

18-2 Orden BUFFERS

Define el número de buffers de disco o memorias temporales. Su sintaxis es:

BUFFERS=valor1 [,valor2] [/X]

Orden Cometido Buffers Define el número de buffers o memorias temporales.

Files Establece el número máximo de ficheros que se pueden abrir a la vez.Device Carga un controlador de dispositivo en memoria convencional.

Devicehigh Carga un controlador de dispositivo en memoria superior.Country Define el formato de la fecha, separador decimal y otras convenciones del idioma.

Lastdrive Especifica el número máximo de unidades reconocidas por ms-dos.Dos Indica si ms-dos se instalará en memoria alta o si proporcionará acceso a los bloques libres de memoria

superior.Shell Define el procesador de órdenes.

Página 1 de 6Curso de MS-DOS Capítulo 18

Page 121: Curso De Ms-Dos

Cuando una aplicación precisa leer varios sectores del disco por primera vez, estos sectores se copian primero en los buffers de memoria y luego se suministran a la aplicación. Cada buffer almacena un sector del disco.

Si posteriormente se piden leer esos mismos sectores, no hará falta leerlos en el disco pues se encuentran ya almacenados en la rápida memoria RAM.

Los sectores menos usados almacenados en buffers se borran para dar paso a nuevos sectores.

Por tanto, un mayor número de buffers ahorra accesos al disco y acelera el rendimiento del ordenador. Sin embargo, cada uno ocupa 532 bytes de memoria.

Los buffers de lectura anticipada son útiles para lecturas secuenciales del disco. Ejemplo: Si se han definido 5 buffers para lectura anticipada, cuando una aplicación pida leer el sector 50, ms-dos aprovechará para leer los sectores 50, 51, 52, 53 y 54. Si posteriormente la aplicación pide leer los sectores 51-54 no será necesario acceder al disco pues se encuentran ya en memoria.

Para definir 30 buffers y 2 más de lectura anticipada, introduzca esta línea en el fichero CONFIG.SYS:

BUFFERS=30,2

Si utiliza Smartdrv, puede reducir el número de buffers hasta cinco.

Índice · Subir · Publicaciones · Saulo.Net

18-3 Orden FILES

Define el número máximo de ficheros que una aplicación puede abrir a la vez. Su sintaxis es:

FILES=NúmeroFicheros

El valor por defecto es 8. Pero este valor resulta escaso en la mayoría de las ocasiones y es necesario aumentarlo. Para definir un número máximo de 35 ficheros abiertos, introduzca esta orden en el fichero CONFIG.SYS:

FILES=35

Parámetro Descripción valor1 especifica el número de buffers que se cargarán en memoria. En memoria convencional el rango

permitido oscila entre 1 y 99. Pero en memoria expandida se admiten hasta 10000 buffers. Si el ordenador tiene más de 512K de memoria RAM, el valor por defecto es 15.

valor2 especifica el número de buffers de lectura anticipada, entre 1 y 8, que se cargarán en memoria. El valor por defecto es 1.

/X Almacena los buffers del sistema (no los de lectura anticipada) en memoria expandida.

Página 2 de 6Curso de MS-DOS Capítulo 18

Page 122: Curso De Ms-Dos

Índice · Subir · Publicaciones · Saulo.Net

18-4 Instalar controladores de dispositivos

Un dispositivo es una máquina conectada al ordenador. Para comunicar un dispositivo con el sistema operativo es necesario un programa denominado controlador. El ms-dos proporciona de forma automática, controladores para los dispositivos más comunes (teclado, monitor, disqueteras, disco duro...). Sin embargo, para trabajar con dispositivos no reconocidos (como el ratón), es necesario instalar su correspondiente controlador.

Los controladores se almacenan generalmente en ficheros con extensión SYS.

Para instalar un controlador en memoria convencional, utilice la orden Device:

DEVICE=Controlador

Para instalarlo en memoria superior, utilice la orden Devicehigh:

DEVICEHIGH=Controlador

Además, es necesario especificar la trayectoria completa del controlador, así como su extensión. La siguiente orden instala en memoria convencional el controlador MOUSE.SYS ubicado en el directorio C:\DRIVERS:

DEVICE=C:\DOS\MOUSE.SYS

Índice · Subir · Publicaciones · Saulo.Net

18-5 Orden COUNTRY

Define las convenciones del idioma: formato de fecha y hora, separador de decimales y símbolo monetario. Su sintaxis es:

COUNTRY=CódigoPaís [ ,[PáginaCódigos] ,Fichero ]

Si esta línea no aparece en el fichero CONFIG.SYS, se toman los siguientes valores:

COUNTRY=1,437,C:\COUNTRY.SYS

Parámetro Descripción CódigoPaís Es el número del país. Coincide con el código telefónico internacional (34 para España y 1 para

Estados Unidos).PáginaCódigos Especifica la página de códigos o juego de caracteres. Este parámetro no suele usarse.

Fichero Especifica el fichero con la información internacional. ms-dos suministra el fichero COUNTRY.SYS.

Página 3 de 6Curso de MS-DOS Capítulo 18

Page 123: Curso De Ms-Dos

La siguiente orden de CONFIG.SYS define las convenciones españolas:

COUNTRY=34,,C:\DOS\COUNTRY.SYS

Índice · Subir · Publicaciones · Saulo.Net

18-6 Orden LASTDRIVE

Define el número máximo de unidades soportadas por ms-dos. Su sintaxis es:

LASTDRIVE=LetraUnidad

Donde LetraUnidad es la última unidad soportada. Por defecto, ms-dos reconoce 4 unidades (desde la A: hasta la D:). Para aumentar el número de unidades hasta 6, añada esta línea al CONFIG.SYS:

LASTDRIVE=F

Índice · Subir · Publicaciones · Saulo.Net

18-7 Orden DOS

Indica si ms-dos deberá instalarse en memoria alta, habilitar la memoria superior o ambas. Sintaxis:

DOS=[HIGH,] UMB

DOS=HIGH [,UMB]

Para más información, consultar el Capítulo 13.

Índice · Subir · Publicaciones · Saulo.Net

18-8 Orden SHELL

Define el procesador de órdenes del ms-dos.

Parámetro Descripción HIGH Instala ms-dos en el área de memoria alta. La memoria alta debe estar preparada.UMB Habilita los bloques libres de memoria superior. La memoria superior debe estar preparada.

Página 4 de 6Curso de MS-DOS Capítulo 18

Page 124: Curso De Ms-Dos

Procesador de órdenes.— Programa encargado de presentar el símbolo del sistema y ejecutar cada orden introducida. Generalmente es el COMMAND.COM.

Su sintaxis de Shell es la siguiente:

SHELL=ProcesadorÓrdenes

Como el procesador de órdenes proporcionado por ms-dos es el programa COMMAND.COM, se puede concretar más la sintaxis anterior:

SHELL=[trayecto]COMMAND.COM [trayecto] [dispositivo] [/E:TamañoEntorno] [/P [/MSG]]

Cambiar la ubicación del fichero COMMAND.COM

Si no existe la orden Shell, ms-dos buscará el fichero COMMAND.COM en el directorio raíz de la unidad de arranque. Puede cambiar la ubicación de este fichero si lo especifica con una orden Shell.

En la sintaxis, cambie trayecto por la nueva ubicación de COMMAND.COM. Utilice el modificador /P para hacer permanente el procesador de órdenes COMMAND.COM y ejecutar el AUTOEXEC.BAT.

La siguiente orden Shell indica que el COMMAND.COM se sitúa en el directorio DOS.

SHELL=C:\DOS\COMMAND.COM C:\DOS /P

Aumentar el tamaño del entorno

Si al introducir una orden Set, Path o Prompt desde el símbolo del sistema se presenta el siguiente mensaje, será necesario aumentar el tamaño del entorno.

Parámetro Descripción trayecto Indica la ubicación del fichero COMMAND.COM. En la sintaxis se ha repetido el parámetro trayecto

dos veces. El primero especifica la posición de COMMAND.COM al arrancar el sistema operativo. El segundo especifica el lugar de COMMAND.COM al salir de las aplicaciones. Lo normal, es que coincidan.

dispositivo Indica el dispositivo utilizado para la entrada y salida de datos. El dispositivo por defecto es CON (entrada por el teclado y salida por pantalla).

/E:TamEntorno Indica el tamaño del entorno. El valor debe estar entre 160 y 32678. El valor por defecto es 256 bytes./P Hace permanente el procesador de órdenes COMMAND.COM. Además ejecuta el fichero

AUTOEXEC.BAT antes de presentar el símbolo del sistema./MSG Guarda todos los mensajes de error en memoria. Este modificador se usa al cargar ms-dos desde

disquetes. El modificador /MSG debe ir acompañado del modificador /P.

Página 5 de 6Curso de MS-DOS Capítulo 18

Page 125: Curso De Ms-Dos

No queda espacio de ambiente.

Entorno.— Es una porción de memoria donde se almacenan unas variables. En el Capítulo 7 se explica detalladamente el entorno.

Si su fichero CONFIG.SYS no contiene la orden Shell y desea aumentar el espacio del entorno a 512 bytes, introduzca la siguiente línea en el fichero CONFIG.SYS:

SHELL=C:\DOS\COMMAND.COM C:\ /P /E:512

Si su fichero CONFIG.SYS contiene la orden Shell, añada el modificador /E:512 para incrementar el espacio del entorno a 512 bytes.

Índice · Subir · Publicaciones · Saulo.Net

Página 6 de 6Curso de MS-DOS Capítulo 18