Está en la página 1de 125

Curso de MS-DOS Página 1 de 6

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

Í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 13. La memoria
2. Órdenes del MS-DOS. Trabajo con discos 14. Los discos del DOS
3. Trabajo con directorios 15. Defrag, Undelete y Unformat
4. Trabajo con ficheros 16. Msbackup
5. Operaciones de copia 17. Los virus informáticos
6. Los atributos 18. El fichero CONFIG.SYS
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

Primera parte: Curso de MS-DOS


Curso de MS-DOS Página 2 de 6

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
Curso de MS-DOS Página 3 de 6

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
Curso de MS-DOS Página 4 de 6

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
Curso de MS-DOS Página 5 de 6

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
Curso de MS-DOS Página 6 de 6

18. El fichero CONFIG.SYS


18-1 Introducción: El fichero CONFIG.SYS
18-2 Orden BUFFERS
18-3 Orden FILES
18-4 Instalar controladores de dispositivos
18-5 Orden COUNTRY
18-6 Orden LASTDRIVE
18-7 Orden DOS
18-8 Orden SHELL

Subir · Publicaciones · Saulo.Net


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

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.

Función Dispositivo
Entrada por defecto CON (teclado)
Salida por defecto CON (monitor)

Í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:

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
| orden1 |orden2
de otra orden

Índice · Arriba · Publicaciones · Saulo.Net


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

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:

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.

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.
Curso de MS-DOS Capítulo 8 Página 3 de 10

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:

z 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)

z 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)

z 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

z 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.
Curso de MS-DOS Capítulo 8 Página 4 de 10

f) Buscar la cadena "IGNACIO" en el fichero PERSONAL.TXT

2. Si no utilizamos el operador `<', ¿cuál es el dispositivo de entrada por defecto?

Índice · Arriba · Publicaciones · Saulo.Net

8-5 Redirección de la salida. Operador `>'


Con este operador dirigimos la salida desde la pantalla a un fichero o dispositivo.

Suele tener dos usos principales:

1. Enviar la salida de una orden a la impresora.

A:\>type romance.txt >prn


(imprime el fichero ROMANCE.TXT en impresora)

C:\>vol >prn
(imprime la etiqueta y el número de serie en impresora)

2. Enviar la salida de una orden a un nuevo fichero. Si el fichero existe, se pierde su contenido anterior.

C:\>dir >director.txt
(crea el fichero DIRECTOR.TXT con el directorio raíz de C:)

C:\>ver >version.txt
(crea el fichero VERSION.TXT conteniendo la versión actual de ms-dos)

El operador `>' también se puede combinar con los filtros del dos. Veamos algunas aplicaciones:

z 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)

z 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)

z Ordenar un fichero en la impresora.

B:\>sort <listin1.txt >prn


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

(Sort toma como entrada el fichero LISTIN1.TXT y como salida, la impresora)

z 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.
Curso de MS-DOS Capítulo 8 Página 6 de 10

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:

z Mostrar con pausa en cada pantalla la salida de una orden.


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

B:\>type informe.txt |more

C:\DOS>dir |more

C:\>tree |more

z 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:)

z 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.


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

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.


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

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
Curso de MS-DOS Capítulo 8 Página 10 de 10

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


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

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:

z Extensión. Todos deben llevar obligatoriamente la extensión BAT.


z 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.
z 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.
z 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.
Curso de MS-DOS Capítulo 10 Página 2 de 11

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.

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

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.

Índice · Arriba · Publicaciones · Saulo.Net

10-3 La orden ECHO


Se puede utilizar de cinco formas:

ECHO Indica si está activado o desactivado el eco de las órdenes.


ECHO ON Activa el eco
ECHO OFF Desactiva el eco
ECHO mensaje Visualiza un mensaje en pantalla.
ECHO. Visualiza una línea en blanco en pantalla.

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
Curso de MS-DOS Capítulo 10 Página 3 de 11

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:

z ECHO Ficheros por lotes


z 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.
Curso de MS-DOS Capítulo 10 Página 4 de 11

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.
Curso de MS-DOS Capítulo 10 Página 5 de 11

Í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
Curso de MS-DOS Capítulo 10 Página 6 de 11

Í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 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.

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.
Curso de MS-DOS Capítulo 10 Página 7 de 11

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:

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.

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: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.
Curso de MS-DOS Capítulo 10 Página 8 de 11

mensaje Contiene el mensaje mostrado al usuario pidiendo que introduzca una de las opciones admitidas.

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.
Curso de MS-DOS Capítulo 10 Página 9 de 11

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:
Curso de MS-DOS Capítulo 10 Página 10 de 11

@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
Curso de MS-DOS Capítulo 10 Página 11 de 11

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


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

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:

z Tiene un nombre y extensión obligatorias: siempre debe llamarse AUTOEXEC.BAT


z 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.
z 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.
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 2 de 9

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:

z Órdenes para configurar las variables del entorno (Set, Path y Prompt).
z Órdenes para seleccionar el idioma.
z Ó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.

Orden Significado
SET
Define el símbolo del sistema.
PROMPT
SET PATH Define la vía de acceso.
SET TEMP Define el directorio para ficheros temporales.
SET Define cómo queremos ver el directorio (ordenación,
DIRCMD formato...).

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.
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 3 de 9

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).

Í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.
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 4 de 9

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"
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 5 de 9

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%
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 6 de 9

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
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 7 de 9

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.
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 8 de 9

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.
Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II) Página 9 de 9

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


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

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


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

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.
Curso de MS-DOS Capítulo 12 Página 3 de 7

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.

z 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.
z 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.
z 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.
Curso de MS-DOS Capítulo 12 Página 4 de 7

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
Desplaza el cursor una palabra a la derecha.
derecha
Ctrl+Flecha
Desplaza el cursor una palabra a la izquierda.
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.

Sintaxis

Puede personalizar el funcionamiento de Doskey si utiliza sus parámetros al instalarlo. Su sintaxis es:

DOSKEY [/REINSTALL] [/BUFSIZE=bytes] [/HISTORY]


[/INSERT | /OVERSTRIKE]

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.
Curso de MS-DOS Capítulo 12 Página 5 de 7

Í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 ($).

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 |

Aplicaciones:

z 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')

z Crear una macro para dar un formato rápido al disquete especificado.


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

C:\>doskey rapid $1=format $1 /q

z Crear una macro para ver un fichero por pantallas.

C:\>doskey ver $1=more $L$1

z Crear una macro para crear un directorio y entrar en él.

C:\>doskey mc $1=md $1$Tcd $1

z Borrar una macro.

C:\>doskey mc=

z Ver todas las macros.

C:\>doskey /macros

z 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
Curso de MS-DOS Capítulo 12 Página 7 de 7

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


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

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:

z 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.
z 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.
z 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.

z No volátil. Su contenido no se pierde nunca, aún apagado el ordenador.


z 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.
Curso de MS-DOS Capítulo 13 Página 2 de 12

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.

z Volátil. Su contenido se pierde al desconectar el ordenador.


z 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


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

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).
Curso de MS-DOS Capítulo 13 Página 4 de 12

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.
Curso de MS-DOS Capítulo 13 Página 5 de 12

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:

z Cargar ms-dos en memoria convencional y no habilitar memoria superior. Al ser la configuración por defecto, no
se introduce ninguna orden.
z 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

z Cargar ms-dos en memoria convencional y habilitar memoria superior.

DOS=UMB

z 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?
Curso de MS-DOS Capítulo 13 Página 6 de 12

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

DEVICE=C:\DOS\HIMEM.SYS

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

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

z 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:
Curso de MS-DOS Capítulo 13 Página 7 de 12

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]

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.

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
Curso de MS-DOS Capítulo 13 Página 8 de 12

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.
Curso de MS-DOS Capítulo 13 Página 9 de 12

z Un caché de disco de lectura evita que ms-dos lea dos veces en disco la misma información en intervalos cortos
de tiempo.
z Un caché de disco de escritura retarda la grabación de datos en el disco cuando el ordenador tiene mucho trabajo
y aprovecha los momentos de menor actividad para ir guardando los datos en el disco.

Veámoslo más claro con un ejemplo. Un usuario trabaja frecuentemente en una base de datos y precisa consultar y
cambiar continuamente unos mismos datos. Si el usuario necesita abrir un fichero, ms-dos lo busca el disco, lo copia en
el caché y luego se lo ofrece a la aplicación. Si posteriormente, dicha persona necesita abrir el mismo fichero, ms-dos se
ahorrará volver a leerlo en el disco porque ya se encuentra almacenado en memoria.

Lógicamente, el mayor o menor rendimiento de un caché de disco viene definido por la cantidad de memoria destinada.
Cuanta más memoria se dedique al caché, mayor número de informaciones del disco se podrán almacenar.

SMARTDRV

El programa proporcionado por ms-dos como caché de disco se denomina Smartdrv. Para instalarlo se utiliza la
siguiente sintaxis:

SMARTDRV [[unidad[+|-]]...] [TamañoCachéInicial [TamañoCachéWin]]


[/E:TamañoElemento] [/B:TamañoBúfer]
[/C] [/R] [/F] [/N] [/L] [/Q] [/S]

Después de la instalación podemos usar desde el símbolo del sistema la siguiente sintaxis:

SMARTDRV [[unidad[+|-]]...]] [/C] [/R] [/S]

Parámetro Explicación
unidad Es la letra de unidad la cual estamos definiendo. Después de la unidad puede estar el signo más (+),
el signo menos (-) o ninguno de los dos. Incluyendo el signo más, se habilita el caché de lectura y
escritura. Sin colocar ningún signo detrás de la unidad, se habilita el caché de lectura
exclusivamente y colocando un signo menos se elimina el caché para la unidad. Si no especifica
ninguna unidad, Smartdrv revisará sus unidades de disco y decidirá por usted.
TamCachéIni Especifica el tamaño del caché en kilobytes. Si no utiliza este parámetro, Smartdrv lo establecerá
automáticamente según nuestro equipo. Si su memoria es igual o superior a 4Mb seguramente le
interesará aumentar el caché. Si una aplicación precisa memoria y el ordenador no dispone de ella,
Smartdrv reduce el caché y cede memoria a la aplicación. Por consiguiente, podemos crear un gran
caché con la seguridad que la memoria especificada queda a disposición de las aplicaciones.
TamCachéWin Especifica el tamaño mínimo del caché al que las aplicaciones podrán reducirlo. Al utilizar
Windows 3.1 ó 3.11, el caché se reduce automáticamente al mínimo.
/E:TamElem Indica la cantidad de bytes que Smartdrv puede mover a la vez. Los valores válidos son 1024, 2048,
4096 y 8192. El valor por defecto es 8192.
/B:TamBúfer
Especifica el tamaño en bytes del búfer. El búfer es información adicional leída en cada acceso al
disco. Si se pide leer 16384 bytes del disco duro y el búfer es de 8192 bytes, ms-dos leerá la
Curso de MS-DOS Capítulo 13 Página 10 de 12

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.

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:

z 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.
z 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:

z 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

z 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


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

Índice · Arriba · Publicaciones · Saulo.Net

13-8 Crear un disco RAM


Un disco RAM es una unidad "de disco" creada en memoria.

z 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.
z 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]

Parámetro Explicación
TamañoDisco Tamaño en Kb del disco RAM. El tamaño por defecto es de 64K y el máximo es 32767K (32Mb) si
su ordenador tiene más de 32Mb de memoria.
TamañoSector Tamaño del sector en bytes. Se admiten los valores de 128, 256 y 512 bytes. El tamaño por defecto
es 512 bytes.
NúmEntradas Número de entradas admitidas en el directorio raíz del disco RAM. Los valores válidos son de 2
hasta 1024.
/E La unidad RAM se crea en memoria extendida.
/A La unidad RAM se crea en memoria expandida.

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
Curso de MS-DOS Capítulo 13 Página 12 de 12

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:

z 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.
z 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


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

Capítulo 14
Los discos del DOS

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

14-1 Introducción
Este capítulo muestra cómo graba ms-dos la información en los discos. Explica detalladamente cada una de las divisiones físicas
propias de todo disco (caras, pistas, sectores) así como la estructura lógica creada por ms-dos al formatear un disco (sector de
arranque, FAT, directorio raíz, área de datos).

Además, el capítulo es especialmente interesante por las órdenes Chkdsk y Scandisk. Estas órdenes de conocimiento
imprescindible solucionan los errores producidos en un disco. Le conviene aprender a solucionar posibles problemas en su disco
duro, pues se producen a menudo y pueden llegar a inutilizar el disco.

Índice · Subir · Publicaciones · Saulo.Net

14-2 El sistema de disco


El sistema de disco permite leer y grabar información de forma permanente. Esta formado por:

z El disco. Dispositivo magnético que almacena la información.

z La unidad de disco. Dispositivo mecánico que mueve las cabezas de lectura y escritura para acceder a toda la superfice del
disco.

z La controladora de disco. Dispositivo electrónico que transforma las peticiones del sistema operativo en movimiento de la
unidad de disco.

En los discos duros, el disco y la unidad de disco forman un solo cuerpo cerrado herméticamente. No se puede utilizar más de un
disco para la misma unidad de disco duro.

Por el contrario, las unidades de disco flexible y compacto admiten diversos discos para la misma unidad.

Las unidades de disco flexible se corresponden con los tipos de disquetes existentes: 5¼ DD, 5¼ HD, 3½ DD, 3½ HD y 3½ ED.
Cada una de estas unidades admite el disquete indicado en su nombre y los inferiores de su mismo tamaño. Es decir, una disquetera
de 3½ HD trabaja con discos de 3½ HD y 3½ DD. En cambio, una disquetera de 5¼ DD solamente admite discos de 5¼ DD.

Disquetera.— Unidad de disco flexible.

Disquete.— Disco flexible y su funda protectora.

El siguiente cuadro muestra los discos admitidos por cada unidad de disco flexible:
Curso de MS-DOS Capítulo 14 Página 2 de 14

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:
Tipo de unidad Velocidad de transferencia
Simple velocidad 150 Kilobytes cada segundo.
Doble velocidad 300 Kb/seg
Triple velocidad 450 Kb/seg.
Cuádruple velocidad 600 Kb/seg.
Velocidad x 150 · x Kb/seg.

Aunque es necesaria una controladora de disco para cada unidad, generalmente se comercializan tarjetas con varias controladoras
integradas. El caso más común son tarjetas controladoras (se conectan a la placa base y unidades de disco) para dos unidades de
disco flexible y dos unidades de disco duro. Sin embargo, la tendencia actual es incorporar las controladoras en la propia placa
base. Las unidades de disco compacto se conectan como segundo disco duro o bien, a una tarjeta controladora propia.

Índice · Subir · Publicaciones · Saulo.Net

14-3 El disco
Es un soporte magnético que almacena información de forma permanente. La memoria, en cambio, es almacenamiento temporal.
Los datos de la memoria se pierden al apagar el ordenador pero los datos de un disco quedan grabados aún sin corriente eléctrica.

La superficie de un disco se puede dividir según su estructura física o lógica.

z Según su estructura física, se divide en:


{ Caras o cabezas.

{ Pistas o cilindros.

{ Sectores.

z Según su estructura lógica, se divide en:


{ Sector de arranque.

{ FAT.

{ Directorio raíz

{ Área de datos.
Curso de MS-DOS Capítulo 14 Página 3 de 14

Estructura física

Cada tipo de disco posee una estructura propia, determinada por el fabricante.

Los valores para los discos flexibles son fijos:

5 1/4 DD 5 1/4 DD 3 1/2 DD 3 1/2 HD 3 1/2 ED


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

Los valores de los discos duros dependen de su capacidad. Además, discos duros con igual capacidad y diferente fabricante pueden
tener estructura física distinta.

Las caras son las superficies del disco que almacenan datos. Los disquetes actuales poseen dos caras: la superior y la inferior. Para
acceder a cada cara del disco, las unidades poseen una cabeza de lectura/escritura por cada una.

Las pistas son anillos concéntricos en cada una de las caras. En los discos duros se denominan cilindros.

A su vez, las pistas se subdividen en sectores. En la mayoría de los discos un sector almacena 512 bytes de información.

Estructura lógica

Cada sistema operativo crea una estructura lógica distinta en sus discos. En este caso, estudiamos la estructura lógica creada por
ms-dos.

El siguiente gráfico representa el desarrollo de un disco formateado, desde el primer sector hasta el último.
Curso de MS-DOS Capítulo 14 Página 4 de 14

El propósito de esta estructura lógica es grabar y leer datos de la forma más eficiente posible. Cada una de las divisiones tiene un
tamaño fijo según el disco y una misión específica para el sistema operativo.

La siguiente tabla muestra el sector de comienzo y cantidad de sectores ocupados por cada área en los cuatro disquetes más
extendidos.

5 1/4 DD 5 1/4 DD 3 1/2 DD 3 1/2 HD


Sector comienzo sector de arranque 0 0 0 0
Longitud sector de arranque 1 1 1 1
Sector comienzo primera FAT 1 1 1 1
Sector comienzo segunda FAT 3 8 6 10
Longitud ambas FAT 4 14 10 18
Sector comienzo directorio raíz 5 15 11 19
Longitud directorio raíz 7 14 7 14
Sector comienzo área de datos 12 29 18 33
Longitud área de datos 709 2372 1123 2848

Índice · Subir · Publicaciones · Saulo.Net

14-4 Sector de arranque


Ocupa el primer sector del disco. Este sector dispone de un pequeño programa que busca los ficheros ocultos IO.SYS y
MSDOS.SYS en el directorio raíz. Si los encuentra, carga el sistema operativo y si no, muestra alguna variante del conocido
mensaje "Error, de disco de sistema. Reemplace y presione cualquier tecla".

Nota: Para crear un disquete de arranque utilice la orden Sys o también Format con el modificador /S.

El sector de arranque de cada disco posee, además, las siguientes informaciones:

z Nombre y versión del sistema operativo.

z Tipo de disco.

z Número de caras del disco.

z Número de sectores por pista.


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

z Número de bytes por sector.

z Número total de sectores.

z Número de sectores en cada grupo.

z Número de FAT's.

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

z Número de sectores ocupados por cada FAT.

z Número de serie del disco.

z 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 ¡1024
bytes!

Í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 el
disco, 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
Curso de MS-DOS Capítulo 14 Página 6 de 14

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

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

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

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

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 grupo
2).

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

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)
Curso de MS-DOS Capítulo 14 Página 7 de 14

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

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:

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)

Cada entrada es almacenada en disco como un conjunto de 32 bytes. Todos los campos menos el nombre y extensión se codifican
para 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:

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


RECUERDO TXT A 17:00:06 31/08/95 2 606
SONETO TXT A 16:58:02 31/08/95 3 632

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 cuyo
nombre 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:

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


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

RECUERDO TXT A 17:00:06 31/08/95 2 606


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

Í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 del
tipo 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 datos
de 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 encuentra
leyendo 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 entre
512 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 un
disquete de 3½ HD almacenan un máximo de 512 bytes. Restando los grupos totales menos los grupos disponibles, tenemos los
Curso de MS-DOS Capítulo 14 Página 9 de 14

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:

z Tienen una tabla de particiones en el primer sector.

z Pueden crearse de una a cuatro particiones.

z 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 su
sistema operativo. Una partición dos contiene sector de arranque, FAT, directorio raíz y área de datos. Los datos de una partición
no 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.

Concepto Bytes ocupados


(reservado) 445 bytes
Entrada de la partición 1 16 bytes
Entrada de la partición 2 16 bytes
Entrada de la partición 3 16 bytes
Entrada de la partición 4 16 bytes

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

Campo Bytes ocupados


Partición activa o no 1 byte
Cabeza primer sector de la partición 1 byte
Cilindro y sector del primer sector 2 bytes
Tipo de partición: DOS, XENIX... 1 byte
Cabeza último sector de la partición 1 byte
Cilindro y sector del último sector 2 bytes
Primer sector de la partición 4 bytes
Longitud de la partición en sectores 4 bytes
Curso de MS-DOS Capítulo 14 Página 10 de 14

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 dicha
partició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:

z Las FAT's no coinciden.

z Estructura del directorio incorrecta.

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

z Errores físicos en el disco.

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

z Estructura del directorio incorrecta.

z 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:

z 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.

z 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 alguna
anomalía, Scandisk ofrece una explicación detallada del problema antes de resolverlo. Si se encargó solucionar el error, Scandisk
ofrece 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.
Curso de MS-DOS Capítulo 14 Página 11 de 14

Verificar el disco duro frecuentemente es una tarea más que necesaria. Los errores lógicos o físicos pueden producirse por diversos
motivos: no salir adecuadamente de las aplicaciones, apagar el ordenador a mitad de una operación, un corte de suministro
elé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 pueden
inutilizar 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 sea
chequeado 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 diferencia
entre 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 dato
incorrecto en alguna entrada, se lo comunican al usuario.

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


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

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

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 cambian
el 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:

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

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


FICH1 TXT A 09:40:00 03/06/96 2 250
FICH2 TXT A 10:41:02 03/06/96 3 372

El grupo 4 y 5 se encuentran en la FAT como usados. Sin embargo, ningún fichero se hace responsable de estas informaciones. Por
tanto, 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)
Curso de MS-DOS Capítulo 14 Página 13 de 14

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

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

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


FICH1 TXT A 09:40:00 03/06/96 2 250
FICH2 TXT A 10:41:02 03/06/96 3 372
FILE0001 CHK A 11:42:04 03/06/95 4 1024

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

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 160
FICH2 TXT R 10:03:22 01/01/96 2 450

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

Grupo Valor
0 (reservado)
1 (reservado)
2 3
3 (final)
Curso de MS-DOS Capítulo 14 Página 14 de 14

... ...

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


FICH1 TXT A 12:22:00 01/01/96 2 800
FICH2 TXT A 12:24:08 01/01/96 3 257

Para solventar un vínculo cruzado, Chkdsk o Scandisk copian el grupo común a otro lugar del disco. El segundo fichero implicado
se 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 queda
inservible.

En cambio, si encuentra un grupo defectuoso en el área de datos, Scandisk copia la información existente a lugar seguro y marca en
la 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:

Grupo Valor
0 (reservado)
1 (reservado)
2 4
3 (defectuoso)
4 (final)
... ...

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


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

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:

z Defrag. Elimina la fragmentación del disco duro y, en consecuencia, se acelera la búsqueda de información por el disco.
z Undelete. Recupera ficheros borrados por equivocación. Admite varios niveles que garantizan en mayor o menor medida el
éxito de la restauración.
z 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.

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

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
Curso de MS-DOS Capítulo 15 Página 2 de 16

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.

z 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.

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

Ahora borramos el primer fichero:

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

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:

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

z 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.
Curso de MS-DOS Capítulo 15 Página 3 de 16

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

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:

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

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).

Grupo Valor
0 (reservado)
1 (reservado)
2 2846
3 2845
... ...
2845 (final)
2846 3

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:

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

Utilización de DEFRAG
Curso de MS-DOS Capítulo 15 Página 4 de 16

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.

z 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.
z 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.
Curso de MS-DOS Capítulo 15 Página 5 de 16

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:

z 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.
z 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
z 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.

z Para instalar el nivel Estándar no debe hacer nada: está presente desde el encendido del ordenador.
z Para instalar el Registro de eliminación agregue la siguiente línea a su AUTOEXEC.BAT y reinicie el ordenador.
Curso de MS-DOS Capítulo 15 Página 6 de 16

C:\DOS\UNDELETE.EXE /T

z 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,
Curso de MS-DOS Capítulo 15 Página 7 de 16

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.
Curso de MS-DOS Capítulo 15 Página 8 de 16

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:

z 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)

z Recuperar todos los ficheros del directorio actual.

D:\VARIOS>undelete

(Undelete pedirá confirmación para cada fichero)

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

D:\VARIOS>undelete /all

z 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.
Curso de MS-DOS Capítulo 15 Página 9 de 16

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:

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

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


SONETO TXT A 00:11:02 29-04-95 2 632
ROMANCE TXT A 00:11:56 29-04-95 4 251

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


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

Grupo Valor
0 (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 632
ROMANCE TXT A 00:11:56 29-04-95 4 251

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.

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

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


SONETO TXT A 00:11:02 29-04-95 2 632
ROMANCE TXT A 00:11:56 29-04-95 4 251

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 Valor
0 (reservado)
1 (reservado)
2 4
3 (libre)
4 (final)
Curso de MS-DOS Capítulo 15 Página 11 de 16

Si borramos el fichero, la FAT queda así:

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

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:

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

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.
Curso de MS-DOS Capítulo 15 Página 12 de 16

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

Grupo Valor
0 (reservado)
1 (reservado)
2 3
3 (final)
... ...
10 (final)
11 (final)

Directorio raíz:

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


RECUERDO TXT A 00:18:06 29-04-95 2 606
SENTRY D-H 11:00:04 28-04-95 10 0

Directorio SENTRY:

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


CONTROL FIL A-S 11:00:16 28-04-95 11 437

Cuando borremos RECUERDO.TXT, el disco cambiará:

Grupo Valor
0 (reservado)
1 (reservado)
2 3
3 (final)
... ...
10 (final)
11 (final)

Directorio raíz:

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


?ECUERDO TXT A 00:18:06 29-04-95 2 606
SENTRY D-H 11:00:04 28-04-95 10 0

Directorio SENTRY:

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


CONTROL FIL A-S 11:00:16 28-04-95 11 437
#A1B2C3E MS A 00:18:06 29-04-95 2 606

Índice · Arriba · Publicaciones · Saulo.Net


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

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]

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.

Format puede formatear un disco de cuatro maneras diferentes:

z 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.
z 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:

z 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)

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

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

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

C:\>format a: /f:360

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


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

C:\>format a:

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

C:\>format a: /u /q

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

C:\>format a: /q

z 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
Curso de MS-DOS Capítulo 15 Página 15 de 16

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
Curso de MS-DOS Capítulo 15 Página 16 de 16

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


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

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 fallo
de hardware hasta un uso inadecuado existe un abanico de situaciones que pueden desembocar en pérdidas de datos. Las
estadísticas afirman que sería necesario un promedio de 2000 horas de trabajo para reconstruir la mayoría de discos
duros. 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.

z 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.

z 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, lo
volvemos 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 los
ficheros de ambos tipos conviene introducirlos todos en un mismo directorio. Se puede crear un subdirectorio del raíz
llamado TRABAJOS. En este directorio se crean nuevos subdirectorios para contener los ficheros de usuario de cada
aplicación. El siguiente directorio TRABAJOS corresponde a un persona que trabaja con WordPerfect, CorelDraw y
Dbase.
Curso de MS-DOS Capítulo 16 Página 2 de 23

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

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".


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

Índice · Arriba · Publicaciones · Saulo.Net

16-3 Tipos de copias de seguridad


Msbackup realiza tres tipos copias:

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

z 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.

z 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:

Día semana Tipo de copia


Lunes Completa
Miércoles Completa
Viernes Completa

Todos los datos del disco duro se almacenan en la última copia completa.
Curso de MS-DOS Capítulo 16 Página 4 de 23

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 la
progresiva o diferencial.

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

Día semana Tipo de copia


Lunes Completa
Miércoles Progresiva
Viernes Progresiva

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 el
catá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:

Día semana Tipo de copia


Lunes Completa
Miércoles Diferencial
Viernes Diferencial

Aunque conviene utilizar varios juegos de disquetes, también es posible crear la copia del Viernes sobre los disquetes
del 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 uno
o más disquetes llamado grupo de copias. Los disquetes de un grupo de copias tienen un orden concreto comenzando
por el disquete 1. Cada grupo de copias contiene un catálogo.
Curso de MS-DOS Capítulo 16 Página 5 de 23

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 del
grupo de copias y en el disco duro. Si perdemos el catálogo del disco duro, es necesario introducir el último disquete
para recuperarlo.

Contiene la siguiente información:

z Estructura de directorios del disco duro origen.

z La entrada del directorio de cada fichero copiado.

z El número total de ficheros copiados.

z El tamaño total del grupo de copias.

z El nombre del fichero de especificaciones usado.

z La fecha de la copia de seguridad.

Gracias al catálogo, Msbackup puede restaurar ficheros individuales. Como tiene almacenados el nombre de los ficheros
copiados, podemos seleccionar sólo uno para restaurar. Msbackup lee en el catálogo en qué disquete se encuentra y
despué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 nombre
del 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
Hace referencia a la primera copia realizada en el día. La letra B se refiere a la segunda copia del día con
A
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
Curso de MS-DOS Capítulo 16 Página 6 de 23

Fichero de especificaciones

Un fichero de especificaciones contiene la siguiente información:

z Ficheros de los que se hará copia de seguridad.

z Destino de la copia de seguridad.

z Tipo de copia.

z Opciones de copia.

De esta forma se simplifica el proceso rutinario de realizar un mismo tipo de copia de seguridad de los mismos ficheros
en 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 especificaciones
DEFAULT.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 con
una 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 creado
un 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 de
copias. 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 y
el 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). Sin
embargo, se puede optar por una versión anterior (la del Lunes).

Índice · Arriba · Publicaciones · Saulo.Net


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

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á de
forma automática tomando las selecciones por el usuario. Lea atentamente los cuadros de diálogos mostrados en
pantalla.

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.
Curso de MS-DOS Capítulo 16 Página 8 de 23

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 se
realizan las pruebas de velocidad del procesador y de lectura del disco duro:
Curso de MS-DOS Capítulo 16 Página 9 de 23

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

Pulse Enter para hacer permanente la configuración establecida. Msbackup ha quedado configurado para realizar copias
de 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.


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

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" del
menú 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 teclas
Tab o Mays+Tab (o el ratón). Aunque en la figura no se aprecia, cada elemento posee una letra resaltada. Podemos
acceder 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.
Curso de MS-DOS Capítulo 16 Página 11 de 23

Elegir un fichero de especificaciones

En primer lugar debemos elegir un fichero de especificaciones. Si el elemento "Archivo de especificaciones:" no


muestra el correcto podemos seguir diferentes caminos.

z 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
Curso de MS-DOS Capítulo 16 Página 12 de 23

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.

z 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 la
selecció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 las
unidades 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, pulse
Enter. Se muestra el cuadro "Seleccionar archivos a copiar":
Curso de MS-DOS Capítulo 16 Página 13 de 23

Para desplazarse por este cuadro utilice el Tabulador. En cada pulsación de esta tecla accedemos a una zona del cuadro
segú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 situamos
sobre é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 de
directorios de manera sencilla: Se hace doble clic en el primer directorio y se arrastra hasta el último. Todos quedarán
seleccionados.

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 los
directorios \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 Kilobytes
ocupados.

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":


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

Ayúdese con las Flechas y con la tecla Espacio para seleccionar el destino de la copia. El ordenador del ejemplo posee
dos disqueteras de 3½ HD. Msbackup permite introducir disquetes de 3½ HD (1.44 Mb) o de 3½ DD (720 K). La opción
tercera 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" se
mostrará 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 y
dentro 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":
Curso de MS-DOS Capítulo 16 Página 15 de 23

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 fueron
escritos correctamente. Aunque el proceso de copia es más lento, se recomienda activar esta opción para garantizar la
fiabilidad de la copia.

Comprimir datos - Realiza una serie de operaciones para copiar más datos en menos espacio. Como el número de
disquetes es menor con esta opción activada, la copia se efectúa con mayor rapidez. Si desea traspasar datos entre las
versiones 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 compatible
con 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.
Curso de MS-DOS Capítulo 16 Página 16 de 23

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

Aviso de sobrescritura de disquetes usados - Si está activada esta opción, Msbackup informará si se introduce un
disquete 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 disquetes
que 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. Aunque
ocupa un 10% de la capacidad total del disco, permite recuperar posibles errores en los disquete. Si está desactivada la
copia 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 copias
del disco duro. Si se activa, los catálogos se conservan. Recuerde que el catálogo se graba también en el último disquete
de 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


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

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 el
nombre del catálogo y número de orden. Msbackup pedirá los disquetes de forma automática. Cuando aparezca el
mensaje " [ Inserte disquete x ] ", podemos sacar el disquete actual e introducir el siguiente _aunque la luz de la
disquetera permanezca encendida_. No es necesario pulsar ninguna tecla para indicar al ordenador la inserción del nuevo
disquete. 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:
Curso de MS-DOS Capítulo 16 Página 18 de 23

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

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.

Elegir el catálogo

Antes de restaurar una copia de seguridad, es necesario cargar el catálogo correspondiente. Para restaurar un único
grupo 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 de
especificaciones utilizado y por extensión, CAT.
Curso de MS-DOS Capítulo 16 Página 19 de 23

Para recuperar un catalogo almacenado en el disco duro, pulsamos Alt+U desde el cuadro "Restaurar". Aparecerá una
lista 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én
es 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 el
catá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".
Curso de MS-DOS Capítulo 16 Página 20 de 23

Tanto si recuperamos el catálogo de una unidad de disquete o de otra unidad, éste se copiará en el directorio del
programa 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 del
catálogo: la del disco duro y la almacenada en el destino de la copia. Msbackup pide cada uno de los disquetes del grupo
de 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 disco
adecuado.

Accedemos al cuadro "Restaurar archivos" (Alt+H) para seleccionar que ficheros serán restaurados. Pulsando Espacio
sobre una unidad, se seleccionan todos sus ficheros (otra vez Espacio se deseleccionan). Para seleccionar sólo algunos
ficheros 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 cuadro
segú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
Curso de MS-DOS Capítulo 16 Página 21 de 23

completo. Los directorios sin ficheros no pueden seleccionarse. Para restaurar sólo unos ficheros de un directorio nos
situamos 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. Esto
significa 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 resaltado
pulsando 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.
Curso de MS-DOS Capítulo 16 Página 22 de 23

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:
Curso de MS-DOS Capítulo 16 Página 23 de 23

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


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

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 virus
poseen 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:

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

z 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.

z 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:

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

z 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.

z 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).
Curso de MS-DOS Capítulo 17 Página 2 de 11

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 datos
difí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 de
arranque de un disco duro, cada vez que arranquemos el ordenador (con el disco duro) el virus se acomodará en la
memoria, 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 se
daría cuenta y pondría remedio: el principal objetivo del virus no se alcanzaría. Lo más normal es que busque nuevas
ví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, el
virus lo detecta, comprueba que esté sin infectar y si se dan las condiciones propicias (por ejemplo, que el disco esté sin
proteger), infecta su sector de arranque.

El virus debe realizar todas estas acciones de forma oculta al usuario. Si éste advirtiera alguna irregularidad en el
funcionamiento 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... ) y
entran 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, el
virus tratará de infectar otros ficheros ejecutables (COM o EXE). Como la memoria RAM es temporal, al apagar el
ordenador 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 virus
deberá intentar infectar todos los ficheros que tenga a su alcance lo más rápidamente posible. Si el usuario observara
demora, 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
Curso de MS-DOS Capítulo 17 Página 3 de 11

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

Índice · Arriba · Publicaciones · Saulo.Net

17-4 Medidas para evitar el contagio


z 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.

z 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.

z 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.

z 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.

z 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 consiguen
recuperar 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:

z 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.

z 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.

z La fecha o la hora del fichero ha variado. Algunos virus modifican estos parámetros para conocer si un fichero ha
Curso de MS-DOS Capítulo 17 Página 4 de 11

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

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

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

z 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:

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

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

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

z El sistema no arranca. El virus ha estropeado el sector de arranque del disco duro, sólo podemos arrancar con un
disquete 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 programas
anti-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 cada
fichero buscando unas cadenas de caracteres específicas que identifican a cada virus. El problema se complica cuando
los 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.
Curso de MS-DOS Capítulo 17 Página 5 de 11

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 a
los datos.

Otro grupo de anti-virus son los residentes en memoria. Se suelen cargar en la memoria al arrancar el ordenador y
revisan algunas acciones del sistema operativo para comprobar que no hay movimiento de virus. Poseen la ventaja de
estar 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 de
seguridad.

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

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

z 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á un
interface 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.
Curso de MS-DOS Capítulo 17 Página 6 de 11

Después de cargar el programa, aparece el llamado Menú rápido que posee 5 botones con diversas funciones. Para
realizar 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 cuenta
que todas las opciones del menú rápido se encuentran representadas también mediante una tecla de función. En estos
casos 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
Curso de MS-DOS Capítulo 17 Página 7 de 11

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
Curso de MS-DOS Capítulo 17 Página 8 de 11

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

z 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.

z 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.

z Cuadro de diálogo "Virus localizado".


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

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 de
arranque. 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 programa
residente en memoria que controla todas las acciones del sistema operativo. Si Vsafe detecta algo inusual interfiere lo
que 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 lo
desactivemos.
Curso de MS-DOS Capítulo 17 Página 10 de 11

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.


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

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

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


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

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:

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.

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]


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

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.

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
Curso de MS-DOS Capítulo 18 Página 3 de 6

Í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 ]

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.

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

COUNTRY=1,437,C:\COUNTRY.SYS
Curso de MS-DOS Capítulo 18 Página 4 de 6

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]

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.

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.
Curso de MS-DOS Capítulo 18 Página 5 de 6

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

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.

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.
Curso de MS-DOS Capítulo 18 Página 6 de 6

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

También podría gustarte