You are on page 1of 100

Sistema operativo Ms-Dos.

• Introducción.

• Instalación de Ms-Dos 6.22.

• Primeros comandos del DOS.

• Ordenes internas y externas.

• La estructura arborescente del DOS.

• Comandos para la gestión de directorios.

• Comandos para la gestión de ficheros.

• Gestión de unidades de disco.

• Comandos y utilidades para facilitar el trabajo.

• Dispositivos.

• Redireccionamiento.

• Filtros.

• Comprimir unidades de disco.

• Copias de seguridad.

• Recuperación de datos.

• Procesamiento por lotes.

• La memoria.

• Fichero Config.sys

• Variables de entorno.

1
2
Introducción.

Cuando el ordenador se enciende y se carga el DOS correctamente, aparece la letra mayúscula A o C


seguida del carácter ">". Este conjunto de símbolos recibe el nombre de indicador de órdenes o prompt
del DOS. Si el sistema operativo se ha cargado desde la unidad A, el indicador será A>, y si se ha cargado
desde el disco duro, será C>. Dependiendo de una orden que veremos más adelante, el indicador puede
ser A:\> o C:\>. Este indicador nos muestra siempre la unidad en la que nos encontramos. Si el indicador
es A:\>, quiere decir que nos encontramos en la disquetera. Si el indicador es C:\>, la unidad en la que
nos encontramos será el disco duro. Para cambiar de una unidad a otra hay que escribir el nombre de la
unidad seguido del carácter ":".

El DOS es un sistema operativo que se gestiona introduciendo órdenes en el indicador del DOS. Una
orden es una palabra en inglés que expresa la operación a realizar. Todas las órdenes se activan o ejecutan
introduciendo su nombre (en mayúsculas o en minúsculas) en el indicador y pulsando la tecla Intro. Las
órdenes del DOS también se llaman mandatos o comandos.

Instalación de Ms-Dos 6.22.

Para que un ordenador funcione bajo el sistema operativo DOS hay que realizar la instalación de una
versión de dicho sistema operativo. Para realizar la instalación hay que seguir los siguientes pasos:

1. Introducir el disco 1 de la versión del DOS que se va a instalar (en nuestro caso la 6.22) en la unidad
A y encender el ordenador.

2. Leer detenidamente la pantalla que nos muestra. A continuación pulsar la tecla F3 dos veces para
salir del programa de instalación y crear las particiones que nos interesen. Si nuestro disco duro es
muy grande conviene crear fragmentos dentro del disco para instalar, por ejemplo, otros sistemas
operativos. Estos fragmentos se denominan particiones.

3. Ejecutar el comando FDISK para crear las particiones. En el menú que nos presenta elegiremos las
siguientes opciones:

 Opción 4.

Para ver las particiones que tenemos.

 Opción 3.

Para eliminar la partición DOS. Puede haber particiones que no sean DOS (por ejemplo, las que
crea Windows NT en formato NTFS). Estas particiones sólo es posible eliminarlas desde el
sistema operativo que las creó. Desde el nuevo menú que aparece eliminaremos las particiones
dependiendo del tipo que sean. El tipo de la partición se nos ha mostrado al pulsar la opción 4 en
el primer menú. Cuando hayamos eliminado todas las particiones volveremos al primer menú.

 Opción 1.

Para crear una partición DOS.

 Desde éste nuevo menú podremos crear tantas particiones como deseemos. Elegiremos
la opción 1 para crear la partición primaria, asignando el tamaño que necesitemos para dicha
partición. Si elegimos todo el tamaño el sistema se reiniciará. Si no elegimos todo el tamaño
deberemos establecer, desde el primer menú, una partición activa, que es la partición desde la
que el ordenador va a cargar el sistema operativo cuando se encienda. Normalmente el sistema
operativo se instala en la partición primaria, por lo que ésta partición será la partición activa.

4. Cuando el ordenador reinicie se volverá a cargar el programa de instalación del DOS. Pulsaremos dos
veces F3 para salir de dicho programa.

3
5. A continuación tenemos que formatear la partición donde vamos a instalar el DOS. Formatear un
disco es prepararlo para que pueda ser utilizado, borrando los datos que contenga. Para formatear el
disco utilizaremos el comando FORMAT C:/S. La opción /S se utiliza para copiar los ficheros del
sistema (IO.SYS, MSDOS.SYS y DBLSPACE.BIN) y el procesador de órdenes COMMAND.COM
que se necesitan para que el DOS se pueda cargar cuando se encienda el ordenador. Cuando acabe de
formatear podremos escribir la etiqueta del disco.

6. Escribir INSTALAR para ejecutar el programa de instalación.

7. Pulsar INTRO para instalar el DOS, siguiendo las instrucciones de instalación.

8. Sacar el disco de la unidad A y reiniciar el ordenador desde el disco duro. A partir de ahora nuestro
ordenador estará preparado para realizar las operaciones que deseemos.

Primeros comandos del DOS.

 VER. Muestra la versión del DOS inatalada en el ordenador.

 DATE. Se utiliza para ver y modificar la fecha del sistema. La sintaxis es:

DATE [fecha]

fecha es la nueva fecha que queremos asignar. Se escribe con el formato dd,mm,aa.

Si omitimos el parámetro fecha, DATE presenta la fecha actual y nos pide la nueva. Si no escribimos
la nueva fecha, mantiene la que tenía.

 TIME. Se utiliza para ver y modificar la hora del sistema. La sintaxis es:

TIME [hora]

hora es la nueva hora que queremos asignar. Se escribe con el formato dd-mm-aa.

Si omitimos el parámetro hora, TIME presenta la hora actual y nos pide la nueva. Si no escribimos la
nueva hora, mantiene la que tenía.

 CLS. Limpia el contenido de la pantalla y el cursor se sitúa en la esquina superior izquierda de la


misma. La sintaxis es:

CLS

 La ayuda universal.

Hay un parámetro que lo admiten todas las órdenes del DOS, y que se utiliza para obtener una
pantalla de información que explica el funcionamiento y la sintaxis de ésa orden. Para ejecutar la
ayuda hay que escribir el nombre del comando seguido de los caracteres "/?". Por ejemplo: DATE /?.

Ordenes internas y externas.

Las órdenes internas son las que se almacenan en el fichero COMMAND.COM. Este fichero se almacena
en memoria cuando se carga el DOS al encender el ordenador; por lo tanto, las órdenes internas están
situadas en la memoria del ordenador, incluidas todas en el fichero COMMAND.COM.

Las órdenes externas se almacenan cada una en un fichero independiente dentro de un directorio del disco
duro. Para acceder a ellas hay que situarse en dicho directorio y escribir su nombre. A continuación, el
sistema las carga en memoria y procede a su ejecución.

4
La estructura arborescente del DOS.

El DOS es un sistema operativo de disco, cuya principal función es organizar los datos en los discos. Para
éste propósito, el DOS utiliza una estructura arborescente basada en tres elementos fundamentales:
unidades, directorios y ficheros.

 Unidades.

Las unidades, discos o unidades de disco son dispositivos que se utilizan para almacenar datos de
forma permanente. Cada unidad de disco que tiene un ordenador es una unidad física. Si un
ordenador posee una unidad de disquete y un disco duro, tiene dos unidades físicas. Sin embargo, el
DOS sólo trabaja con unidades lógicas, que son las representaciones o los nombres que el DOS
utiliza para designar las unidades físicas. Las unidades lógicas se nombran con una letra de la A a la
Z (excluyendo las letras CH, LL y Ñ) seguida del carácter ":".

Las letras A y B se corresponden a las unidades de disquetes. Los discos duros empiezan a
nombrarse a partir de la letra C. Si un mismo disco duro tiene varias particiones, éstas empiezan a
nombrarse a partir de la letra C. Si tenemos una unidad de Cd-Rom, ésta empieza a nombrarse a
partir de la letra del último disco duro o de la última partición que tengamos.

La unidad activa es aquella en la que el usuario está situado en cada momento. La unidad activa es la
que viene representada en el indicador de órdenes. Para cambiar de unidad activa sólo hay que
escribir el nombre de la unidad que queremos activar, seguido del carácter ":".

 Ficheros.

Todos los datos con los que trabaja el ordenador están almacenados en ficheros, y éstos se ubican en
disquetes o en discos duros. Los ficheros con los que trabaja el DOS deben tener asociados,
obligatoriamente, un nombre, un tamaño en bytes, la fecha y hora de creación o de la última
modificación y un atributo.

El nombre de un fichero está compuesto de tres partes: un nombre, una extensión y el carácter "." que
separa el nombre de la extensión. El nombre tendrá un máximo de ocho caracteres y la extensión un
máximo de tres. Los caracteres permitidos son las letras de la A a la Z (incluida la Ñ), los números
del 0 al 9 y cualquiera de los siguientes caracteres especiales: ^ $ ~ ! # % & { } ( ) @ - _ . El
resto de caracteres no se aceptan. Las siguientes palabras reservadas no se admiten como nombre de
un fichero: CON, AUX, PRN, CLOCK$, LPT1, LPT2, LPT3, NUL, COM1, COM2, COM3, COM4.

El nombre de un fichero tiene que describir el contenido del mismo y la extensión el tipo de fichero,
como, por ejemplo, FORMAT.COM, CONFIG.SYS, CARTA.TXT, CLIENTES.DAT.

 Directorios.

Un directorio es una zona de la unidad que sirve para almacenar ficheros. Las unidades se dividen en
varios directorios donde se almacenan ficheros y que pueden contener, a su vez, otros directorios.
Los directorios sirven para organizar de una forma fácil y cómoda la gran cantidad de ficheros que
pueden contener las unidades.

Todos los directorios tendrán un nombre, la fecha y hora de su creación y un atributo.

El nombre de los directorios no lleva extensión y las reglas para formar un nombre son las mismas
que para los ficheros.

La organización de las unidades, los ficheros y los directorios en el sistema operativo DOS tiene una
estructura arborescente, porque adopta la forma de un árbol invertido. Toda unidad lógica tiene siempre
un directorio raíz, el cual es el primer directorio de la unidad, que sirve de partida en la estructura
arborescente. Este directorio se identifica mediante el carácter "\" (ALT + 92). En el directorio raíz se

5
pueden crear directorios y, a su vez, en éstos directorios es posible crear otros directorios, que reciben el
nombre de subdirectorios.

La mejor forma de mostrar cómo funciona la estructura arborescente de directorios es a través de un


ejemplo. Supongamos que en nuestro ordenador tenemos un disco duro con la siguiente estructura de
archivos y directorios y subdirectorios:

C:\

APUNTES

DOS

COMMAND.COM EDLIN.EXE
AUTOEXEC.BAT FORMAT.COM
CONFIG.SYS DISKCOPY.EXE
............................... ............................

SISTEMAS
ANALISIS.TXT
PROGRAM.TXT

UNID_TRA1.TXT
UNID_TRA2.TXT
UNID_TRA3.TXT

Para acceder a un directorio o a un fichero en una unidad, hay que indicar el lugar donde se encuentra. El
camino hasta el directorio o fichero se denomina trayectoria o ruta (path).

Ejemplos:

 La trayectoria del directorio APUNTES será: C:\APUNTES.

 La trayectoria del archivo FORMAT.COM es: C:\DOS\FORMAT.COM.

 La trayectoria del archivo UNID_TRA1.TXT será: C:\APUNTES\SISTEMAS\UNID_TRA1.TXT.

El nombre del directorio raíz C:\ se puede substituir por \.

No siempre es necesario indicar la ruta completa de un directorio o de un archivo. La trayectoria que se


debe especificar dependerá del lugar de la unidad en la que nos encontremos.

Ejemplos: Suponiendo que estamos situados en el directorio C:\APUNTES

 Para acceder al archivo ANALISIS.TXT habrá que escribir: ANALISIS.TXT.

 Para acceder al archivo UNID_TRA1.TXT será necesario escribir: SISTEMAS\UNID_TRA1.TXT.

 Para acceder al archivo FORMAT.COM se escribirá: C:\DOS\FORMAT.COM.

Si en el indicador del sistema queremos que se muestre la ruta del disco donde nos encontramos hay que
utilizar el comando PROMPT $P$G.

6
Comandos para la gestión de directorios.

 Comando DIR.

Visualiza el contenido de un directorio.

Su sintaxis es:

DIR [unidad] [directorio] [archivo] [opciones]

Los parámetros unidad, directorio y archivo se utilizan para especificar la ruta sobre la que queremos
presentar información.

Las opciones pueden ser:

 /S.

Visualiza el contenido de la ruta especificada y de todos sus subdirectorios. Una utilidad muy
importante de ésta opción es para buscar un archivo en el disco.

Ejemplo.

Estamos situados en el directorio C:\DOS y queremos buscar el archivo ANALISIS.TXT.

Si escribimos DIR ANALISIS.TXT /S el sistema nos dirá que no lo encuentra porque empieza a
realizar la búsqueda desde el directorio DOS.

Debemos escribir DIR \ANALISIS.TXT /S. De ésta forma, la búsqueda empezará a realizarla
desde el directorio raíz y la efectuará por todo el disco duro. Si hay más de un archivo con éste
nombre, nos presentará todos.

 /P.

Si el contenido del directorio ocupa más de una pantalla, ésta opción detiene la salida en pantalla
cada 24 líneas, de forma que podamos consultar toda la lista de ficheros. Para continuar con la
visualización hay que pulsar cualquier tecla.

 /W.

Visualiza el contenido del directorio a lo ancho de la pantalla, en cinco columnas. Sólo muestra
el nombre y la extensión de los ficheros, sin fecha, ni hora ni tamaño. Los directorios se
muestran entre conchetes.

 /O [orden].

Permite definir el orden en que se muestra el contenido de un directorio. El orden puede ser:

 N.

Ordena por el nombre de los elementos del directorio. El orden es de la A a la Z. Si


queremos que el orden sea de la Z a la A, deberemos escribir -N.

 E.

7
Ordena por la extensión, de la A a la Z. Los directorios aparecen antes que los ficheros. Si el
orden es de la Z a la A, hay que utilizar -E. En este caso los directorios se muestran después
que los ficheros.

 S.

Ordena según el tamaño de los ficheros, de menor a mayor. Los directorios se visualizan
antes que los ficheros. Si el orden lo queremos de mayor a menor, deberemos utilizar -S, en
cuyo caso los directorios se muestran después que los ficheros.

 D.

Ordena los elementos en base a la fecha de cada uno de ellos, primero los más antiguos y
luego los más recientes. Para el orden inverso hay que utilizar -D.

 G.

Permite agrupar los directorios, visualizando primero los directorios y luego los ficheros. El
orden inverso se consigue utilizando -G.

 /A [atributo].

Visualiza los ficheros que cumplan con el atributo especificado. Los atributos pueden ser:

 A.

Visualiza ficheros con formato de archivo activado. Con el atributo -A se visualizan los
ficheros que no tengan el atributo de archivo activado.

 S.

Visualiza los ficheros de sistema. Con el atributo -S se visualizan los ficheros que no son de
sistema.

 H.

Visualiza los ficheros ocultos. Para visualizar los ficheros que no están ocultos se utiliza -H.

 R.

Visualiza los ficheros de sólo lectura. Si utilizamos -R se visualizan los ficheros que no son
de sólo lectura.

 D.

Visualiza sólo los directorios. Si sólo se quieren visualizar los ficheros, hay que utilizar -D.

 /B.

Visualiza los ficheros sin incluir tamaño, fecha y hora. También se muestran los directorios,
aunque no presenta ninguna marca que los diferencie de los ficheros. El listado lo realiza
verticalmente. Si se combinan los parámetros /B y /W sólo se tiene en cuenta /B.

 /L.

Visualiza los ficheros y directorios utilizando letras minúsculas.

8
 /C[H].

Visualiza la razón de compresión de cada fichero, si se trata de una unidad comprimida. /C


indica la razón de compresión suponiendo que el disco original sin comprimir tenía clusters de
8Kb mientras que /CH supone el tamaño real del cluster que posee la unidad no comprimida. Un
cluster es la cantidad de información que el DOS puede leer o grabar de una sola vez.
Normalmente suele ser de un sector (512Kb). Esta opción no tiene efecto si se utiliza con /W
o /B.

 Directorios . y .. .

Cuando visualizamos el contenido de un directorio, excepto el directorio raíz, siempre aparecen dos
elementos cuyos nombres son un punto (.) y dos puntos consecutivos (..), que son identificados como
directorios.

El símbolo . es una notación abreviada del directorio activo, es decir, se utiliza como sinónimo del
directorio que en ese momento sea el directorio activo.

El símbolo .. es un sinónimo del directorio padre del directorio activo. El directorio padre de un
directorio es el que está un nivel por encima en la cadena arborescente.

 Comando CD.

Se utiliza para cambiar el directorio activo o visualizar el nombre del directorio activo. También se
puede utilizar la orden CHDIR (CD es una abreviatura de ésta orden).

Su sintaxis es:

CD [{unidad, trayectoria}]

 La orden CD sin parámetros muestra el directorio activo de la unidad activa.

 CD unidad visualiza el directorio activo de la unidad indicada.

 CD trayectoria cambia el directorio activo por el especificado en la trayectoria. La


trayectoria no puede tener más de 63 caracteres.

 Comando MD.

Sirve para crear directorios. También se conoce como comando MKDIR.

Su sintaxis es:

MD directorio.

directorio es el nombre del directorio que queremos crear. No se puede crear más de un directorio al
mismo tiempo.

 Comando RD.

Se utiliza para borrar directorios del disco. También se conoce como comando RMDIR.

Su sintaxis es:

RD directorio.

Directorio es el nombre del directorio a borrar. Sólo se puede borrar un directorio a la vez.

Para borrar un directorio hay que tener en cuenta las siguientes premisas:

9
 Un directorio sólo se puede borrar si está vacío. Si un directorio contiene ficheros o
directorios habrá que eliminarlos antes de borrar el directorio.

 La orden RD no puede borrar el directorio activo. Para borrar un directorio hay que
estar situados en un directorio distinto.

 La orden RD no puede borrar el directorio raíz. Todo disco ha de tener un directorio


raíz.

 El directorio no se borrará si tiene algún fichero con los atributos de sólo lectura, oculto
o de sistema.

 Comando DELTREE.

Sirve para borrar ficheros y directorios. Se diferencia del comando RD en que con ésta orden se
pueden eliminar directorios que no estén vacíos y que contengan ficheros o subdirectorios.

Su sintaxis es:

DELTREE [/Y] {fichero, directorio} [{fichero, directorio}] [...].

El comando DELTREE nos pide confirmación antes de eliminar el fichero o directorio.

El parámetro /Y se utiliza para borrar el fichero o directorio sin pedir confirmación.

Si ponemos el nombre o la trayectoria de un fichero sólo se borrará dicho fichero.

Si ponemos el nombre o la trayectoria de un directorio se borrará dicho directorio y el contenido del


mismo.

Este comando borra los ficheros que tengan el atributo de sólo lectura, oculto o de sistema.

Al igual que ocurre con el comando RD, con éste comando no se puede borrar el directorio activo.

 Comando MOVE.

Se utiliza para cambiar el nombre de un directorio. También se utiliza para mover ficheros, opción
que veremos más adelante.

Su sintaxis es:

MOVE directorio_antiguo directorio_nuevo.

El directorio nuevo ha de ser el nombre de un directorio que no exista.

No se puede renombrar el directorio activo.

 Comando TREE.

Visualiza la estructura arborescente completa de directorios, subdirectorios y ficheros.

Su sintaxis es:

TREE [directorio] [/F] [/A]

Si se omiten los parámetros, se muestra la estructura arborescente del directorio activo.

Si se introduce un directorio, se visualiza la estructura arborescente de dicho directorio.

10
Con la opción /F se visualiza, además, el nombre de todos los ficheros incluidos en cada uno de los
directorios de la estructura arborescente.

Con la opción /A los caracteres gráficos (las rayas) se convierten en caracteres normales. Esta opción
se suele utilizar cuando redireccionamos la salida a la impresora.

 Ejercicios con directorios.

1. Crear la siguiente estructura arborescente:

C:

CARTA DO APUNTE FICHER

POSTAL COMER ANALISI SISTEM PROGRA

EVAL EVAL

md cartas

md apuntes

md ficheros

md cartas\postales

md cartas\comerci

md apuntes\analisis

md apuntes\sistemas

md apuntes\program

md apuntes\sistemas\eval1

md apunetes\sistemas\eval2

2. Desde el directorio raíz, ver la estructura arborescente del disco duro.

tree |more

3. Desde el directorio raíz, cambiar el nombre del directorio APUNTES por el de INSTI.

move apuntes insti

4. Desde el directorio raíz, cambiar el nombre del directorio EVAL2 por el de EVAL3.

move insti\sistemas\eval2 insti\sistemas\eval3

11
5. Desde el directorio SISTEMAS, cambiar el nombre del directorio EVAL3 por el de
EVAL2.

cd insti\sistemas

move eval3 eval2

6. Desde el directorio SISTEMAS, ver la estructura arborescente del disco duro desde el
directorio raíz.

tree \ |more

7. Desde el directorio SISTEMAS, borrar el directorio EVAL2.

rd eval2

8. Desde el directorio raíz, borrar los directorios CARTAS, con todos sus subdirectorios, y
FICHEROS, pidiendo confirmación.

cd \

deltree cartas ficheros

9. Desde el directorio raíz, ver la estructura arborescente del disco duro.

tree |more

10. Desde el directorio raíz, borrar el directorio INSTI con todos sus subdirectorios, sin
pedir confirmación.

deltree /y insti

11. Desde el directorio raíz, ver la estructura arborescente del disco duro.

tree |more

Comandos para la gestión de ficheros.

 Tipos de ficheros y extensiones.

Todos los datos almacenados en las unidades de almacenamiento se guardan en ficheros. Existen
muchos tipos de ficheros, pero se puede realizar una clasificación general en dos tipos de ficheros:

 Ficheros ejecutables. Son los que se pueden ejecutar directamente escribiendo su


nombre, sin extensión, en el indicador de órdenes del DOS. Los ficheros ejecutables han de tener
alguna de las extensiones COM, EXE o BAT. Los siguientes ficheros son ejecutables, y se
ejecutarán escribiendo sólo su nombre: TREE.COM, LABEL.EXE, AUTOEXEC.BAT.

 Ficheros de datos. Son ficheros que tienen información para el usuario o que han sido
creados por éste.

Las extensiones de los archivos suelen definir el tipo y la función de los mismos. Las más utilizadas
son las siguientes:

 ASM. Fichero de texto con un programa escrito en lenguaje ensamblador (ASseMbler).

 BAT. Es un fichero ejecutable por lotes (BATch). Un fichero por lotes es aquél en el
que se ejecutan automáticamente varias órdenes seguidas, sin intervención del usuario.

12
 BAK. Fichero de seguridad (BAcKup). Contienen la versión antigua de un fichero
modificado.

 BAS. Fichero con un programa codificado en lenguaje BASic.

 COM. Fichero ejecutable de comando (COMmand).

 DBF. Fichero con una base de datos (Data Base File) del programa Dbase.

 DOC. Ficheros con documentos (DOCument) sobre un determinado programa. Son


ficheros de texto.

 EXE. Fichero ejecutable (EXEcutable)

 HLP. Fichero de texto con ayuda (HeLP) o información sobre un determinado


programa.

 OVL, OVR. Fichero OVeRLay. Contiene parte del código de un programa y es llamado
por un fichero EXE o COM.

 SYS. Fichero de sistema (SYStem) cuyo contenido corresponde a un controlador de


dispositivo. Un controlador de dispositivo es un conjunto de rutinas, funciones o instrucciones
que sirven para comunicar un dispositivo con el sistema operativo DOS. Por ejemplo, un ratón
necesita un controlador que contenga las rutinas que permiten atender al movimiento del ratón y
las pulsaciones de los botones. Para poder utilizar el ratón ha de estar cargado en memoria su
controlador.

 TMP. Fichero TeMPoral. Contiene datos utilizados durante la ejecución de un


programa. Estos ficheros se borran automáticamente cuando el programa termina su ejecución.

 TXT. Ficheros de TeXTo, creados normalmente por el usuario.

 Los caracteres comodines.

Los caracteres comodines se utilizan para identificar varios ficheros con una única trayectoria. Se
llaman caracteres comodines porque sustituyen cualquier carácter válido en el nombre del fichero.
Sólo se pueden utilizar en los nombres de los ficheros, no en las trayectorias de los directorios.
Cuando un nombre de fichero tiene algún carácter comodín, se dice que es una plantilla de ficheros,
pues sirve como plantilla para designar los nombres de varios ficheros.

 Carácter "?".

Representa cualquier carácter válido en el nombre de un fichero, pero sólo un carácter. Por
ejemplo, supongamos que en el disco tenemos tres ficheros llamados PROGRAMA.BAK,
PROGRAMA.BAS y PROGRAMA.BAT. Para visualizar los tres ficheros con una única orden
DIR hay que escribir: DIR PROGRAMA.BA? ó DIR PROGRAMA.B??. Si escribimos DIR
PROGRAMA.B? no visualizará nada, pues el sistema supone que la extensión a visualizar tiene
sólo dos letras, ya que el carácter "?" sustituye sólo a una letra.

 Carácter "*".

Representa uno o más caracteres válidos en el nombre de un fichero. En el ejemplo anterior


obtendríamos el mismo resultado si escribiéramos: DIR PROGRAMA.*, pues nos visualizará el
fichero PROGRAMA con todas sus extensiones.

Con el carácter comodín "*", se llenan todos los caracteres hasta completar los ocho caracteres
del nombre y los tres de la extensión. Por ejemplo, si escribimos DIR PR*.*, el sistema podría
visualizar los siguientes archivos: PRINT.EXE, PROGRAMA.BAK, PROGRAMA.BAS,
PROGRAMA.BAT.

13
Ejemplos de plantillas:

1. Plantilla para visualizar todos los ficheros con la extensión BAT.

DIR *.BAT

2. Plantilla de todos los ficheros con un nombre de tres letras y cualquier extensión.

DIR ???.*

3. Plantillas de todos los ficheros.

DIR *.*

4. DIR FICH*.D??

Visualiza todos los ficheros que comiencen con las letras FICH y tengan una extensión de tres
letras, cuya primera sea la letra D.

 Comando TYPE.

Visualiza el contenido de un fichero. Este fichero deberá ser un fichero de texto, creado según el
código ASCII. Si el fichero que se visualiza no es de texto o no está creado según el código ASCII,
su contenido será ilegible.

La sintaxis es:

TYPE fichero.

En el nombre o la trayectoria del fichero no se pueden utilizar los caracteres comodines, pues el
comando TYPE sólo puede visualizar el contenido de un fichero.

Al visualizar el contenido de un fichero, puede ocurrir que ocupe más de una pantalla, por lo que
únicamente podremos consultar las últimas 25 líneas del mismo. Hay dos métodos para detener la
visualización del contenido de un fichero:

 Ctrl+S. Pulsando las teclas Ctrl y S conjuntamente, se detiene la visualización del


contenido del fichero. Para seguir con la visualización hay que pulsar cualquier tecla.

 |MORE. La visualización del contenido del fichero se detiene cuando la pantalla está
llena. Para continuar con la visualización hay que pulsar cualquier tecla. El carácter "|" se
genera pulsando conjuntamente las teclas AltGr y 1 del teclado alfanumérico o las teclas Alt
y 124 del teclado numérico.

Se puede anular la visualización del contenido del fichero pulsando Ctrl+C.

 Comando PRINT.

Imprime un fichero o un conjunto de ficheros en modo background, es decir, mientras se realizan


otras tareas.

La orden PRINT funciona mediante una cola de impresión. Una cola de impresión es una lista que
contiene todos los ficheros que se van a imprimir. El sistema operativo imprime un archivo y, cuando
la impresión finaliza, empieza a imprimir el siguiente archivo que aparece en la cola.

La sintaxis es:

PRINT [/D:dispositivo] [/B:tamaño] [/U:ticks] [/M:ticks] [/S:ticks] [/Q:tamaño_cola]


[[fichero] [/T] [/C] [/P]] [...]

14
 PRINT. Visualiza los ficheros que están en la cola de impresión.

 /D:dispositivo.

Indica el nombre del dispositivo de impresión. Los nombres válidos son PRN, LPT1, LPT2,
LPT3, AUX, COM1, COM2, COM3 y COM4. Los dispositivos LPTn son los puertos paralelo y
son los más rápidos. Los dispositivos COMn son los puertos serie y son los más lentos. Cuando
éste parámetro se omite y es la primera vez que se imprime, aparece un mensaje pidiendo el
dispositivo en el que se imprimirá. Si pulsamos INTRO, se asume el dispositivo PRN.

 /B:tamaño.

Indica el tamaño en bytes del buffer de impresión. El valor por defecto es 512 bytes y el rango
permitido es de 512 a 16.384 bytes. Al aumentar el tamaño del buffer, aumenta la velocidad de
impresión pero se pierde memoria RAM que puede hacer falta para la ejecución del resto de
tareas.

 /U:ticks.

Indica el número de impulsos de reloj que la orden PRINT espera hasta que la impresora esté
lista. Si la impresora no está disponible dentro del lapso especificado, los ficheros no se
imprimirán. El valor por defecto y valor mínimo es 1. El valor máximo es 255. El valor de cada
impulso de reloj depende del microprocesador del ordenador.

 /M:ticks.

Especifica el número de impulsos de reloj que puede tardar la orden PRINT en imprimir cada
carácter. El rango de valores permitidos es de 1 a 255. El valor por defecto es 2.

 /S:ticks.

Indica el número de impulsos de reloj que se dedican a la tarea de impresión. El rango es de 1 a


255. El valor por defecto es 8. Si se aumenta éste valor, aumenta la velocidad de impresión pero
disminuye el tiempo dedicado a otros programas.

 /Q:tamaño_cola.

Indica el número de ficheros que puede almacenar la cola de impresión. El rango de valores es
de 4 a 32. El valor por defecto es 10.

 /T.

Borra todos los ficheros de la cola. El fichero que se está imprimiendo termina su impresión.

 /C.

Borra de la cola de impresión tanto el fichero que precede al parámetro /C (si es que hay alguno)
como todos los ficheros siguientes hasta que aparece el parámetro /P (si es que aparece), en cuyo
caso /P se aplica al fichero que precede a dicho parámetro.

 /P.

Añade a la cola de impresión tanto el fichero que precede al parámetro /P (si es que hay alguno)
como todos los ficheros siguientes hasta que aparece el parámetro /C (si es que aparece), en cuyo
caso /C se aplica al fichero que precede a dicho parámetro.

Los parámetros /D, /B, /U, /M, /S y /Q sólo pueden introducirse la primera vez que se ejecuta la
orden PRINT.

15
Cada vez que finaliza la impresión de un archivo, se realiza un salto de página y se continúa con el
siguiente archivo de la cola.

Si se imprimen archivos desde la unidad de disquete, no se puede sacar el disco hasta que no termine
la impresión de todos los ficheros.

Ejemplo.

Para cancelar la impresión de los ficheros AUTOEXEC.BAT y CONFIG.SYS y añadir a la cola el


fichero CARTA.TXT se pueden utilizar, indistintamente, las siguientes órdenes:

PRINT AUTOEXEC.BAT /C CONFIG.SYS CARTA.TXT /P

PRINT CARTA.TXT /P AUTOEXEC.BAT /C CONFIG.SYS

PRINT /C AUTOEXEC.BAT CONFIG.SYS CARTA.TXT /P

 Comando REN.

Se utiliza para cambiar el nombre de un fichero. También se puede utilizar la orden RENAME.

La sintaxis es:

REN fichero_antiguo fichero_nuevo

Hay que tener en cuanta las siguientes consideraciones:

 No puede existir un fichero con el nuevo nombre que se quiere asignar.

 Si se especifica una trayectoria en el nombre del fichero antiguo, el nombre del fichero
nuevo no puede tener una trayectoria distinta. Deberá tener la misma trayectoria o ninguna, en
cuyo caso asumirá la trayectoria del fichero antiguo.

 Comandos DEL y ERASE.

Se utilizan para borrar ficheros.

La sintaxis es:

DEL fichero [/P]

ERASE fichero [/P]

La opción /P pide confirmación al usuario antes de borrar el fichero.

 Comando COPY.

Sirve para realizar copias de ficheros.

La sintaxis es:

COPY fichero [{unidad, directorio, fichero}] /V

La opción /V activa el modo de verificación durante el proceso de copia. Cuando está activo el
proceso de verificación, el DOS comprueba que todas las operaciones de lectura y escritura se han
efectuado correctamente.

El primer parámetro puede ser el nombre de un fichero o una trayectoria.

16
Hay cuatro formas posibles de ejecutar la orden COPY, dependiendo del segundo parámetro:

 COPY fichero unidad.

El fichero especificado en el primer parámetro se copia en el directorio activo de la unidad


indicada.

Ejemplo.

COPY CONFIG.SYS A:, copia el fichero CONFIG.SYS en el directorio activo de la unidad de


disquete.

 COPY fichero directorio.

El fichero se copia en el directorio especificado.

Ejemplo.

COPY CONFIG.SYS C:\DOS_SEG, copia el fichero CONFIG.SYS en el directorio DOS_SEG


de la unidad de disco duro.

 COPY fichero fichero.

El fichero se copia en el directorio especificado en el segundo parámetro, cambiándole de


nombre.

Ejemplo.

COPY CONFIG.SYS C:\DOS_SEG\CONFIG.BAK, copia el fichero CONFIG.SYS en el


directorio DOS_SEG de la unidad C:, con el nombre CONFIG.BAK.

 COPY fichero.

El fichero se copia en el directorio activo.

Ejemplos.

 C:\> COPY A:\AUTOEXEC.BAT, copia el fichero AUTOEXEC.BAT de la unidad A:


en el directorio raíz del disco duro.

 C:\> COPY AUTOEXEC.BAT, genera un error porque un archivo no se puede copiar


sobre sí mismo.

Al realizar copias de archivos hay que tener en cuenta las siguientes consideraciones:

 Si en el directorio de destino existe un fichero con el mismo nombre, el sistema


pregunta si queremos escribir encima de éste fichero; si respondemos afirmativamente, el
contenido de dicho fichero se reemplaza por el del fichero a copiar.

 La orden COPY no copia los ficheros ocultos ni los ficheros de sistema.

 Con la orden COPY se pueden combinar varios ficheros.

Ejemplo.

COPY CARTA1.TXT+CARTA2.TXT CARTA.TXT, el archivo CARTA.TXT tendrá el


contenido de los archivos CARTA1.TXT y CARTA2.TXT.

17
La orden COPY CARTA?.* CARTA.TXT produciría el mismo resultado que la orden COPY del
ejemplo anterior.

 Comando MOVE.

Se utiliza para mover ficheros. Mover un fichero significa copiar el fichero en la posición de destino
y borrarlo de la posición de origen.

 Sintaxis 1:

MOVE fichero1 fichero2

El nombre y la posición del fichero1 se cambian por el nombre y la posición del fichero2.

Ejemplo.

C:\> MOVE AUTOEXEC.BAT \DOS, el fichero AUTOEXEC.BAT se borra del directorio raíz
y se crea en el directorio \DOS.

 Sintaxis 2:

MOVE [/Y] fichero[,fichero][...] directorio

Mueve varios ficheros a un directorio que puede o no existir previamente.

Los nombres de los ficheros pueden incluir caracteres comodines. Si sólo incluimos un fichero
en el primer parámetro el sistema lo toma como si estuviéramos utilizando la sintaxis 1.

Si el directorio no existe, el sistema pregunta al usuario si desea crearlo. Si se responde


negativamente se genera un error porque el segundo parámetro lo interpreta como si fuera un
fichero. En éste caso, estaríamos intentando combinar varios ficheros en uno y ésta operación no
la puede realizar el comando MOVE.

 Comando FC.

Se utiliza para comparar ficheros.

Existen dos tipos de comparaciones: ASCII (para ficheros de texto) y binaria (para ficheros binarios).
Tanto los ficheros ASCII como los ficheros binarios están formados por un conjunto de bytes. En los
ficheros ASCII, los bytes se interpretan según el código ASCII, mientras que en los ficheros binarios
los bytes se interpretan como instrucciones directas al microprocesador. Los ficheros ASCII son los
ficheros de texto y los ficheros binarios son los ficheros con la extensión COM, EXE, SYS, OBJ,
LIB o BIN. Existe un tercer tipo de ficheros, que no son ASCII puros ni binarios puros, como, por
ejemplo, los documentos generados por un procesador de textos, que interpretan sus caracteres como
código ASCII pero añaden códigos de control propios (subrayado, negrita, tipo de letra, etc.), que
sólo entiende el procesador de textos que los creó.

La sintaxis del comando FC es:

FC fichero1 fichero2 [/L] [/B] [/C] [/A] [/LBnúmero] [/N] [/T] [/W] [/número]

Por defecto, el comando FC intenta averiguar el tipo de los ficheros a comparar (ASCII o binarios),
actuando en cada caso de forma diferente.

 /L.

La comparación se realiza línea a línea. Si existe alguna discordancia en los caracteres de alguna
línea, la orden FC muestra el valor de ésa línea, de la anterior y de la siguiente de los dos
ficheros.

18
 /B.

Se realiza una comparación binaria, en la que se comparan uno a uno los bytes de cada fichero
(el primer byte del fichero1 con el primer byte del fichero2, el segundo del fichero1 con el
segundo del fichero2, y así sucesivamente). Si los bytes comparados no son iguales, la orden FC
muestra una línea con la posición del byte donde surgió la diferencia y el valor del byte en cada
fichero.

Ejemplo.

C:\>FC AUTOEXEC.BAT AUTOEXEC.BAK


Comparando archivos AUTOEXEC.BAT y AUTOEXEC.BAK
000000A4: 59 4B

El valor A4 indica en qué byte del fichero se ha hallado la diferencia. 59 es el valor que tiene el
fichero1 en el byte A4 y 4B es el valor que tiene el fichero2 en el byte A4.

 /C.

Considera las letras minúsculas iguales que las mayúsculas. Por defecto, las letras minúsculas y
mayúsculas son distintas.

 /A.

Se visualiza únicamente la primera y última línea de un bloque con más de dos líneas diferentes.

 /LBnúmero.

Define el número máximo de líneas consecutivas diferentes que puede gestionar el comando FC.
Por defecto, el buffer de líneas es de 100. Los ficheros que difieren en un número de líneas
consecutivas mayor que el tamaño de éste buffer, abortan la comparación.

 /N.

Visualiza el número de línea en una comparación entre ficheros de texto.

 /T.

No expande los tabuladores a espacios en blanco.

 /W.

Realiza la comparación sustituyendo los espacios en blanco y tabuladores consecutivos por un


sólo espacio en blanco. Si se utilizan las opciones /W y /T, prevalece /W.

 /número.

Especifica el número de líneas que tienen que coincidir después de encontrar una diferencia. El
valor por defecto es 2. Si ponemos /20, indica que después de cada diferencia tiene que haber 20
líneas iguales. Si se encuentra una diferencia antes de la línea 20, la orden FC muestra todas las
líneas a partir de la que ha encontrado la diferencia, y hasta la 20, como si fueran distintas.

 Comando ATTRIB.

Se utiliza para visualizar o modificar los atributos de un fichero.

Los atributos que puede tener un fichero son cuatro:

19
 Sólo lectura (Read-Only). Sirve para proteger el fichero de forma que sólo pueda leerse,
pero no borrarse ni modificarse. Este atributo se especifica con +R, si el atributo sólo lectura está
activado, o -R, si está desactivado.

 Archivo (Archive). Este atributo sirve para saber si se ha modificado o no un fichero.


Cuando un fichero se crea o modifica, se activa el atributo archivo, con +A. Para desactivar el
atributo archivo de un fichero hay que utilizar -A.

 Oculto (Hidden). Sirve para ocultar un fichero, evitando que sea procesado por las
órdenes habituales del DOS. Cuando un fichero está oculto, no aparece en los listados de la
orden DIR, ni se puede borrar con DEL, ni se puede copiar con COPY, ni permite borrar el
directorio donde se encuentre. Si el fichero oculto es un fichero de texto, se puede imprimir con
la orden TYPE y editar con la orden EDIT. Los ficheros ejecutables que estén ocultos sí se
pueden ejecutar. Para ocultar un archivo se utiliza +H y para quitar el atributo de oculto -H.

 Sistema (System). Este atributo identifica los ficheros de sistema. Los ficheros de
sistema son ficheros especiales que se utilizan durante la inicialización del DOS. Hay dos
ficheros de sistema: IO.SYS y MSDOS.SYS. Los ficheros de sistema actúan como si fueran
ficheros ocultos, con la diferencia de que los ficheros ejecutables que tengan el atributo de
fichero de sistema no se pueden ejecutar. Para activar el atributo de sistema a un fichero se
utiliza +S y para desactivarlo -S.

La sintaxis es:

ATTRIB [fichero] [{+R,-R}] [{+A,-A}] [{+H,-H}] [{+S,-S}] [/S]

 Si se utiliza la orden ATTRIB sin parámetros, se visualizan los attributos de todos los
ficheros del directorio activo.

 Si se añade un fichero o una trayectoria, se visualizan los atributos de los ficheros


especificados. No se puede poner el nombre de un directorio. Para visualizar los atributos del
directorio raíz hay que usar ATTRIB C:\*.* y no ATTRIB C:\, porque es el nombre del
directorio, y la orden ATTRIB es exclusiva para ficheros.

 Con la opción /S se visualizan los atributos de los ficheros especificados y de los


ficheros de los subdirectorios del directorio en el que se encuentren dichos ficheros y que
cumplan con la plantilla especificada.

Ejemplo.

C:\>ATTRIB *.SYS /S visualiza los atributos de los ficheros con la extensión SYS del directorio
raíz y los atributos de los ficheros con la extensión SYS de los subdirectorios del directorio raíz.

 Comando XCOPY.

Copia ficheros y directorios, incluyendo los subdirectorios que cuelguen de los directorios
especificados, si es que existen.

La sintaxis es:

XCOPY fichero [{unidad, directorio, fichero}] [/S[/E]] [/A] [/M] [/D:fecha] [/P] [/V] [/W]

 El primer parámetro es obligatorio y representa la trayectoria de los ficheros a copiar.

 El segundo parámetro puede recibir distintos valores:

 Si es una unidad, los ficheros se copian en dicha unidad.

20
 Si es una trayectoria de directorio, los ficheros se copian en dicho directorio. Si el
directorio no existe nos pregunta si queremos realizar la copia en un archivo o en un
directorio. Si decimos que en un archivo, nos crea el nuevo archivo, con la salvedad de que
si hemos utilizado una plantilla de ficheros en el primer parámetro, va a realizar la copia de
todos los ficheros en el mismo y nos va preguntando si queremos sobreescribir en dicho
fichero, por lo que al terminar la copia éste fichero sólo contendrá un fichero de todos los
que hemos copiado. Si decimos que la copia la realice en un directorio, el sistema creará
dicho directorio y los archivos del primer parámetro se copiarán en él.

 Si es una trayectoria de fichero, ocurrirá lo mismo que en el caso anterior cuando el


directorio no existe.

 /S y /E.

Copia los ficheros del directorio especificado y los ficheros de los subdirectorios incluidos en
dicho directorio. Los directorios que estén vacíos no se copian. Si se utiliza la opción /E, se
copian los directorios vacíos.

 /A.

Copia los ficheros que tienen activado el atributo de archivo y, después de copiarlos, los ficheros
siguen teniendo activado el atributo de archivo.

 /M.

Igual que la opción /A, pero después de la copia desactiva el atributo de archivo de los ficheros
copiados.

 /D:fecha.

Copia los ficheros con fecha igual o posterior a la fecha indicada. El formato de la fecha deber
ser el mismo que el mostrado por la orden DATE.

 /P.

Visualiza un mensaje que confirma la copia de cada fichero.

 /V.

Verifica si los ficheros se han copiado correctamente.

 /W.

Realiza una pausa antes de comenzar la copia que puede ser útil para cambiar de disquete.

La orden XCOPY no puede copiar los ficheros ocultos y de sólo lectura.

 Comando REPLACE.

Se utiliza para actualizar ficheros.

La sintaxis es:

REPLACE trayectoria_origen [trayectoria_destino] [/A] [/P] [/R] [/S] [/U] [/W]

Si no se utiliza ninguna opción, se reemplazan los ficheros de la trayectoria destino que tengan el
mismo nombre de los ficheros de la trayectoria origen.

21
En el segundo parámetro no hay que especificar el nombre de los ficheros a reemplazar, pues deben
ser los mismos que los indicados en la trayectoria origen. Si los ficheros especificados en trayectoria
origen no existen en trayectoria destino no se reemplazará ningún archivo.

 /A.

Los archivos especificados en trayectoria origen se agregan a la trayectoria destino. Es


incompatible con las opciones /S y /U.

 /P.

Visualiza un mensaje que confirma la sustitución de cada fichero que va a ser reemplazado.

 /R.

Sustituye los ficheros de sólo lectura. Si no se especifica /R, cualquier intento para sustituir un
fichero de sólo lectura provoca un error y aborta el proceso.

 /S.

Amplía la sustitución a todos los ficheros con el mismo nombre que se encuentren en
subdirectorios de trayectoria destino.

 /U.

Sustituye exclusivamente los ficheros de trayectoria destino que sean más antiguos (con una
fecha anterior) que los ficheros de trayectoria origen.

 /W.

Realiza una pausa antes de comenzar la sustitución de los ficheros.

 Comando EDIT.

Carga en memoria el editor de textos a pantalla completa del DOS, que permite visualizar, crear,
modificar e imprimir el contenido de ficheros de texto ASCII.

La sintaxis es:

EDIT [fichero] [/H] [/B] [/G] [/NOHI]

Si ejecutamos EDIT sin parámetros, carga el editor y presenta una pantalla para acceder al sistema de
ayuda. Cuando sale de la pantalla de ayuda o de la pantalla inicial, entra en estado de edición para
introducir el texto deseado. Cuando salga del editor nos pedirá, si deseamos guardar el texto, el
nombre del fichero, pudiendo almacenarlo en un directorio existente de una unidad de disco.

Si ejecutamos EDIT con un nombre de archivo y no existe, se crea. Si el archivo existe, se presenta
en pantalla.

 /H.

Activa automáticamente la resolución válida según el sistema de vídeo, en la que se puede


alcanzar un mayor número de filas en la edición de los archivos. Por defecto, el número de filas
es 25. Si tenemos una tarjeta EGA podemos alcanzar 43 filas y si tenemos una tarjeta VGA
podemos llegar a 50 filas.

 /B.

22
Carga el editor visualizándolo en blanco y negro. Se utiliza en ordenadores con sistemas de
vídeo monocromo cuando la pantalla del editor no se ve correctamente o en sistemas de vídeo a
color para cargar el editor en blanco y negro.

 /G.

Sólo sirve para ordenadores con tarjeta de vídeo CGA, y permite actualizar la pantalla con un
método más rápido.

 /NOHI.

Carga EDIT utilizando únicamente 8 colores y no los 16 colores habituales. Esta opción se
utiliza cuando el sistema no es capaz de resaltar las letras de los nombres de menú.

 Ejercicios con ficheros.

1. Crear el directorio PRUEBA en raíz.

md prueba

2. Crear, en el directorio PRUEBA, los ficheros TEXTO1.TXT, TEXTO2.TXT,


TEXTO3.TXT, TEXTO4.TXT y TEXTO5.TXT con información distinta en cada uno de ellos.

cd prueba

edit texto1.txt

edit texto2.txt

edit texto3.txt

edit texto4.txt

edit texto5.txt

3. Mover todos los archivos del directorio PRUEBA al directorio PRUEBA1.

move *.txt \prueba1

4. Desde el directorio PRUEBA, sacar un directorio de los directorios PRUEBA y


PRUEBA1.

dir

dir \prueba1

5. Desde el directorio PRUEBA, copiar todos los archivos con la extensión TXT del
directorio PRUEBA1.

copy \prueba1\*.txt

6. Combinar todos los ficheros con la extensión TXT, utilizando la suma, en un sólo
fichero, llamado TEXTO.TXT.

copy texto1.txt+texto2.txt+texto3.txt+texto4.txt+texto5.txt texto.txt

7. Visualizar por pantalla el contenido de todos los archivos con la extensión TXT.
Recordar que hay que ir uno a uno.

type texto1.txt

23
type texto2.txt

type texto3.txt

type texto4.txt

type texto5.txt

type texto.txt

8. Borrar el fichero TEXTO.TXT.

del texto.txt

9. Desde el directorio PRUEBA, editar el fichero TEXTO1.TXT del directorio PRUEBA1


y cambiar una línea.

edit \prueba1\texto1.txt

10. Desde el directorio PRUEBA, comparar los ficheros TEXTO1.TXT de los directorios
PRUEBA y PRUEBA1, sin utilizar ninguna opción. Volver a comparar los ficheros utilizando
las opciones /L y /B.

fc texto1.txt \prueba1\texto1.txt

fc texto1.txt \prueba1\texto1.txt /l

fc texto1.txt \prueba1\texto1.txt /b

11. Desde el directorio PRUEBA, borrar el directorio PRUEBA1 con todos sus archivos,
pidiendo confirmación.

deltree \prueba1

12. Crear los subdirectorios LLENO y VACIO en el directorio PRUEBA.

md lleno

md vacio

13. Copiar todos los archivos del directorio PRUEBA en el directorio LLENO.

copy *.txt lleno

14. Copiar todos los archivos y subdirectorios del directorio PRUEBA, excepto los vacíos,
en el directorio \PRUEBA1. Cuando nos pregunte si queremos un archivo o un directorio,
responderemos un archivo. Visualizar el contenido del archivo \PRUEBA1 para ver qué ha
ocurrido. Observar que ha creado un directorio LLENO con un sólo archivo PRUEBA1, con el
mismo contenido que el archivo \PRUEBA1. Borrar el archivo \PRUEBA1 y el directorio
LLENO.

xcopy . \prueba1 /s

del \prueba1

deltree \lleno

24
15. Copiar todos los archivos y subdirectorios del directorio PRUEBA, excepto los vacíos,
en el directorio PRUEBA1. Cuando nos pregunte si queremos un archivo o un directorio,
responderemos un directorio.

xcopy . \prueba1 /s

16. Visualizar la estructura arborescente del directorio PRUEBA1.

tree \prueba1

17. Borrar el directorio PRUEBA1 y todo su contenido.

deltree \prueba1

18. Copiar todos los archivos y subdirectorios del directorio PRUEBA, incluyendo los
vacíos, en el directorio PRUEBA1. Cuando nos pregunte si queremos un archivo o un directorio,
responderemos un directorio.

xcopy . \prueba1 /e

19. Visualizar la estructura arborescente del directorio PRUEBA1.

tree \prueba1

20. Desde el directorio raíz, borrar el directorio PRUEBA1 y todo su contenido, pidiendo
confirmación.

deltree \prueba1

21. Ver los atributos de los archivos con la extensión TXT del directorio PRUEBA.

attrib *.txt

22. Copiar todos los archivos del directorio PRUEBA en el directorio \PRUEBA1,
desactivando el atributo de archivo de los ficheros copiados.

xcopy . \prueba1 /m

23. Ver los atributos de los archivos con la extensión TXT del directorio PRUEBA.

attrib *.txt

24. Editar y modificar los archivos TEXTO1.TXT y TEXTO2.TXT.

edit texto1.txt

edit texto2.txt

25. Ver los atributos de los archivos con la extensión TXT del directorio PRUEBA.

attrib *.txt

26. Copiar todos los archivos del directorio PRUEBA en el directorio \PRUEBA1,
desactivando el atributo de archivo de los ficheros copiados. Observar que sólo copia los
archivos que se han modificado y que, por lo tanto, tienen activado el atributo de archivo.

xcopy . \prueba1 /m

25
27. Cambiar el nombre a todos los archivos con la extensión TXT por el nombre
CARTAn.TXT, utilizando sólo una instrucción.

ren texto?.* carta?.*

28. Desde el directorio raíz, borrar todo el contenido de los directorios PRUEBA y
PRUEBA1, pidiendo confirmación.

cd ..

deltree prueba prueba1

Repaso de ejercicios con directorios y ficheros.

1. Crear el directorio CARTAS en raíz.

md cartas

2. Crear, en el directorio CARTAS, los ficheros CARTA1.TXT, CARTA2.TXT, CARTA3.TXT,


CARTA4.TXT y CARTA5.TXT, con información distinta en cada uno de ellos.

cd cartas

edit carta1.txt

edit carta2.txt

edit carta3.txt

edit carta4.txt

edit carta5.txt

3. Mover todos los archivos del directorio CARTAS al directorio CARTAS1.

move *.txt \cartas1

4. Desde el directorio CARTAS, visualizar el contenido del directorio CARTAS1.

dir \cartas1

5. Desde el directorio CARTAS, copiar todos los archivos con la extensión TXT del directorio
CARTAS1.

copy \cartas1\*.txt

6. Desde el directorio CARTAS, borrar el directorio CARTAS1 y todo su contenido, pidiendo


confirmación.

deltree \cartas1

7. Crear los subdirectorios LLENO y VACIO en el directorio CARTAS.

md lleno

md vacio

8. Copiar todos los archivos del directorio CARTAS en el directorio LLENO.

copy . lleno

26
9. Copiar todos los archivos y subdirectorios, excepto los vacíos, en el directorio \CARTAS1. Cuando
nos pregunte si queremos un archivo o un directorio, responderemos un directorio.

xcopy . \cartas1 /s

10. Desde el directorio CARTAS, borrar el directorio CARTAS1 y todo su contenido, pidiendo
confirmación.

deltree \cartas1

11. Desde el directorio raíz, copiar todos los archivos y subdirectorios del directorio CARTAS,
incluyendo los vacíos, en el directorio \CARTAS1. Cuando nos pregunte si queremos un archivo o
un directorio, responderemos un directorio.

cd \

xcopy cartas\. cartas1 /e

12. Desde el directorio raíz, borrar el directorio CARTAS1 y todo su contenido, pidiendo confirmación.

deltree cartas1

13. Ver los atributos de todos los archivos con la extensión TXT del directorio CARTAS.

attrib cartas\*.txt

14. Desde el directorio raíz, copiar todos los archivos del directorio CARTAS en el directorio
\CARTAS1, desactivando el atributo de archivo de los ficheros copiados.

xcopy cartas\. cartas1 /m

15. Desde el directorio raíz, ver los atributos de todos los archivos con la extensión TXT del directorio
CARTAS.

attrib cartas\*.txt

16. Editar y modificar el contenido de los archivos CARTAS1.TXT y CARTAS2.TXT del directorio
CARTAS.

edit cartas\cartas1.txt

edit cartas\cartas2.txt

17. Desde el directorio CARTAS, ver los atributos de todos los archivos con la extensión TXT.

cd cartas

attrib *.txt

18. Desde el directorio CARTAS, copiar todos los archivos con la extensión TXT en el directorio
\CARTAS1, desactivando el atributo de archivo de los ficheros copiados. Observar que sólo se han
copiado los archivos que se han modificado (CARTAS1.TXT y CARTAS2.TXT) y que, por lo tanto,
tienen activado el atributo de archivo.

xcopy *.txt \cartas1 /m

19. Desde el directorio raíz, cambiar el nombre de todos los archivos con la extensión TXT del directorio
CARTAS por el nombre TEXTOn.TXT, utilizando sólo una instrucción.

27
cd ..

ren cartas\carta?.* texto?.*

Observar que en el segundo parámetro (texto?.*) no hay que poner la trayectoria, porque el comando
ren toma como trayectoria destino la misma trayectoria que la especificada en origen. Si se pone una
trayectoria destino se produce un error, aunque sea la misma que la especificada en origen.

20. Desde el directorio raíz, borrar los directorios CARTAS y CARTAS1 y todo su contenido, pidiendo
confirmación.

deltree cartas cartas1

Gestión de unidades de disco.

En todo disco hay que distinguir una estructura física y una estructura lógica.

La estructura física se crea cuando se construye el disco en la fábrica y lo divide en caras, pistas o
cilindros y sectores.

La estructura lógica se crea por el usuario al formatear el disco con la orden FORMAT. El DOS almacena
los datos según la estructura lógica, por lo que siempre hay que formatear un disco antes de usarlo.

Algunos fabricantes anuncian los disquetes con una capacidad mayor de la que realmente tienen. Por
ejemplo, los disquetes de 1.44MB como 2MB. No se trata de ningún truco publicitario. Lo que ocurre es
que los fabricantes se refieren a la capacidad sin formatear. Cada sector de un disco ocupa realmente algo
más de los 512 bytes de información que quedan libres para el usuario. En cada sector hay campos de
identificación (campos GAP) y campos de comprobación de datos (campos CRC) que consumen espacio
no aprovechable por el usuario.

 Estructura lógica del disco.

La estructura lógica se crea en el disco durante el proceso de formateo y consiste principalmente en


la división del disco en cuatro zonas: sector de arranque (boot sector), tabla de localización de
ficheros (FAT), directorio raíz y espacio de datos del usuario. El propósito de ésta división es la
organización lógica de los datos dentro del disco de forma que puedan ser leídos y grabados. Cada
área del disco tiene una misión especial y un tamaño variable según la capacidad del disco.

 Sector de arranque.

Se localiza siempre en el primer sector (sector 0) de todo disco y ocupa únicamente un sector
(512 bytes). Este sector de arranque se utiliza principalmente para dos tareas:

 Contiene un pequeño programa que se ejecuta al encender el ordenador y que permite


cargar el DOS en memoria. Cada vez que se inicializa el ordenador se busca el sector de
arranque de la unidad A o C y se ejecuta éste pequeño programa, que puede hacer dos cosas:
cargar el DOS en memoria o mostrar en pantalla el mensaje

No es disco de sistema
Pulse cualquier tecla para continuar

 Almacena una tabla con información relativa al disco: número de caras, número de
pistas, número de sectores por pista, tamaño del sector, etiqueta del disco, número de serie,
etc. Esta tabla se conoce con el nombre de BPB (BIOS Parameter Block) y los
programadores suelen utilizarla para averiguar las principales características de un disco.

 La FAT.

La única función de un disco es almacenar información de la manera más eficiente posible. Si el


DOS guardara los ficheros en sectores contiguos o secuenciales, sería difícil conseguir éste

28
propósito. Imaginemos que en un disco de 1.44 MB totalmente lleno tenemos almacenados 10
archivos de 144 Kb cada uno. Si borramos cinco ficheros tendríamos la mitad del disco
disponible para guardar información, pero éste espacio disponible estaría dividido en bloques de
144 Kb, por lo que si quisiéramos almacenar un archivo que ocupase, por ejemplo, 145 Kb, no
sería posible almacenarlo en éste disco.

Para evitar los problemas del almacenamiento secuencial, el DOS utiliza los clusters, también
llamados unidades de localización o unidades de asignación. Un cluster es un conjunto de uno o
más sectores contiguos.

El sector es la unidad mínima de información para el disco. El cluster es la unidad mínima de


información para el DOS. Cuando el DOS copia un fichero en un disco, no lo copia en el sector x
de la pista x de la cara x, sino que lo copia en el cluster x. El número de sectores que ocupa cada
cluster ha de ser potencia de 2 (1, 2, 4, 8, etc.) y su valor exacto varía según la capacidad del
disco. Cuanto mayor es el tamaño del disco, mayor es el tamaño del cluster.

Los clusters solucionan el problema del almacenamiento de los ficheros en los discos, pues,
aunque los clusters se componen de sectores contiguos, los ficheros se almacenan en clusters que
no necesitan ser contiguos. De ésta forma, para grabar el fichero del ejemplo anterior que
ocupaba 145 Kb, el DOS habría buscado los clusters libres y habría encontrado un bloque
contiguo de 144 Kb y utilizaría el siguiente cluster libre para almacenar el resto (1Kb).

El DOS utiliza la FAT (File Allocation Table o Tabla de Localización de Ficheros) para saber
cómo está formada la cadena de clusters de un fichero y para saber en qué cluster continúa un
determinado fichero. La FAT es una tabla formada por elementos que se corresponden con cada
uno de los clusters del disco. Es decir, el elemento situado en la posición 40 de la Fat controla el
cluster 40 del disco, que a su vez corresponde a unos determinados sectores del disco.

Cada elemento de la FAT puede tener uno y sólo uno de los tres valores siguientes:

 Una marca especial (el valor 0) para indicar que es un cluster libre. Esta marca se utiliza
cuando los sectores de ése cluster están libres y no almacenan ningún dato.

 Una marca especial para indicar que es el último cluster de un fichero. Si aparece ésta
marca quiere decir que los sectores de ése cluster almacenan la parte final del fichero.

 Cualquier otro valor numérico se interpreta como el cluster siguiente. Si el elmento 135
de la FAT tiene el valor 164, quiere decir que el contenido del fichero continúa en los
sectores del cluster 164.

La FAT es tan importante que cada disco suele tener dos copias de la misma para poder
recuperar los datos cuando se corrompe alguna de ellas.

 El directorio raíz.

El directorio raíz ocupa un número fijo de sectores y se sitúa detrás del último sector de la FAT.
En éstos sectores se almacena una entrada de 32 bytes por cada elemento que posee el directorio
raíz.

Para el DOS, un directorio es un fichero especial que tiene activado el atributo de directorio y
cuyo contenido son las entradas (los 32 bytes) correspondientes a cada elemento que se almacena
en dicho directorio. Por ejemplo, si el directorio C:\TEXTOS contiene los ficheros FICH1.TXT
y FICH2.TXT, quiere decir que en el directorio raíz existe un fichero llamado TEXTOS cuyo
contenido son 64 bytes (32 bytes para la entrada de FICH1.TXT y 32 bytes para la entrada de
FICH2.TXT). Cuando el DOS ejecuta la orden DIR C:\TEXTOS, lo que hace realmente es leer
el contenido del fichero C:\TEXTOS e interpretar cada una de sus entradas. Por lo tanto, cada
elemento del directorio tiene una entrada en el fichero, que se denomina entrada de directorio.

29
Una entrada de directorio son 32 bytes que almacenan los principales parámetros relativos a un
elemento de directorio. Los 32 bytes de cada entrada de directorio almacenan la siguiente
información:

 El nombre del elemento.

 La extensión del elemento.

 La fecha de creación o última modificación.

 El tamaño del fichero (0 si el elemento es un directorio).

 Los atributos del elemento (archivo, sólo lectura, oculto, sistema o directorio).

 El cluster donde comienza el contenido del elemento. Si el elemento es un fichero, el


cluster señala el primer sector del disco donde se almacena el contenido del fichero. Si el
elemento es un directorio, el cluster indica el sector del disco donde se almacenan las
entradas de los elementos que contiene dicho directorio.

Las entradas de directorio existen en todos los directorios de los discos, no sólo en el directorio
raíz.

 El área de datos del usuario.

El resto del disco a partir de la zona del directorio raíz se reserva como espacio de datos para
almacenar los ficheros del usuario. El tamaño de éste área de datos suele representar más del
98% del espacio total del disco.

Cuando se formatea un disco y se crea la estructura lógica (sector de arranque, FAT, directorio
raíz y espacio de datos del usuario), los sectores del espacio de datos del usuario se dividen en
clusters que se numeran secuencialmente. Por ejemplo, si un disco tiene 700 sectores y posee
clusters con 2 sectores contiguos, entonces existen 350 clusters. El cluster 1 corresponde a los
sectores 1 y 2; el cluster 2 a los sectores 3 y 4, y así sucesivamente.

 Funcionamiento de la FAT.

Cuando el DOS tiene que leer en el disco el contenido de un fichero, por ejemplo, al ejecutar la
orden TYPE FICHERO.TXT, se realizan los siguientes pasos:

1. Busca en el directorio activo la entrada de directorio (los 32 bytes) del fichero


FICHERO.TXT.

2. Examina en la entrada de directorio el campo que almacena el cluster donde comienza


el fichero. Por ejemplo, supongamos que en la entrada de directorio del elemento
FICHERO.TXT el cluster de comienzo tiene el valor 23.

3. Lee el elemento número 23 de la FAT. Este elemento puede tener dos valores: la marca
que indica que es el último cluster, en cuyo caso se termina la operación, o bien un valor
numérico que indica el cluster donde continúa el fichero, leyéndose los sucesivos clusters
hasta que encuentre la marca de último cluster.

Cuando el DOS tiene que escribir un fichero, por ejemplo, al copiar un fichero con la orden
COPY, se realizan los siguientes pasos:

1. Se busca en la FAT un elemento que esté marcado como libre, es decir, un elemento
cuyo valor sea la marca de cluster libre.

30
2. Cuando se encuentra (por ejemplo, cluster 189), se crea una entrada de directorio para el
fichero. En ésta entrada de directorio se asigna al campo con el cluster de comienzo el valor
del cluster libre que se acaba de encontrar (el valor 189).

3. Se copia el contenido del fichero en los sectores correspondientes al cluster 189. Pueden
ocurrir dos casos:

 Que todo el fichero se copie en el cluster, en cuyo caso se asigna al elemento


189 de la FAT la marca especial de último cluster y se termina la operación.

 Que no se pueda copiar todo el fichero en el cluster, en cuyo caso se busca en


la FAT otro cluster libre y se asigna el valor de éste cluster libre al elemento 189 de la
FAT, repitiendo el proceso hasta que se copie todo el fichero.

 Comando FDISK.

Antes de formatear un disco duro es preciso particionarlo. Las particiones no se pueden crear en los
disquetes. Una partición es un conjunto de cilindros (un cilindro es un conjunto de pistas) contiguos
que forman una unidad independiente. Las particiones sirven para almacenar distintos sistemas
operativos y para dividir la unidad física de disco duro en varias unidades lógicas.

El proceso de instalación del DOS ejecuta automáticamente el comando FDISK si el disco duro no
está particionado, así como la orden FORMAT si el disco duro no está formateado.

El DOS sólo puede gestionar dos particiones, aunque en un disco duro puede haber un máximo de
cuatro particiones, porque la tabla interna que almacena los valores de todas las particiones (situada
en el primer sector del disco duro, el sector de arranque) sólo tiene espacio para cuatro entradas.

En todo momento tiene que haber una y sólo una partición activa, que será la que tome el control del
sistema cuando se arranca el ordenador. Cuando un ordenador tiene instalados varios sistemas
operativos, basta con cambiar la partición activa para que el ordenador arranque en el sistema
operativo deseado.

Las dos particiones que puede gestionar el DOS han de ser la partición primaria y la partición
extendida.

La partición primaria del DOS es obligatoria y designa la partición en la cual se almacenan los
ficheros de arranque del sistema. La partición primaria ha de ser la partición activa - siempre que no
exista otro sistema operativo en el mismo disco duro -, pues es la partición que se utilizará para
arrancar el DOS. Si el disco duro sólo tiene una partición, ésta ha de ser la partición primaria.

La partición extendida sirve para dividir el espacio del disco duro en las unidades lógicas que el
usuario necesite. Las unidades lógicas de la partición extendida no son particiones, sino divisiones
que el DOS reconoce como distintas unidades lógicas.

Durante el proceso de inicialización del DOS, primero asigna una letra de unidad a la partición
primaria de cada disco duro y luego una letra a cada una de las unidades lógicas de la partición
extendida. Por ejemplo, vamos a suponer que un ordenador tiene dos discos duros con idéntica
estructura: cada disco duro tiene una partición primaria y una partición extendida que se divide en
dos unidades lógicas. En este caso, el DOS asignaría las unidades lógicas de la siguiente forma: la
unidad C sería la partición primaria del primer disco duro, la unidad D la partición primaria del
segundo disco duro, las unidades E y F serían las unidades lógicas de la partición extendida del
primer disco duro y las unidades G y H las unidades lógicas de la partición extendida del segundo
disco duro.

El comando que gestiona las particiones de un disco duro es el comando FDISK, cuyo
funcionamiento lo hemos visto en el proceso de instalación del DOS. La orden FDISK tiene una
opción: FDISK /STATUS, que visualiza en pantalla el estado actual de la tabla de particiones.

 Comando FORMAT.

31
Los discos son dispositivos magnéticos sin estructura ninguna que pueda almacenar los datos. Para
poder utilizar los discos hay que formatearlos, es decir, crear en el dispositivo magnético una
estructura lógica que sea capaz de gestionar los directorios, subdirectorios y ficheros. El comando del
DOS que crea ésta estructura lógica en el disco es FORMAT.

La sintaxis es:

FORMAT unidad [/F:tamaño] [/Q] [/U] [/S] [/B] [/V:etiqueta] [/C] [/N:sectores/T:pistas] [/1] [/4]
[/8]

 El parámetro unidad es obligatorio y especifica la unidad de disco que se quiere


formatear.

 /F:tamaño.

Sólo se utiliza para formatear disquetes. Si se omite ésta opción, el disquete se formatea con el
tamaño máximo que la unidad de disquete permita.

 /Q.

Activa un formateo rápido o inmediato. Por defecto se realiza un formateo completo, que
consiste en inicializar la FAT poniendo a 0 el valor de todos los clusters, lo cual indica que son
clusters libres, y verificar la integridad de los sectores (sectores defectuosos o válidos) del
espacio de datos del usuario. El formateo rápido consiste en realizar la primera acción, es decir,
inicializar los clusters de la FAT.

 /U.

Realiza un formateo incondicional del disco, que consiste en eliminar físicamente todos los datos
del disco sin posibilidad de recuperarlos posteriormente. Si se omite ésta opción se realiza un
formateo seguro, que consiste en inicializar la FAT poniendo los clusters a 0, pero sin borrar los
datos del disco hasta que se necesite espacio libre, por lo que los datos se pueden recuperar.

 /S.

Además de formatear el disco, lo configura como disco de sistema, permitiendo de ésta forma
arrancar el ordenador con dicho disco. Los discos de sistema almacenan en el directorio raíz los
tres ficheros que permiten cargar el DOS en memoria cuando se enciende el ordenador. Estos
tres ficheros son: IO.SYS, MSDOS.SYS Y COMMAND.COM. Además, para poder trabajar con
unidades comprimidas con DoubleSpace, el disco de sistema también ha de tener en el directorio
raíz el fichero de sistema DBLSPACE.BIN.

 /B.

Reserva espacio en el disquete para almacenar los ficheros de sistema, pero no los copia. Los
ficheros de sistema se copiarán posteriormente con el comando SYS. Es incompatible con la
opción /S.

 /V:etiqueta.

Permite crear una etiqueta al disco que se acaba de formatear.

 /C.

Comprueba los grupos dañados en el disco. Un grupo es un conjunto de clusters. Por defecto el
comando FORMAT no comprueba los grupos dañados.

 /N:sectores.

32
Indica el número de sectores por pista con que se desea formatear el disquete. Los disquetes de
1.44 MB tienen 18 sectores por pista. Normalmente ésta opción se suele utilizar conjuntamente
con la opción /T:pistas. Es incompatible con la opción /F:tamaño.

 /T:pistas.

Indica el número de pistas con que se desea formatear el disquete. Los disquetes de 1.44 MB
tienen 80 pistas. Normalmente ésta opción se suele utilizar conjuntamente con la opción
/N:sectores. Es incompatible con la opción /F:tamaño.

 /1.

Formatea el disquete a una cara. No se puede utilizar en disquetes de 3½ pulgadas.

 /4.

Formatea un disquete de 360Kb en una unidad de 1.2 MB.

 /8.

Formatea únicamente 8 sectores por pista.

 Comando SYS.

Se utiliza para crear discos de sistema, es decir, un disco que puede arrancar y cargar el DOS. Para
ello copia en dicho disco los tres ficheros de sistema (IO.SYS, MSDOS.SYS y DBLSPACE.BIN) y
el procesador de órdenes COMMAND.COM.

La sintaxis es:

SYS [{unidad, directorio}] unidad_destino

Si se omite el primer parámetro, el comando SYS busca los ficheros a copiar en el directorio raíz de
la unidad activa. Si se pone unidad, busca los ficheros en el directorio raíz de la unidad especificada.
Si se pone directorio, busca los ficheros en el directorio especificado.

El fichero DBLSPACE.BIN se copia en el disco de destino si está almacenado en el directorio raíz de


origen o en el directorio especificado; de lo contrario, éste fichero no se copia. Si la orden SYS copia
dicho fichero, el disco destino, además de ser un disco de sistema, está preparado para soportar y
reconocer las unidades comprimidas.

Los ficheros de sistema no se pueden copiar con el comando COPY o con cualquier utilidad para
copiar archivos (PC Tools, Comandante Norton, etc.) porque el fichero de sistema IO.SYS tiene que
estar situado en el primer cluster del disco y, si no lo copiamos con la orden SYS, se copiaría en el
primer cluster libre.

 Comando DISKCOPY.

Sirve para copiar disquetes. Realiza una copia exacta del disco origen al disco destino, incluyendo
ficheros, directorios y subdirectorios.

La sintaxis es:

DISKCOPY [unidad_origen] [unidad_destino] [/1] [/V] [/M]

33
El primer parámetro es la unidad donde está el disquete que se va a copiar y el segundo parámetro es
la unidad del disquete que recibirá la copia. Si se omite el segundo parámetro, se asume como unidad
de destino la unidad especificada en el primer parámetro. Si se omiten ambos parámetros, se toma
como unidad origen y destino la unidad activa, siempre que no sea el disco duro.

 /1.

Copia únicamente la primera cara de un disquete. Actualmente está en desuso porque ya no se


fabrican disquetes de una cara.

 /V.

Activa el modo de verificación durante el proceso de copia.

 /M.

El comando DISKCOPY utiliza el disco duro como memoria temporal para guardar la
información leída del disco origen. Con la opción /M, se utiliza la memoria convencional para
realizar el almacenamiento temporal.

Para realizar copias de discos hay que tener en cuenta las siguientes consideraciones:

 Los disquetes de la unidad origen y destino han de tener el mismo tamaño, pues la copia
se realiza sector a sector.

 Si el disquete de destino no está formateado, la orden DISKCOPY llama a la orden


FORMAT y formatea el disco con el mismo formato que el disquete de origen.

 Si el disco origen tiene sectores defectuosos, también se copian en el disco destino. Para
evitar éste problema se puede utilizar la orden XCOPY. Las órdenes siguientes realizan la misma
operación: DISKCOPY A: B: y XCOPY A:\ B:\ /S /E. La diferencia más importante es que la
orden DISKCOPY copia los ficheros ocultos y de sistema y la orden XCOPY no. La orden
XCOPY tampoco podría copiar discos completos si sólo disponemos de una unidad de disco.

 Comando DISKCOMP.

Se utiliza para comparar el contenido de disquetes. La comparación se realiza a nivel de los sectores
del disco. DISKCOMP coge el primer sector de un disquete y compara los 512 bytes de ese sector
con los 512 bytes del primer sector del otro disquete. Luego, compara el contenido del segundo
sector de ambos disquetes, y así sucesivamente hasta comparar los últimos sectores de los disquetes.

La sintaxis es:

DISKCOMP [unidad] unidad] [/1] [/8]

Si se omite el segundo parámetro, se asume la unidad del primero. Si se omiten ambos parámetros, la
comparación se realiza en la unidad activa.

 /1.

Compara únicamente la primera cara de los disquetes, aunque actualmente está en desuso.

 /8.

Compara únicamente los primeros 8 sectores de cada pista, incluso si los disquetes tienen 9 ó 15
sectores por pista.

Los disquetes a comparar han de tener el mismo tamaño.

34
 Comando CHKDSK.

Se utiliza para chequear los discos, comprobando la integridad de los datos. Además de verificar la
estructura lógica del disco, éste comando muestra en pantalla información relativa al estado actual
del disco y de la memoria.

La sintaxis es:

CHKDSK [unidad] [/F] [/V]

La orden CHKDSK sin parámetros realiza un chequeo del disco de la unidad activa.

Si se introduce el parámetro unidad, realiza el chequeo de la unidad especificada.

 /F.

Permite corregir los errores que se encuentran durante el chequeo del disco. Los datos erróneos
se almacenan en ficheros con el nombre FILExxx.CHK, siendo xxx un número que se va
incrementando según crece el número de ficheros. Por ejemplo, si la opción /F crea 3 ficheros
que almacenan cadenas de datos perdidos, éstos tres ficheros se nombrarán FILE000.CHK,
FILE001.CHK, FILE002.CHK.

 /V.

Visualiza en pantalla un listado con la trayectoria de todos los ficheros del disco especificado. Se
incluyen también los ficheros ocultos y de sistema.

Actualmente se utiliza el programa SCANDISK, que efectúa un chequeo del disco mucho más
completo que el comando CHKDSK, detectando y recuperando tanto errores físicos como errores
lógicos.

 Comando LABEL.

Sirve para visualizar y modificar la etiqueta de un disco. La etiqueta de un disco es una secuencia de
11 caracteres creada por el usuario para nombrar los discos.

La sintaxis es:

LABEL [unidad] [etiqueta]

Si se omiten los parámetros, se muestra la etiqueta de la unidad activa y permite modificarla. Para
modificarla hay que introducir el nuevo nombre. Si pulsamos INTRO y existe una etiqueta, nos
pregunta si queremos eliminarla.

El primer parámetro indica la unidad del disco cuya etiqueta se quiere visualizar, borrar o cambiar.

El segundo parámetro se utiliza cuando se quiere asignar la etiqueta directamente al disco.

 Comando VOL.

Se utiliza para visualizar la etiqueta de un disco.

La sintaxis es:

VOL [unidad]

Si se omite el parámetro, se muestra la etiqueta de la unidad activa.

El parámetro indica la unidad del disco cuya etiqueta se quiere visualizar.

35
 Comando DEFRAG.

El DOS almacena los ficheros en clusters que no necesitan ser secuenciales. Cuando los ficheros
están divididos en clusters muy alejados entre sí, el sistema tarda más tiempo en acceder a ellos. Si
un fichero tiene sus clusters repartidos por diferentes partes del disco duro, la unidad de disco tendrá
que desplazar la cabeza de lectura y escritura de una parte a otra del disco, con el consiguiente
tiempo perdido en el desplazamiento de la cabeza. Por el contrario, si un fichero está almacenado en
clusters secuenciales, el tiempo consumido en mover la cabeza es mínimo, lo que significa mayor
rapidez a la hora de acceder al fichero.

El comando DEFRAG recompone el disco almacenando los ficheros en clusters secuenciales, lo que
acelera el rendimiento general del disco.

Cuando un disco se desfragmenta, se pueden utilizar dos métodos:

 Optimización plena (Desfragmentación completa).

En éste método se realizan tres tareas. Primero, ordena cada directorio del disco colocando en
primer lugar los directorios y luego los ficheros. Segundo, recompone el disco almacenando los
ficheros en clusters secuenciales. Tercero, cuando recompone el disco, elimina los espacios
vacíos entre los ficheros, colocando dichos espacios al final del disco, evitando así que se
fragmenten los nuevos ficheros que se copian al disco. Si existen espacios vacíos entre los
ficheros, cuando se copie un nuevo fichero en el disco se utilizarán ésos espacios vacíos y el
fichero se almacenará fragmentado.

 Desfragmentar sólo ficheros (Desfragmentación parcial).

Este método la única operación que realiza es almacenar los ficheros en clusters secuenciales y,
por lo tanto, es mucho más rápido que el anterior.

Para desfragmentar un disco basta con escribir DEFRAG en el indicador de órdenes del DOS. A
continuación se mostrará el entorno de trabajo de DEFRAG, basado en ventanas que se pueden
activar tanto desde el teclado como mediante el ratón. Cada vez que se ejecuta DEFRAG hay que
seguir tres pasos:

1. Seleccionar la unidad que se quiere desfragmentar.

2. El sistema analiza la unidad seleccionada y muestra en pantalla el porcentaje de la


unidad que no está fragmentado y el método de desfragmentación recomendado. Este porcentaje
corresponde a la parte de la unidad que está almacenada correctamente en clusters secuenciales.

3. Pulsar INTRO para asumir la opción activa (botón Optimizar) y comenzar la


desfragmentación de la unidad utilizando el método propuesto por DEFRAG. También podemos
pulsar la tecla TAB para cambiar la opción activa al botón Configurar y visualizar el menú
general de DEFRAG. Este menú consta de las siguientes opciones:

 Iniciar optimización. Comienza el proceso de desfragmentación de la unidad


seleccionada y con el método seleccionado.

 Unidad. Permite seleccionar la unidad que se desea desfragmentar.

 Método de optimización. Permite especificar el método de optimización. En la nueva


ventana que aparece hay que pulsar la barra espaciadora para seleccionar el método deseado.

 Ordenación de archivos. Permite definir el orden de los ficheros durante la


desfragmentación. Para seleccionar el criterio de ordenación hay que pulsar la barra
espaciadora.

36
 Leyenda del mapa. Ofrece una breve explicación de los caracteres o símbolos elegidos
para representar cada conjunto de clusters o bloque que se presenta en la pantalla durante el
proceso de desfragmentación. El carácter X se utiliza para designar los clusters que
pertenecen a ficheros que no se pueden mover.

 Acerca de Defragmentar. Visualiza una ventana de información sobre DEFRAG.

 Salir. Termina la ejecución de DEFRAG y el sistema regresa al indicador de órdenes del


DOS.

En cualquier momento se puede pulsar la tecla F1 para obtener una pantalla de ayuda sensible al
contexto, es decir, una pantalla de ayuda que varía en función de la operación que se esté realizando.

Ejercicios con unidades.

1. Formatear un discquete sin utilizar ninguna opción del comando FORMAT. Ha tardado 1 minuto y 2
segundos.

2. Formatear un disquete utilizando el formateo incondicional (/U). Ha tardado 1 minuto y 25 segundos.

3. Formatear un disquete copiando los ficheros de sistema y el procesador de órdenes


COMMAND.COM (/S). Ha tardado 1 minuto y 17 segundos.

4. Ver los atributos de todos los archivos del disquete.

5. Reiniciar el ordenador con el disco de sistema que acabamos de crear.

6. Formatear un disquete utilizando el formateo rápido (/Q). Ha tardado 15 segundos.

7. Formatear un disquete reservando espacio para copiar posteriormente los ficheros de sistema y el
procesador de órdenes COMMAND.COM (/B). Ha tardado 1 minuto y 22 segundos.

8. Desde el directorio raíz, copiar los ficheros de sistema y el procesador de órdenes


COMMAND.COM en el disquete que acabamos de formatear.

9. Ver los atributos de todos los archivos del disquete.

10. Reiniciar el ordenador con el disco de sistema que acabamos de crear.

11. Realizar una copia del disquete.

12. Realizar una comparación de los dos disquetes.

13. Crear un archivo en uno de los dos disquetes.

14. Realizar una comparación de los dos disquetes.

15. Asignar una etiqueta al disquete.

16. Ver la etiqueta del disquete.

17. Borrar la etiqueta del disquete.

18. Ver la etiqueta del disquete.

19. Chequear el disco duro con el comando CHKDSK.

20. Desfragmentar el disco duro con el comando DEFRAG, utilizando los dos métodos de
desfragmentación.

37
Comandos y utilidades para facilitar el trabajo.

 Comando HELP.

Ejecuta un programa a pantalla completa que ofrece ayuda personalizada para todas las órdenes del
DOS. Para acceder a la ayuda de cada comando, hay que situarse con el cursor sobre el nombre del
comando y pulsar la tecla INTRO.

La sintaxis es:

HELP [orden]

La orden HELP sin parámetros carga el programa de ayuda y visualiza la pantalla principal.

Si se incluye el nombre de una orden, se muestra la pantalla de ayuda de la orden especificada.

Los menús disponibles en la pantalla del comando HELP son los siguientes:

 Archivo. Incluye dos opciones de menú:

 Imprimir. Envía el texto de la pantalla activa a la impresora o a un fichero de texto. Si el


fichero existe, se reemplaza su contenido.

 Salir. Termina la ejecución de HELP y regresa al indicador de órdenes del DOS.

 Búsqueda. Permite buscar cadenas o caracteres en todo el contenido de las distintas


pantallas de ayuda. Tiene dos opciones:

 Buscar. Busca una determinada cadena de caracteres en todas las pantallas de ayuda.

 Repetir última búsqueda (F3). Una vez encontrada la cadena de caracteres a buscar, ésta
opción permite continuar buscando la misma cadena en las pantallas de ayuda. Para
continuar la búsqueda se puede pulsar la tecla F3.

 Ayuda. Tiene dos opciones:

 Cómo usar la ayuda de MS-DOS. Activa la ayuda de HELP, describiendo el


funcionamiento de la orden HELP y las teclas que se pueden pulsar.

 Acerca de. Visualiza una ventana con el nombre y copyright del programa HELP.

 Comando PROMPT.

Se utiliza para definir o cambiar el indicador de órdenes del DOS.

La sintaxis es:

PROMPT [texto] [órdenes]

Si se omiten los parámetros, el indicador de órdenes toma el valor por defecto. Este valor se compone
del nombre de la unidad activa seguida del carácter ">", por ejemplo, C>.

El parámetro texto se utiliza para asignar un texto al indicador de órdenes, por ejemplo, la orden
PROMPT Orden DOS: , asigna el texto especificado al indicador de órdenes del DOS, que, después
de ejecutar el comando PROMPT, sería Orden DOS: .

38
El comando PROMPT acepta unas órdenes especiales que permiten incluir en el indicador de órdenes
caracteres especiales y valores importantes. Estas órdenes son:

 $Q. Introduce el carácter "=".

 $B. Introduce el carácter "|".

 $$. Introduce el carácter "$".

 $G. Introduce el carácter ">".

 $L. Introduce el carácter "<".

 $T. Introduce la hora del sistema.

 $D. Introduce la fecha del sistema.

 $V. Introduce el número de versión del DOS.

 $N. Introduce la letra de la unidad activa.

 $P. Introduce la trayectoria del directorio activo.

 $_. Introduce un carácter de fin de línea, es decir, lo que se escriba a continuación,


aparecerá en la línea siguiente.

 $E. Introduce el carácter ESCAPE, que es el código ASCII 27.

 $H. Borra el último carácter introducido en el PROMPT.

 La tecla Control.

La tecla Control no tiene ningún significado por sí misma. Se utiliza en combinación con otras teclas.
Veamos éstas combinaciones de teclas:

 Ctrl-P. En el modo normal, las órdenes del DOS muestran la información en la pantalla,
es decir, utilizan el monitor como dispositivo de salida. Al pulsar Ctrl-P, el DOS muestra toda la
información en el monitor y en la impresora. Para desactivar la impresión, hay que pulsar
nuevamente Ctrl-P.

 Ctrl-Z. Representa el carácter que se utiliza para indicar el final de un fichero de texto.
Este carácter, que corresponde al código ASCII 26, se denomina carácter EOF (End Of File).
Otra forma de representar el carácter de fin de fichero es pulsando la tecla F6.

 Ctrl-S. Se utiliza para detener la salida de un comando en pantalla, cuando ocupa más
de 25 líneas. Para continuar visualizando la salida de la orden hay que pulsar cualquier tecla.

 Ctrl-Alt-Supr. La combinación de éstas teclas se utiliza para reinicializar el ordenador.


Cuando el ordenador se enciende activando el interruptor que da paso a la corriente eléctrica o
pulsando la tecla RESET, se realiza un chequeo de los dispositivos para confirmar que funcionan
correctamente, se chequea la memoria RAM del sistema y se carga el DOS. Cuando el ordenador
se reinicia utilizando la combinación de teclas Ctrl-Alt-Supr, no se realizan los chequeos de los
dispositivos y de la memoria.

 Ctrl-C. Aborta la ejecución de un programa u orden del DOS. La pulsación de la


combinación de éstas teclas se detecta únicamente en la entrada por teclado - por ejemplo, al
ejecutar la orden DATE, se espera una entrada por teclado - y en la salida por la pantalla o por la

39
impresora. Si se quiere ampliar el campo de acción y reconocer en todo momento la pulsación de
Ctrl-C, hay que utilizar la orden BREAK.

La sintaxis de ésta orden es:

BREAK [{ON | OFF}]

Si se omiten los parámetros muestra el estado actual de la orden, es decir, si está en ON o en


OFF.

 ON.

Activa la acción completa de Ctrl-C, de forma que se reconozca su pulsación en cualquier


momento.

 OFF.

Obliga al ordenador a detectar la pulsación de Ctrl-C únicamente en la entrada por teclado y


en la salida por pantalla e impresora.

 Volcado de la pantalla a la impresora.

Para volcar el contenido de la pantalla a la impresora se utiliza la tecla ImprPant. En la impresora se


imprimen 25 filas de 80 caracteres cada una, es decir, una representación exacta del contenido de la
pantalla. Si la pantalla contiene gráficos hay que ejecutar la orden GRAPHICS (ver la orden
GRAPHICS en la ayuda).

 El buffer de órdenes.

El buffer de órdenes es una zona de memoria que almacena una copia de la última orden introducida
en el indicador del DOS. Por defecto, el DOS incorpora un mecanismo de gestión del buffer de
órdenes. Si se pulsa la tecla F3, aparece en el indicador de órdenes el último comando introducido.
Este método de gestionar el buffer de órdenes es muy insuficiente, por lo que el DOS utiliza la orden
DOSKEY, que permite gestionar dicho buffer de forma mucho más eficiente.

El buffer de órdenes que crea DOSKEY tiene un tamaño finito y funciona con el esquema LIFO
(Last-In, First-Out: el último en entrar es el primero en salir).

La sintaxis es:

DOSKEY [/H[ISTORY]] [/BUFSIZE=bytes]

Si se omiten los parámetros, se carga en memoria el programa DOSKEY, creando un buffer de


órdenes con el tamaño por defecto (512 bytes). Si se ejecuta por segunda vez, no se realiza ninguna
acción.

 /H[ISTORY].

Visualiza en pantalla una lista de las órdenes almacenadas en el buffer.

 /BUFSIZE=bytes.

Define el tamaño en bytes del buffer de órdenes. Normalmente es suficiente con el tamaño de
512 bytes que crea por defecto. Este tamaño permite almacenar 34 órdenes de 15 caracteres
(34x15=510). Hay que tener cuidado al aumentar el tamaño del buffer de órdenes, pues
disminuye el tamaño de la memoria RAM.

La orden DOSKEY permite realizar cuatro tareas:

1. Ejecutar múltiples órdenes.

40
Con la orden DOSKEY activada se pueden introducir varias órdenes en la misma línea de
comandos. Para ello hay que introducir las órdenes separándolas con el carácter ¶, que se genera
pulsando Ctrl-T o con Alt-20 (código ASCII).

2. Recuperar órdenes.

La orden DOSKEY utiliza unas teclas para recuperar las órdenes introducidas en el buffer de
órdenes. Estas teclas son:

 Cursor arriba. Recorre la lista recuperando el elemento anterior.

 Cursor abajo. Recorre la lista recuperando el elemento posterior.

 RePág. Recupera la primera orden de la lista.

 AvPág. Recupera la última orden de la lista.

 F7. Visualiza una lista numerada de las órdenes.

 F8. Recupera las órdenes que comienzan con los caracteres tecleados en la línea de
comandos. Hay que pulsar nuevamente F8 para continuar con la búsqueda.

 F9. Recupera una orden según su posición en la lista. Hay que introducir el número de
orden que muestra F7.

 Alt-F7. Borra todas las órdenes del buffer.

3. Editar la línea de comandos.

Para realizar modificaciones en las órdenes que introducimos a través del teclado o en las
órdenes recuperadas a partir del buffer de órdenes, se utilizan las siguientes teclas:

 Cursor izquierda. Mueve el cursor un carácter a la izquierda.

 Cursor derecha. Mueve el cursor un carácter a la derecha.

 Ctrl-Cursor izquierda. Mueve el cursor una palabra a la izquierda.

 Ctrl-Cursor derecha. Mueve el cursor una palabra a la derecha.

 Inicio. Mueve el cursor al principio de la línea de comandos.

 Fin. Mueve el cursor al final de la línea de comandos.

 Ctrl-Inicio. Borra el texto desde el principio de la línea hasta la posición del cursor.

 Ctrl-Fin. Borra el texto desde la posición del cursor hasta el final de la línea.

 Retroceso. Borra el carácter situado a la izquierda del cursor.

 Supr. Borra el carácter situado encima del cursor.

 Esc. Borra todo el contenido de la línea de comandos.

 Insert. Conmuta entre el modo de inserción y el modo de sustitución.

4. Crear macros de órdenes.

41
Una macro de órdenes es un conjunto de órdenes que se ejecutan escribiendo el nombre de la
macro en la línea de comandos. Se diferencian de los ficheros por lotes en que las macros de
órdenes se almacenan en la memoria RAM y pueden tener un máximo de 127 caracteres.

El propósito de las macros es crear pequeños conjuntos de órdenes que se utilizan con mucha
frecuencia. Si queremos automatizar un proceso complejo es mejor que utilicemos ficheros por
lotes.

Para crear macros de órdenes se utiliza la orden DOSKEY, con la siguiente sintaxis:

DOSKEY [macro=[valor]] [/BUFSIZE=bytes] [/MACROS]

 macro=[valor].

Se utiliza para definir el nombre de la macro y el conjunto de órdenes que va a contener,


separadas por los caracteres “$T”.

Ejemplo.

Vamos a crear una macro que cambie al directorio raíz de la unidad C y visualice todos sus
directorios ordenados por nombre.

C:\>DOSKEY R=C: $T CD\ $T DIR /AD /ON

Para ejecutar ésta macro sólo hay que escribir su nombre en la línea de comandos.

C:\>R

Para modificar una macro existente hay que volverla a definir escribiendo como valor el
nuevo conjunto de órdenes que va a contener la macro.

Para eliminar una macro, hay que ejecutar DOSKEY seguido del nombre de la macro y el
signo “=”. Para eliminar la macro R creada en el ejemplo anterior hay que escribir:
C:\>DOSKEY R=.

 /BUFSIZE=bytes.

La orden DOSKEY utiliza el mismo buffer para almacenar las macros y las órdenes
introducidas por el usuario. El funcionamiento de éste buffer es el siguiente: Primero, se
comprueba cuánto espacio ocupan todas las macros y se asigna el resto a las órdenes. A
partir de éste momento, las órdenes empiezan a acumularse en el espacio reservado para
ellas. Cuando se llena éste espacio, se introduce la orden más reciente y se borra la orden
más antigua. Si se añaden nuevas macros, se aumenta el espacio para las macros,
disminuyendo el espacio para las órdenes, aunque siempre se reservan un mínimo de 256
bytes para las órdenes que no pueden ser ocupados por las macros.

El parámetro /BUFSIZE=bytes se utiliza para definir el espacio del buffer de DOSKEY.


Sólo se puede utilizar la primera vez que se ejecuta DOSKEY.

La combinación de teclas Alt-F10, borra todas las macros del buffer, pero no borra las
órdenes. La combinación de teclas Alt-F7, borra todas las órdenes del buffer, pero no borra
las macros.

 /MACROS.

Visualiza en pantalla una lista con todas las macros definidas en el sistema.

Algunas características importantes de las macros son las siguientes:

42
 La combinación de teclas Ctrl-C interrumpe la acción de la orden que se esté ejecutando
en ése momento, pero no la ejecución de la macro.

 Las macros siempre generan el eco de las órdenes.

 Una macro no se puede ejecutar desde otra macro.

 Las macros no se pueden ejecutar desde los ficheros por lotes, pero los ficheros por
lotes sí se pueden ejecutar desde las macros.

 Desde una macro no se puede acceder a los valores de las variables de entorno.

 Las macros, al igual que los ficheros por lotes, aceptan parámetros, que se representan
del $1 al $9, pero no existe una orden SHIFT que permita aumentar el número de
parámetros.

 Se pueden crear macros con el mismo nombre que las órdenes del DOS. En éste caso,
las macros tienen preferencia sobre las órdenes, es decir, si una macro tiene el mismo
nombre que una orden, se ejecutará la macro y no la orden. Para que se ejecute la orden y no
la macro hay que escribir el nombre de la orden precedido de un espacio en blanco.

En la creación de las macros se utilizan los siguientes caracteres especiales:

 $G. Redirección de salida (Greater, mayor que).

 $L. Redirección de entrada (Lower, menor que).

 $G$G. Adición a un fichero.

 $B. Barra vertical utilizada, por ejemplo, en la orden MORE (Bar, barra).

 $T. Separa las órdenes de la macro.

 $$. Introduce el carácter $.

 $1 ... $9. Parámetros del 1 al 9.

 $*. Todos los parámetros.

Ejemplos.

1. Vamos a crear una macro que visualice el contenido del fichero AUTOEXEC.BAT
paginado.

C:\>DOSKEY AUTO=TYPE AUTOEXEC.BAT $B MORE

2. Vamos a crear una macro que busque un determinado fichero por todos los directorios
del disco duro.

C:\>DOSKEY BUSCAR=DIR C:\$1 /S

Para buscar el fichero PEPE hay que escribir C:\>BUSCAR PEPE, para buscar el fichero
CARTA.TXT, se escribirá C:\>BUSCAR CARTA.TXT.

3. La orden TYPE no acepta la utilización de los caracteres comodines. Podemos crear una
macro para que los podamos utilizar.

C:\>DOSKEY TYPE =FOR %F IN ($1) DO TYPE %F $B MORE

43
 El programa de diagnósticos MSD.

El programa MSD (MicroSoft Diagnostics) es una utilidad que informa al usuario de las principales
características hardware y software del ordenador. La pantalla principal de MSD visualiza trece
opciones. Para aceder a éstas opciones hay que pulsar la letra que aparece resaltada o en color.

Además de éstas trece opciones, el programa MSD posee en la parte superior una barra de menús que
contiene tres menús:

 File.

Presenta las siguientes opciones:

 Find File.

Permite buscar un fichero en la unidad especificada o en todas las unidades.

 Print Report.

Visualiza una pantalla en la que se pueden escoger las características que se desean incluir
en el informe, así como el destino del informe, es decir, si se quiere imprimir en la
impresora o volcarlo a un fichero de texto. Para desplazarse de una opción a otra hay que
pulsar la tecla TAB o la letra que aparece resaltada en el nombre y pulsar la barra
espaciadora para activar o desactivar la característica.

 Nombres de ficheros.

Permite leer los ficheros de la lista.

 Exit.

Termina la ejecución del programa y regresa a la línea de comandos del DOS. Si se pulsa la
tecla F3 realiza la misma acción.

 Utilities.

Posee las siguientes opciones:

 Memory Block Display.

Visualiza a la izquierda la lista de programas residentes y a la derecha un mapa de la


memoria. Cuando nos movemos a través de la lista de programas residentes, se indica en el
mapa de memoria la posición del programa residente.

 Memory Browser.

Permite ver las posiciones de memoria de la información ROM BIOS y Video ROM BIOS
y buscar una cadena de caracteres en la memoria superior.

 Insert Command.

Introduce en los ficheros CONFIG.SYS o AUTOEXEC.BAT una orden que se ha detectado


que podría mejorar el rendimiento del sistema.

 Test Printer.

Realiza un test sobre la impresora, imprimiendo el conjunto de caracteres ASCII.

 Black & White.

44
Conmuta el sistema de vídeo de MSD entre blanco/negro y color. Se puede activar
directamente pulsando la tecla F5.

La sintaxis de la orden MSD es la siguiente:

MSD [{/P fichero, /F fichero, /S [fichero]}] [/B] [/I]

Si se omiten los parámetros, la orden MSD detecta el hardware y el software instalado en el


ordenador y visualiza la pantalla principal.

 /P fichero.

Crea, en el fichero especificado, un informe completo de todas las características que puede
analizar MSD.

 /F fichero.

Es igual que la opción /P, pero, antes de crear el fichero, nos pide que introduzcamos varios
datos (nombre, compañía, dirección, etc.) que se añadirán al principio del fichero.

 /S [fichero].

Crea un informe resumido que contiene únicamente las características más importantes del
ordenador. Si se introduce el nombre de un fichero, el resumen se graba en el fichero indicado.
Si no se introduce el nombre de un fichero, el informe resumido se visualiza por pantalla.

 /B.

Ejecuta el programa MSD en blanco y negro.

 /I.

Evita el proceso de detección del hardware, cargando inmediatamente una pantalla en la que no
se muestra ninguna característica. Cada vez que el usuario active una opción, el programa MSD
detecta las características relativas a dicha opción.

Dispositivos.

El DOS soporta cinco dispositivos. Los ficheros de sistema IO.SYS y MSDOS.SYS contienen las rutinas
que gestionan éstos dispositivos, por lo que dichas rutinas se cargan en memoria cuando se enciende el
ordenador. El DOS asigna un nombre a cada uno de éstos dispositivos. Los dispositivos que gestiona el
DOS son los siguientes:

 Consola (teclado y monitor).

El DOS utiliza el nombre CON para referirse a éste dispositivo. El teclado es un dispositivo
unidireccional de entrada y el monitor es un dispositivo unidireccional de salida. Debido a la
unidireccionalidad puede usarse un sólo nombre de dispositivo para designar teclado y monitor sin
generar ningún conflicto. Según el tipo de operación (entrada o salida), el dispositivo CON se refiere
al teclado (entrada) o al monitor (salida).

 Puertos paralelo.

Los puertos o interfaces paralelo son dispositivos bidireccionales, que permiten tanto enviar como
recibir datos. Se llaman puertos paralelo porque transmiten datos de byte en byte, es decir, los 8 bits

45
de cada byte se envían simultáneamente. Se utilizan, principalmente, para conectar impresoras al
ordenador. Un Cd-Rom externo, dispositivo de E/S, lo podemos conectar a un puerto paralelo. El
DOS puede reconocer tres puertos paralelo: LPT1 o PRN, LPT2 y LPT3. PRN se deriva de la palabra
inglesa PRINTER (impresora) y LPT de las palabras LINE PRINTER (impresora de línea).

 Puertos serie.

Los puertos o interfaces serie son dispositivos bidireccionales. Los datos se transmiten bit a bit. Los 8
bits de un byte se envían secuencialmente, uno detrás de otro. Estos puertos son los más versátiles y
polivalentes, utilizándose para conectar al ordenador diferentes tipos de dispositivos (ratones,
scanners, módems, unidades externas, etc.). El DOS soporta cuatro puertos serie: COM1 o AUX,
COM2, COM3 y COM4.

 Nulo.

A veces es necesario utilizar un dispositivo ficticio o nulo, que simule el envío o recepción de la
información. Para éstos casos el DOS incorpora el dispositivo NUL.

Por ejemplo, el comando PAUSE realiza una parada y visualiza el mensaje Pulse cualquier tecla
para continuar... . Si utilizamos PAUSE >NUL, el mensaje lo envía al dispositivo ficticio y, por lo
tanto, no se visualiza.

 Reloj.

El sistema operativo DOS siempre asume que existe algún tipo de reloj en el sistema, ya sea un reloj
en tiempo real CMOS, que mide en segundos, o un reloj de intervalos, que utiliza una medida propia,
cargado en memoria al arrancar el ordenador. El nombre de dispositivo CLOCK$ hace referencia a
éste reloj del ordenador, que se gestiona a través de las órdenes DATE y TIME.

Existen tres órdenes del DOS que aceptan como parámetro los nombres de dispositivo. Estas órdenes son:

 Comando MODE.

Se utiliza para configurar dispositivos. Configurar un dispositivo consiste en establecer los


parámetros físicos válidos para el dispositivo y definir las páginas de código que soporta el
dispositivo. La configuración de páginas de códigos lo veremos más adelante.

La sintaxis de éste comando depende del dispositivo a configurar.

 Monitor.

Sintaxis 1:

MODE tipo [,num_filas]

El parámetro tipo es obligatorio y especifica el tipo de monitor y el número de columnas. Sus


valores pueden ser:

 MONO. Monitor Monocromo a 80 columnas.

 40. Pantalla a 40 columnas. No afecta al color.

 80. Pantalla a 80 columnas. No afecta al color.

46
 BW40. Monitor en blanco y negro a 40 columnas.

 BW80. Monitor en blanco y negro a 80 columnas.

 CO40. Monitor en color a 40 columnas.

 CO80. Monitor en color a 80 columnas.

El parámetro num_filas indica el número de líneas de la pantalla. Los sistemas monocromo sólo
aceptan 25 filas. En los sistemas en color con tarjeta EGA, se pueden utilizar 43 filas, y si tienen
la tarjeta VGA o Super VGA, se pueden utilizar 43 o 50 filas. Para poder definir el número de
filas del monitor, es necesario haber instalado previamente el controlador ANSI.SYS, que
veremos más adelante.

Sintaxis 2:

MODE CON[:] [COLS=num_cols] [LINES=num_filas]

 Teclado.

Se utiliza para definir el modo repetitivo de pulsación de una tecla, es decir, cuando se pulsa una
tecla y se mantiene pulsada.

La sintaxis es:

MODE CON RATE=número DELAY=número

El parámetro RATE es la velocidad con que el DOS genera los caracteres de la secuencia
repetitiva. El valor oscila entre 1 y 32. El valor por defecto es 28.

El parámetro DELAY especifica el intervalo de tiempo transcurrido desde que se pulsa la tecla
hasta que aparece en pantalla el primer carácter de la secuencia repetitiva. Puede tomar los
valores 1, 2, 3 y 4, que indican, respectivamente, un retardo de 0.25, 0.50, 0.75 y 1 segundos. El
valor por defecto es 2.

 Impresora.

La sintaxis es:

MODE LPTn [COLS=número] [LINES=número]

El parámetro LPTn indica el dispositivo paralelo que se quiere configurar.

El parámetro COLS define el número de columnas, es decir, el número de caracteres que se


pueden imprimir en cada línea. Puede tomar dos valores: 80 y 132. El valor por defecto es 80.

El parámetro LINES define el número de líneas que se imprimen en cada pulgada de papel.
Puede tomar dos valores: 6 y 8 líneas por pulgada. El valor por defecto es 6, lo que genera 66
líneas en los folios (11 pulgadas) y 60 líneas en las hojas DIN A4 (10 pulgadas).

 Puertos serie.

La mayoría de los dispositivos que se conectan mediante un puerto serie no necesitan que se
configure dicho puerto con la orden MODE, sino que será necesario cargar el controlador de
dispositivo, que realiza la configuración.

La sintaxis es:

MODE COMn BAUD=número [DATA=número] [STOP=número] [PARITY=número]

47
Esta sintaxis se suele utilizar cuando se conecta una impresora a un puerto serie.

La orden MODE sin parámetros visualiza la configuración de todos los dispositivos.

Si utilizamos la orden MODE con un nombre de dispositivo, visualiza la configuración de dicho


dispositivo.

Hay otra sintaxis de la orden MODE:

MODE LPTn=COMn

Se utiliza cuando una impresora está conectada al puerto serie. En éstos casos hay que redireccionar
la salida del puerto paralelo al puerto serie. De ésta forma, todas las llamadas al puerto paralelo se
dirigen al puerto serie. Para anular la redirección hay que escribir MODE LPTn.

 Comando CTTY.

Sirve para cambiar el dispositivo de E/S del DOS. Por defecto, el dispositivo de E/S del DOS es la
consola, el teclado es el dispositivo de entrada y el monitor es el dispositivo de salida.

La sintaxis es:

CTTY nombre_dispositivo.

El parámetro nombre_dispositivo es el nuevo dispositivo de E/S.

 Comando COPY.

Además de copiar ficheros de un disco a otro o de un directorio a otro, el comando COPY se puede
utilizar para copiar ficheros desde o hacia un dispositivo o enviar información entre dispositivos.
Según la función que se vaya a realizar, la orden COPY puede tener tres sintaxis:

 Sintaxis 1:

COPY fichero dispositivo

Envía el contenido del fichero al dispositivo especificado.

Ejemplos:

C:\>COPY AUTOEXEC.BAT CON, visualiza el contenido del fichero AUTOEXEC.BAT por


la pantalla.

C:\>COPY AUTOEXEC.BAT PRN, envía el contenido del fichero AUTOEXEC.BAT a la


impresora.

 Sintaxis 2:

COPY dispositivo fichero

Crea un fichero desde el dispositivo especificado. Se utiliza, principalmente, para crear ficheros
de texto directamente desde el teclado. Para indicar el final del fichero hay que introducir el
carácter de fin de fichero (Ctrl-Z o F6).

Ejemplo:

C:\>COPY CON PEPE. Después de pulsar la tecla INTRO, todo lo que se escriba hasta que se
introduzca el carácter de fin de fichero se enviará al fichero PEPE.

48
 Sintaxis 3:

COPY dispositivo dispositivo

Se utiliza para transmitir información entre dispositivos.

Ejemplo:

COPY CON LPT1. Después de pulsar la tecla INTRO, todo lo que se escriba hasta que se
introduzca el carácter de fin de fichero se enviará a la impresora.

Redireccionamiento.

Los dispositivos de E/S por defecto del DOS son el teclado y el monitor, respectivamente. Sin embargo,
hay ocasiones en que es necesario cambiar la E/S por defecto, redireccionándola a algún otro dispositivo
o fichero.

Existen tres tipos de redireccionamiento:

 Redireccionamiento de entrada.

Consiste en cambiar a otro dispositivo o fichero el dispositivo de entrada por defecto. Para
redireccionar la entrada de datos a una orden o programa hay que escribir el nombre de la orden o
programa seguido del carácter "<" y, a continuación, el nombre del nuevo dispositivo de entrada o
del fichero del que se van a tomar los datos de entrada.

Ejemplo.

Vamos a hacer que la orden DATE tome la fecha de un fichero.

C:\>COPY CON FECHA. En primer lugar introducimos por teclado la fecha que queremos asignar a
la orden DATE y la guardamos en el fichero FECHA. Introduciremos por teclado la fecha (por
ejemplo, 11/11/98), la pulsación de la tecla INTRO y el carácter de fin de fichero (10 bytes). Hay que
introducir la pulsación de la tecla INTRO porque, al ejecutar el comando DATE, si queremos
cambiar la fecha, se introduce la nueva fecha y se pulsa la tecla INTRO.

C:\>DATE < FECHA. Seguidamente ejecutamos la orden DATE, tomando como fecha el contenido
del fichero FECHA.

 Redireccionamiento de salida.

Se utiliza para enviar la salida de un programa a un dispositivo o a un fichero. Se utiliza el carácter


">".

Ejemplos.

C:\>DIR >LPT1, envía la salida del comando DIR a la impresora.

C:\>DIR >PEPE, envía la salida del comando DIR al fichero PEPE.

 Adición de ficheros.

En la redirección de salida hacia un fichero, siempre se crea un fichero nuevo y, si el fichero ya


existe, se pirde su contenido. Para evitar éste problema se utiliza la adición de ficheros. En éste caso,
si el fichero no existe, se crea y, si el fichero existe, la salida del programa se añade al final del
mismo. Se utilizan los caracteres ">>".

Ejemplo.

C:\>DIR >>PEPE

49
C:\>DIR \DOS >>PEPE

El contenido del fichero PEPE será la lista de todos los ficheros y diectorios de los directorios raíz
y \DOS.

Filtros.

Los filtros se utilizan para convertir la salida de una orden en entrada de otra orden. De todas las órdenes
del DOS, sólo hay tres (MORE, SORT, FIND) que pueden recibir como entrada la salida de otra orden.
Estas órdenes se conocen como filtros del DOS. Para introducir un filtro en la línea de comandos, se
utiliza el carácter "|" (código ASCII 124), que se genera con la combinación de teclas AltGr+1 (del
teclado alfanumérico). Este carácter se intercala entre la orden que genera la salida y la orden que recibe
la entrada.

 Filtro MORE.

Se utiliza para detener la salida de una orden cada 23 líneas, mostrando el mensaje "-- Más --". Para
seguir visualizando la salida de la orden hay que pulsar cualquier tecla.

Ejemplo.

C:\DOS>TYPE LEAME.TXT|MORE, visualiza el archivo LEAME.TXT en páginas de 23 líneas. La


orden MORE recibe como entrada la salida de la orden TYPE, es decir, la orden TYPE genera un
listado del contenido del fichero LEAME.TXT; éste listado es la entrada que recibe la orden MORE,
pero el contenido del fichero lo recibe paginado, en páginas de 23 líneas.

El ejemplo anterior también se podría escribir de la siguiente forma:

C:\DOS>MORE <LEAME.TXT.

 Filtro SORT.

El filtro SORT recibe como entrada la salida de una orden, obteniendo como resultado la ordenación
de los elementos recibidos.

La sintaxis es:

SORT [/R] [/+número]

Si se omiten los parámetros, la ordenación se realiza de menor a mayor.

 /R.

Realiza la ordenación de mayor a menor.

 /+número.

Realiza la ordenación a partir del carácter especificado en número.

Ejemplos.

C:\>DIR |SORT /+16, visualiza el contenido del directorio raíz, ordenado de menor a mayor según el
tamaño de los archivos. El tamaño de los archivos empieza en el carácter 16 de la salida de la orden
DIR.

C:\>DIR |SORT /+10, visualiza el contenido del directorio raíz, ordenado de menor a mayor según la
extensión de los archivos. La extensión de los archivos empieza en el carácter 10 de la salida de la
orden DIR.

50
C:\>SORT, nos permite introducir datos por teclado. Cuando se introduzca el carácter de fin de
fichero, los datos tecleados se visualizan en la pantalla, ordenados de menor a mayor.

C:\SORT >DATOS, nos permite introducir datos por teclado. Cuando se introduzca el carácter de fin
de fichero, los datos tecleados se guardan en el fichero DATOS, ordenados de menor a mayor.

 Filtro FIND.

El filtro FIND sirve para buscar una cadena de caracteres dentro de un fichero. Se pueden buscar
caracteres en ficheros que contengan códigos de un determinado procesador de textos, por ejemplo,
un documento de WordPerfect o un documento de Microsoft Word.

La sintaxis es:

FIND "cadena" [fichero1 fichero2 ...] [/V] [/C] [/N] [/I]

Si se omiten los parámetros, se busca la cadena especificada en los datos introducidos por teclado
hasta que se introduce el carácter de fin de fichero. Cuando encuentra la cadena buscada en el dato
tecleado, visualiza dicho dato. Si la salida se redirecciona a un fichero, sólo se guardarán los datos
que contengan la cadena buscada.

 fichero.

Indica el fichero en el que se va a realizar la búsqueda. Se puede buscar la cadena especificada


en varios ficheros al mismo tiempo, indicando los nombres de los ficheros, separados por un
espacio en blanco. El filtro FIND no admite el uso de plantillas.

 /V.

Por defecto, el filtro FIND visualiza en pantalla los datos que contienen la cadena. Con la opción
/V, se visualizan los datos que no contienen la cadena.

 /C.

Muestra en pantalla únicamente el número total de datos que contienen la cadena especificada.

 /N.

Visualiza el dato que contiene la cadena y el número de la línea que contiene el dato.

 /I.

Por defecto, la orden FIND distingue entre letras mayússculas y minúsculas. Si se utiliza la
opción /I, no se distingue entre mayúsculas y minúsculas.

Comprimir unidades de disco.

Para comprimir unidades de disco se utilizan los comandos DBLSPACE y DRVSPACE. Estas órdenes
actualmente casi no se utilizan porque los discos duros tienen gran capadicad de almacenamiento y
porque el sistema operativo Windows no admite unidades comprimidas.

Copias de seguridad.

El comando para realizar copias de seguridad es el MSBACKUP.EXE. La primera vez que se ejecuta éste
programa, aparece un mensaje indicando que todavía no se ha configurado el programa. Hay que elegir la
opción Iniciar Configuración. Cuando se activa el proceso de configuración se pone en marcha la prueba
de compatibilidad, que lleva a cabo dos acciones: detecta el hardware instalado y realiza una pequeña
copia de seguridad sobre dos disquetes para comprobar que la configuración elegida es correcta, que no
existen incompatibilidades con el hardware y que el programa podrá copiar y restaurar ficheros sin
problemas. Si la prueba de compatibilidad finaliza con éxito, las copias y restauraciones que se realicen

51
serán fiables. Si se producen errores, hay que repetir el proceso hasta que no surjan errores. Si se presenta
siempre el mismo error, probablemente existan incompatibilidades en el hardware.

Una vez que el programa esté correctamente configurado, se pueden realizar copias y restauraciones de
los ficheros. Para ello habrá que seguir las instrucciones del programa.

Recuperación de datos.

El DOS incorpora comandos para recuperar los ficheros y los discos borrados accidentalmente. La mejor
forma de recuperar ficheros perdidos es mediante las copias de seguridad realizadas en otros soportes.

Un fichero se puede borrar utilizando la orden DEL o desde una aplicación. En ambos casos, el DOS
utiliza el mismo método para borrar el fichero. Este método realiza dos aciones:

 Cambia el primer carácter del nombre del fichero por el carácter "Õ" (código ASCII 229). Cuando el
primer carácter del nombre de un fichero es el código ASCII 229, el DOS considera que ésa entrada
de directorio está libre. Esta acción permite mantener prácticamente intacta la entrada de directorio
del fichero borrado, lo cual es muy importante para poder recuperar el fichero, porque se mantiene el
campo que indica el primer cluster donde comienza el fichero.

 Marcar como libres los clusters del fichero, es decir, asignar el valor 0 a los elementos de la FAT que
corresponden a los clusters del fichero. Esta acción permite mantener intacto el contenido del fichero
borrado.

Lógicamente, cuando se necesite espacio en el disco para copiar un fichero, se podrán utilizar las entradas
de directorio marcadas como libres y los clusters del fichero marcados como libres y, en ése momento, se
perderá el contenido de toda la entrada de directorio y de los sectores con los bytes del fichero borrado,
por lo que dicho fichero ya no se podrá recuperar.

El comando para recuperar ficheros borrados es UNDELETE.

 Métodos de recuperación de ficheros.

La orden UNDELETE puede utilizar tres métodos para recuperar ficheros. Estos tres métodos son
excluyentes entre sí; sólo puede estar activo uno de ellos.

 Método estándar.

Es el método que ofrece el nivel de protección más bajo. Para recuperar un fichero mediante éste
método, el comando UNDELETE realiza las siguientes acciones:

1. Busca la entrada de directorio correspondiente al fichero que se quiere recuperar, es


decir, busca una entrada de directorio cuyo primer carácter es "Õ".

2. Busca en la entrada de directorio el cluster de comienzo del fichero.

3. Con éste método, UNDELETE supone que el contenido del fichero está almacenado en
el cluster de comienzo y en los clusters siguientes, y lo intenta recuperar de ésa forma. Por
ejemplo, si el primer cluster del fichero borrado es el 47, supone que el contenido del fichero
continúa en los clusters 48, 49, 50, etc. UNDELETE sabe el tamaño del fichero porque lo ha
leído en la entrada de directorio.

4. UNDELETE pide al usuario que introduzca la primera letra del nombre del fichero.

Existen dos grandes inconvenientes al utilizar éste método:

1. Cuando se escriben datos en el disco, puede ser que se utilice la entrada de directorio o
los clusters que pertenecían al fichero borrado, en cuyo caso el fichero no se puede
recuperar.

52
2. Si el fichero estaba almacenado en clusters no secuenciales, éste método fracasa en su
intento de recuperar el fichero. Este inconveniente proporciona una buena razón para utilizar
regularmente la orden DEFRAG.

 Método registro.

Este método crea un fichero llamado PCTRACKR.DEL, en el que mantiene una lista con
información sobre cada fichero borrado. La información que guarda son los 32 bytes de la
entrada de directorio de cada fichero, la posición del fichero en el disco y el número de los
clusters en que se almacena el fichero. El fichero PCTRACKR.DEL está localizado en el
directorio raíz de cada unidad y tiene activado el atributo de sistema.

El tamaño de PCTRACKR.DEL depende de la cantidad de entradas que existen en la lista de


ficheros borrados (cada entrada se corresponde con un fichero borrado). Una entrada requiere
unos 200 bytes. Se puede definir el número de entradas de éste fichero.

Con éste método se pueden recuperar ficheros almacenados en clusters no secuenciales. Al


recuperar los ficheros, el usuario no tiene que introducir el primer carácter del nombre.

Si todos los clusters del fichero borrado están libres, UNDELETE recupera todo el fichero. Si
sólo están libres algunos clusters del fichero borrado, UNDELETE recupera el fichero
parcialmente.

Los inconvenientes de utilizar éste método son:

1. Cuando se utilizan los clusters del fichero borrado, éste no se puede recuperar.

2. Este método necesita cargar en memoria un programa residente que añade en la lista del
fichero PCTRACKR.DEL la información correspondiente a cada fichero borrado. Este
programa ocupa 9.616 bytes de memoria convencional.

3. El tiempo necesario para borrar un fichero es mayor, pues el programa residente en


memoria intercepta todas las operaciones para comprobar si se está borrando un fichero y,
en el caso de que un fichero se borre, es necesario añadir a la lista la información de dicho
fichero.

 Método centinela.

Es el más potente de todos y ofrece una alta probabilidad de recuperar correctamente los ficheros
borrados.

Este método crea en el directorio raíz un directorio oculto llamado SENTRY, en el cual se
almacena el contenido íntegro de cada fichero que se borra en la unidad. Cuando está activo el
método centinela y se borra un fichero, lo que hace realmente es trasladarlo al directorio
SENTRY. Al trasladarlo no se copia físicamente, sino que únicamente se modifican los enlaces
con los directorios para que desaparezca del directorio donde se almacenaba y pase ahora a ser
un elemento del directorio oculto SENTRY. Al recuperar un fichero con éste método,
simplemente hay que restaurar los enlaces para trasladarlo a su directorio original.

Cuando se borra un fichero con éste método, el espacio del disco, por ejemplo al ejecutar el
comando DIR, aumenta, aunque realmente no es así, pues el fichero borrado sigue almacenado
en el disco.

Se puede visualizar el contenido del directorio SENTRY con la orden DIR \SENTRY. Además
de los ficheros borrados, en el directorio SENTRY se crea el fichero CONTROL.FIL, que
contiene una lista de todos los ficheros que se almacenan en dicho directorio. El fichero
CONTROL.FIL es un fichero oculto. Para cada fichero borrado se guarda en el fichero

53
CONTROL.FIL el nombre del fichero y el directorio donde se almacenaba, para poder realizar el
traslado al ser restaurado.

Si el tamaño del fichero que se va a borrar es mayor que el espacio del directorio SENTRY, se
borra dicho fichero sin posibilidad de recuperarlo.

Los principales inconvenientes de éste método son:

1. Se consume bastante espacio en disco, pues aunque aparentemente no existan los


ficheros, realmente están almacenados en el directorio SENTRY. De todas formas, el
directorio SENTRY no aumenta incontroladamente su tamaño hasta ocupar todo el espacio
del disco, pues existen tres características que permiten limitar su tamaño:

 Se puede definir el tamaño máximo del directorio SENTRY, expresado


mediante un porcentaje respecto al espacio total del disco. Por defecto, el directorio
SENTRY sólo puede ocupar el 20% del tamaño total del disco.

 Cuando se llena el directorio SENTRY y se intenta trasladar un fichero


borrado, se eliminan los ficheros que se borraron hace más tiempo para poder copiar el
nuevo fichero borrado. Esto también ocurre cuando el disco está lleno y se intentan
grabar nuevos datos.

 Existe la opción de definir que los ficheros de SENTRY se eliminen


automáticamente cuando han transcurrido un número determinado de días desde que
fueron borrados.

2. La operación de borrar se ralentiza considerablemente debido al traslado del fichero del


directorio original al directorio SENTRY.

3. La presentación en pantalla de los listados generados con la orden DIR se ralentiza,


pues tiene que calcular los bytes libres en el disco, descontando los bytes ocupados por el
directorio SENTRY.

4. Al igual que en el método registro, éste método carga en memoria convencional unas
rutinas que se encargan de controlar, en cada operación que el ordenador realiza, si está
borrando un fichero, lo que disminuye la velocidad de proceso del ordenador.

En el proceso completo de recuperación de ficheros borrados hay que distinguir dos procesos: la
protección de los archivos que van a ser borrados y la recuperación de los ficheros borrados. Entre
ambas acciones existe una estrecha relación, pues el método de recuperación que se puede aplicar a
un fichero borrado dependerá del método de protección activo cuando se borró dicho fichero. Por
ejemplo, podemos tener activo el método centinela para proteger los archivos que se eliminen y usar
el método estándar o registro para recuperar un determinado archivo que se borró hace varios días.

 Comando UNDELETE.

La orden UNDELETE sirve para realizar dos acciones: recuperar ficheros con cualquiera de los tres
métodos y cargar en memoria los métodos registro y centinela para proteger los ficheros que se
borren. Según la acción que se vaya a realizar, el comando UNDELETE puede tener dos sintaxis:

 Sintaxis 1. Para recuperar ficheros.

UNDELETE [ficheros_borrados] [{/DOS, /DT, /DS}] [{/LIST, /ALL}]

Si se omite el primer parámetro, se asume por defecto recuperar todos los archivos borrados del
directorio activo.

 ficheros_borrados.

54
Admite un nombre de unidad, una trayectoria de directorio o una trayectoria de fichero. Se
pueden incluir los caracteres comodines.

 /DOS.

Se utiliza para recuperar ficheros por el método estándar.

 /DT.

Se utiliza para recuperar ficheros por el método registro.

 /DS.

Se utiliza para recuperar ficheros por el método centinela.

 /LIST.

Visualiza en pantalla una lista con los resultados que se producirían si se recuperan los
ficheros.

 /ALL.

Recupera automáticamente todos los ficheros sin preguntar al usuario si desea recuperarlos.

Si se omite el segundo parámetro (/DOS, /DT, /DS), la orden UNDELETE realiza los siguientes
pasos:

1. Comprueba si existe el directorio SENTRY en el directorio raíz de la unidad, en cuyo


caso se aume el método centinela.

2. Si no existe el directorio SENTRY, comprueba si existe el fichero PCTRACKR.DEL en


el directorio raíz de la unidad, en cuyo caso se asume el método registro.

3. Si no encuentra el fichero PCTRACKR.DEL, se asume el método estándar.

 Sintaxis 2. Para activar un método de protección.

UNDELETE {/LOAD, /UNLOAD, /S[unidad], /T[unidad[-entradas]], /STATUS,


/PURGE[unidad]}

Para activar el método estándar no hay que hacer nada. Siempre será posible intentar recuperar
los ficheros borrados utilizando el método estándar.

 /LOAD.

Carga en memoria el método definido en la sección [defaults] del fichero UNDELETE.INI.


Al ejecutar el parámetro /LOAD, aparece un mensaje que indica el método que se ha
cargado en memoria y las unidades activas para dicho método.

 /UNLOAD.

Descarga de la memoria el programa UNDELETE, desactivando el método cargado


anteriormente.

 /S.

Activa el método centinela y se procesan las instrucciones del fichero UNDELETE.INI, sin
tener en cuenta los valores de la sección [defaults].

55
 /Sunidad.

Unidad es la unidad de disco en la que se quiere activar el método centinela. Este parámetro
realiza dos funciones. Primero, modifica UNDELETE.INI añadiendo en la sección
[sentry.drives] la unidad especificada en unidad y graba los cambios. Y, segundo, carga en
memoria el método centinela, leyendo el nuevo fichero UNDELETE.INI.

 /T.

Activa el método registro para las unidades incluidas en la sección [mirror.drives] del
fichero UNDELETE.INI. Si no existe ninguna unidad en dicha sección, se activa el método
registro para la unidad activa y se escribe la unidad activa en la sección [mirror.drives].

 /Tunidad.

Activa el método registro para la unidad especificada en unidad y para las restantes unidades
incluidas en la sección [mirror.drives]. Si en dicha sección no estaba incluida la nueva
unidad, se añade automáticamente y se escriben los cambios en UNDELETE.INI.

 /Tunidad-entradas.

Es igual a la opción anterior, pero define el número de entradas de ficheros borrados que
podrán almacenarse en el fichero PCTRACKR.DEL. Si éste fichero ya existe, no puede
modificarse su tamaño. Cuando no se especifican las entradas de dicho fichero, se asume por
defecto un valor que depende del tamaño de la unidad. Por ejemplo, en los disquetes de
1.44Mb, el tamaño del fichero será de 14Kb, lo que permite 75 entradas como máximo. El
valor introducido en entradas se guarda en la sección [mirror.drives] del fichero
UNDELETE.INI.

 /STATUS.

Visualiza en pantalla el método activo, si es el centinela o el registro, y las unidades de disco


protegidas por dicho método.

 /PURGE[unidad].

Elimina el directorio SENTRY de la unidad especificada y todos sus ficheros, incluyendo el


fichero CONTROL.FIL. Si se omite unidad, borra dicho directorio de la unidad activa. Si el
directorio SENTRY no existe se genera un mensaje de error. Antes de borrar dicho
directorio se pide confirmación al usuario.

 Fichero UNDELETE.INI.

El fichero UNDELETE.INI se utiliza únicamente en las labores de protección. Cada vez que se carga
en memoria la protección del método centinela o del método registro, se procesa el fichero de
inicialización UNDELETE.INI, que contiene órdenes para configurar dichos métodos.

El fichero UNDELETE.INI se busca en el directorio donde está almacenado UNDELETE.EXE


(C:\DOS). Si no se encuentra, se busca en los directorios incluidos en la orden PATH, que veremos
más adelante, activa en el sistema. Si tampoco lo encuentra, se crea en el directorio DOS un fichero
UNDELETE.INI con los valores por defecto. El fichero UNDELETE.INI, cuando no existe, se crea
al cargar los métodos registro o centinela. Los valores por defecto con los que se crea éste fichero son
los siguientes:

[configuration]
archive=FALSE
days=7
percentage=20

56
[sentry.drives]
C=
[mirror.drives]
[sentry.files]
sentry.files=*.* -*.TMP -*.VM? -*.WOA -*.SWP -*.SPL -*.RMG -*.IMG -*.THM -*.DOV
[defaults]
d.sentry=TRUE
d.tracker=FALSE

El fichero UNDELETE.INI es un fichero de texto que se divide en cinco secciones:

1. Sección [configuration].

Contiene varias instrucciones de configuración que se aplican únicamente al método centinela.


El valor definido en éstas instrucciones se aplica a todas las unidades en las que está activo dicho
método. Las instrucciones de ésta sección son las siguientes:

 Archive.

Es una instrucción booleana (True o False). Por defecto tiene el valor False. Si el valor es
False, el método centinela guardará en el directorio SENTRY todos los ficheros que se
borren. Si el valor es True, sólo guardará en el directorio SENTRY los ficheros borrados que
tienen activado el atributo de archivo (los que se han modificado desde la última copia de
seguridad).

 Days.

Determina el número de días que se guardan los ficheros borrados en el directorio SENTRY.
El rango de valores es de 1 a 255. Cuando el método centinela se carga en memoria y se ha
sobrepasado el número de días especificado, los ficheros del directorio SENTRY se
eliminan automáticamente.

 Percentage.

Define el tamaño máximo del directorio SENTRY. Este tamaño se define sobre un
porcentaje del espacio total del disco. El valor mínimo es 1 y el máximo es 100. Por defecto
se asume el valor 20. Por ejemplo, si un disco tiene 1 Gb y queremos reservar 100 Mb para
el directorio SENTRY, debemos introducir el ésta sección la instrucción Percentage=10.

2. Sección [sentry.drives].

Contiene una fila con una letra y el signo "=" por cada unidad en la que se quiere activar el
método centinela.

Ejemplo. Si queremos activar el método centinela en las unidades A y C, escribiremos:

[sentry.drives]
A=
C=

3. Sección [mirror.drives].

Es similar a la anterior, pero definiendo las unidades donde se activará el método registro. Detrás
del signo "=" se puede definir el número máximo de entradas que contendrá el fichero
PCTRACKR.DEL. Para modificar el número de entradas de dicho fichero en una unidad, hay
que borrar el fichero de la unidad, modificar el número máximo de entradas del fichero en la
sección [mirror.drives], y volver a cargar el método registro.

57
Ejemplo. Queremos activar el método registro en las unidades A y C, con 20 entradas en el
fichero PCTRACKR.DEL de la unidad y A y 100 entradas en dicho fichero de la unidad C.

[mirror.drives]
A=20
C=100

4. Sección [sentry.files].

Indica los ficheros borrados que se van a incluir en el directorio SENTRY. Se pueden utilizar
plantillas. No se pueden incluir trayectorias de directorios. Los ficheros especificados son
válidos para todos los directorios de todas las unidades en que esté activo el método centinela. Si
la plantilla está precedida por el carácter "-", los ficheros que corresponden a dicha plantilla no
se guardarán en el directorio SENTRY. La instrucción que realiza éstas acciones es sentry.files.

Ejemplo. Queremos que en el directorio SENTRY se guarden todos los archivos excepto los que
tengan la extensión TMP.

[sentry.files]
sentry.files=*.* -*.TMP

5. Sección [defaults].

Establece el método a utilizar. Para ello utiliza dos instrucciones booleanas: d.sentry, que activa
el método centinela si tiene el valor True, y d.tracker, que activa el método registro si tiene el
valor True. Si las dos instrucciones tienen el valor True, se activa el método registro. Si las dos
instrucciones tienen el valor False, se genera un mensaje de error.

Los cambios realizados en el archivo UNDELETE.INI no tienen efecto hasta que se carga en
memoria UNDELETE o se reinicia el ordenador. Si ya está cargado en memoria, es necesario
descargarlo y volverlo a cargar.

Si se introduce incorrectamente en el fichero UNDELETE.INI un nombre de sección, una instrucción


o un valor, la línea desaparece automáticamente y se reemplaza por su valor por defecto.

 Recuperación de discos formateados.

Los discos que se han formateado con el formateo incondicional (/U), no se pueden recuperar.
Cuando se realiza el formateo seguro (/Q) en un disco sí es posible recuperar los datos. El formateo
seguro crea un fichero con una copia del contenido de la FAT y del directorio raíz y lo sitúa al final
del disco, en los últimos clusters del disco. Este archivo se llama MIRROR. Hay ocasiones en las que
el comando FORMAT no puede crear éste archivo, en cuyo caso da un aviso por si el usuario no
quiere formatear el disco.

Los datos del disco se pueden recuperar al 100% siempre que no se haya grabado nada en el disco
después de formatearlo. Si se graba algún fichero en el disco, el área donde se almacenan los nuevos
ficheros no se puede recuperar, pero sí el resto del disco.

La orden para recuperar los datos de un disco formateado es UNFORMAT. La sintaxis es:

UNFORMAT unidad

La orden UNFORMAT permite visualizar la tabla de particiones. Para ello hay que utilizar la sintaxis
UNFORMAT /PARTN /L

También se puede restaurar la tabla de particiciones de un disco, pero para ello hay que tener el
comando MIRROR.COM de la versión 5 del DOS.

Procesamiento por lotes.

58
El DOS puede trabajar en modo interactivo o en modo batch. El modo interactivo se caracteriza porque el
usuario tiene que introducir una a una las órdenes del DOS. En el modo batch, propio de los ficheros por
lotes, el ordenador ejecuta automáticamente varias órdenes seguidas, sin intervención del usuario.

Un fichero por lotes es un fichero de texto en el que se escriben varias órdenes del DOS. Para que se
ejecuten las órdenes introducidas en dicho fichero, hay que escribir su nombre en la línea de comandos.

Los ficheros por lotes tienen varias características:

1. Todos los ficheros por lotes han de tener la extensión BAT.

2. Los ficheros por lotes se escriben con cualquier editor de textos capaz de grabar los datos en código
ASCII. También se pueden crear utilizando el comando COPY CON fichero. Otra forma de crearlo
es mediante el buffer de órdenes, siguiendo los siguientes pasos: borrar el buffer de órdenes (Alt-F7),
ejecutar las órdenes a incluir en el fichero por lotes y ejecutar la orden DOSKEY /H
>FICHERO.BAT. Esta última orden también formaría parte del fichero por lotes, por lo que hay que
eliminarla si no queremos que forme parte del mismo.

3. Para ejecutar un fichero por lotes hay que escribir el nombre del fichero, sin la extensión.

4. Para interrumpir la ejecución de un fichero por lotes, hay que pulsar Ctrl-C. El DOS nos pide
confirmación.

El fichero AUTOEXEC.BAT es un fichero por lotes especial, que se ejecuta cada vez que se enciende o
reinicializa el ordenador. Se utiliza para ejecutar los programas u órdenes que se desean cargar siempre al
empezar a trabajar. Para que dicho fichero se ejecute ha de estar ubicado en el directorio raíz. Si no existe
o se encuentra en otro directorio, el DOS ejecuta consecutivamente las órdenes TIME, DATE y VER.

En el proceso de creación y ejecución de un fichero por lotes intervienen tres tipos distintos de mensajes:

1. Mensajes internos. Son los comentarios que introduce el usuario dentro del texto del propio fichero
por lotes para explicar detalles referentes a su diseño y funcionamiento.

2. Mensajes de llamada a una orden. Son los caracteres que se visualizan en pantalla al escribir una
orden en el teclado. Estos caracteres reciben el nombre de eco de una orden.

3. Mensajes de salida de una orden. Son los mensajes particulares que visualiza la orden durante su
ejecución.

En los ficheros por lotes se puede introducir cualquier orden o programa que se pueda escribir en la línea
de comandos. Además, existen otras órdenes, todas ellas internas, que incrementan significativamente el
rendimiento de los ficheros por lotes. Estas órdenes son:

 Orden @.

Sirve para evitar la aparición en pantalla del mensaje de llamada de una orden, es decir, para que no
se vea el eco propio de toda orden.

La sintaxis es:

@orden

El carácter @ se genera con la combinación de teclas AltGr+2. Tiene el código ASCII 64.

Ejemplo.

Crear un fichero llamado RAIZ.BAT, que va a tomar la unidad C como unidad activa, cambiar al
directorio raíz, realizar una pausa y visualizar el contenido de dicho directorio. Su contenido será el
siguiente:

59
C:
CD\
PAUSE
DIR

Ejecutar el fichero RAIZ. Vemos que se produce el eco de las órdenes escritas en el fichero por lotes.

Añadir el carácter “@” delante del nombre de cada orden y volver a ejecutar el fichero RAIZ.
Observar que el eco de las órdenes no se produce.

 Orden ECHO.

Se utiliza para activar y desactivar el eco de las órdenes. La orden ECHO desactiva el eco de todas
las órdenes siguientes hasta que se activa de nuevo o finaliza la ejecución del fichero por lotes.

La sintaxis es:

ECHO [{ON,OFF}] [mensaje]

Si se omiten los parámetros, muestra en pantalla el estado actual del eco.

 ON.

Activa el eco de las órdenes.

 OFF.

Desactiva el eco de las órdenes.

 mensaje.

Visualiza en pantalla el mensaje introducido como parámetro. El mensaje se visualiza aunque el


eco esté desactivado. Para escribir los caracteres “>”, “<” y “|” en un mensaje de la orden
ECHO, hay que encerrarlos entre comillas. Para escribir %1 en un mensaje de la orden ECHO,
tiene que ir precedido por el carácter %. Por ejemplo, la orden ECHO %%1, genera el mensaje
%1.

Si se introduce ECHO OFF desde el indicador de órdenes, éste desaparece. Para que vuelva a
aparecer hay que escribir ECHO ON.

Ejemplo.

Cambiar, en el fichero RAIZ.BAT del ejemplo anterior, los caracteres “@” de cada orden por la
orden ECHO OFF al principio del archivo. Ejecutar el fichero RAIZ. Observar que la orden ECHO
también produce su propio eco. Para que ésto no ocurra, introducir el carácter “@” delante de la
orden ECHO OFF.

Cuando visualice el contenido del direcorio raíz, visualizar el mensaje Fin del listado.

 Orden REM.

Sirve para introducir comentarios o recordatorios que facilitan la lectura del código o proporcionan
información complementaria (nombre del programador, fecha de creación, etc.). Esta orden no
realiza ninguna acción.

La sintaxis es:

REM [comentario]

60
La orden REM sin parámetros se utiliza para dejar líneas en blanco dentro del fichero que facilitan su
lectura.

Ejemplo.

Introducir comentarios en el fichero RAIZ.BAT de los ejemplos anteriores.

 Gestión de parámetros.

Los parámetros son valores que forman parte de las órdenes del DOS y se escriben detrás del nombre
de las mismas. Los ficheros por lotes también se pueden ejecutar con parámetros. Estos parámetros
son valores que se pasan al fichero desde la línea de comandos. El funcionamiento es similar a las
órdenes del DOS: se escribe el nombre del fichero seguido de los parámetros.

Para identificar dentro de un fichero por lotes los distintos parámetros que puede recibir al ejecutarse,
se utiliza el símbolo %número. La constante número ha de ser un número entero comprendido entre 0
y 9. El símbolo %0 se corresponde con el nombre y la trayectoria del fichero por lotes. Los símbolos
del %1 al %9 se refieren a los parámetros introducidos (%1 al primer parámetro, %2 al segundo, y así
sucesivamente).

Ejemplo.

Crear el fichero LISTAR.BAT, que visualizará por pantalla el contenido de dos archivos que se
pasarán como parámetros al ejecutar el fichero por lotes, realizando una pausa después de visualizar
cada archivo.

El contenido del fichero LISTAR.BAT será el siguiente:

@ECHO OFF
TYPE %1
PAUSE
TYPE %2
PAUSE

Vamos a visualizar el contenido de los archivos AUTOEXEC.BAT y CONFIG.SYS. Tendremos que


utilizar la siguiente orden:

C:\>LISTAR AUTOEXEC.BAT CONFIG.SYS

Si se introducen más de dos parámetros, el fichero por lotes se ejecuta ignorando los parámetros
introducidos a partir del tercero. Si se introduce sólo un parámetro, al ejecutar la orden TYPE %2,
ejecutaría la orden TYPE sin ningún nombre de fichero y se produciría un error.

El parámetro %0 hace referencia a la trayectoria que el usuario escribe para ejecutar el fichero por
lotes.

Ejemplo.

Suponemos que estamos situados en el directorio raíz. Si el fichero LISTAR.BAT está en raíz, para
ejecutarlo tendremos que escribir LISTAR. En éste caso el valor del parámetro %0 será LISTAR. Si
el fichero LISTAR.BAT está en el directorio C:\DOS, para ejecutarlo tendremos que escribir
\DOS\LISTAR. En éste caso el valor del parámetro %0 será \DOS\LISTAR.

 Orden SHIFT.

En la mayoría de la ocasiones, los nueve parámetros que se pueden introducir en un fichero por lotes
son suficientes. Cuando en un fichero por lotes se introducen más de nueve parámetros, hay que
utilizar la orden SHIFT para acceder a los parámetros posteriores al noveno. Cada vez que se ejecuta
una orden SHIFT, los parámetros se desplazan una posición, es ecir, el valor del parámetro %0 se
pierde, el valor del parámetro %1 pasa al parámetro %0, el del %2 al %1, y así sucesivamente.

61
 Orden PAUSE.

Detiene la ejecución de un fichero por lotes hasta que se pulsa una tecla.

La sintaxis es:

PAUSE [mensaje]

El mensaje sólo aparece en pantalla si el eco de la orden está activado. En éste caso se muestra el
mensaje introducido como parámetro y el mensaje que visualiza la orden PAUSE (Pulse cualquier
tecla para continuar . . .).

Para relizar una pausa y personalizar el mensaje, hay que utilizar las siguientes instrucciones:

ECHO Parada personalizada


PAUSE >NUL

La orden ECHO visualiza el mensaje Parada personalizada, y la orden PAUSE envía su salida al
dispositivo ficticio NUL.

 Orden GOTO.

Los ficheros por lotes ejecutan sus instrucciones secuencialmente. Para romper la ejecución
secuencial y ejecutar órdenes que no son las siguientes en secuencia, se utiliza la orden GOTO.

La sintaxis es:

GOTO [:]etiqueta

El parámetro etiqueta designa una secuencia de caracteres que identifica el lugar dentro del fichero
por lotes donde se desvía el control de la ejecución. Puede tener un máximo de 127 caracteres, pero
el DOS sólo reconoce los 8 primeros. Si existen dos etiquetas con los 8 primeros caracteres iguales,
se ejecutará la que esté colocada en primer lugar en el código del fichero por lotes.

Es conveniente que las etiquetas de un fichero por lotes se sitúen al final del código y finalicen con
una instrucción GOTO, que indicará el final de la etiqueta.

 Orden IF.

Se utiliza para ejecutar una orden cuando se cumple una determinada condición. El funcionamiento
de la orden IF es el siguiente: primero, evalúa la condición; si la condición es verdadera, ejecuta la
orden especificada detrás de la condición y, después, continúa en la línea siguiente a la orden IF; si la
condición es falsa, continúa ejecutando la orden de la línea siguiente a la orden IF.

Dependiendo de la condición a evaluar, la orden IF tiene tres sintaxis:

 Sintaxis 1.

IF [NOT] EXIST fichero orden

Se utiliza para comprobar la existencia del fichero especificado.

Ejemplo.

IF NOT EXIST CARTA.TXT ECHO No existe el fichero CARTA.TXT ¶ GOTO :FIN


REN CARTA.TXT TEXTO.TXT
:FIN

62
Podemos observar que se pueden escribir varias órdenes en la misma línea utilizando el carácter
“¶”, siempre que esté cargado el programa DOSKEY y el editor de textos empleado para crear
el fichero por lotes lo permita.

Se puede comprobar si existe un directorio o incluso una unidad. Para ello hay que preguntar si
existe el elemento NUL. El elemento NUL existe en todos los directorios existentes y en el
directorio raíz de todas las unidades.

Ejemplo.

Para saber si el directorio FICHEROS existe, habrá que escribir:

IF EXIST C:\FICHEROS\NUL ECHO El directorio FICHEROS existe ¶ GOTO :SEGUIR


ECHO El directorio FICHEROS no existe ¶ GOTO :FIN
:SEGUIR
REM Ordenes siguientes
:FIN

Para saber si la unidad F existe, habrá que escribir:

IF NOT EXIST F:\NUL ECHO La unidad F no existe ¶ GOTO :FIN


ECHO La unidad F existe
:FIN

Ejercicio.

Modificar el fichero Listar.bat creado anteriormente, controlando la inexistencia de los ficheros


que se van a listar.

@echo off
if not exist %1 goto :NoExi1
type %1
pause
:Fichero2
if not exist %2 goto :NoExi2
type %2
pause
goto :Fin
:NoExi1
echo El fichero %1 no existe
pause
goto :Fichero2
:NoExi2
echo El fichero %2 no existe
pause
:Fin
cls

 Sintaxis 2.

IF [NOT] ERRORLEVEL número orden

Esta sintaxis basa su condición en los códigos de salida generados por los programas. Un código
de salida es un valor numérico que los programas devuelven al DOS cuando terminan su
ejecución. Dichos códigos sirven para describir la causa que ha provocado la finalización del
programa.

Sólo algunas órdenes del DOS devuelven códigos de salida que se pueden recoger y procesar con
la orden IF ERRORLEVEL. Estas órdenes son: CHOICE, DISKCOMP, DISKCOPY, DEFRAG,

63
DELTREE, FIND, FORMAT, KEYB, MOVE, REPLACE, RESTORE, SETVER, y XCOPY.
(Ver fotocopia con los códigos de salida de cada orden).

Ejemplo.

Crear el fichero por lotes FORMATEA.BAT.

@ECHO OFF
REM
REM Formatear una unidad de disco
REM Paso como parámetro la unidad a formatear
REM
FORMAT %1
REM
REM Si el comando FORMAT devuelve el código de salida 3,
REM el usuario ha pulsado Ctrl-C.
REM
IF ERRORLEVEL 3 GOTO :ERRABORTAR
REM
REM Si el comando FORMAT devuelve el código de salida 0,
REM la operación se ha realizado correctamente.
REM
IF ERRORLEVEL 0 ECHO Formato correcto
GOTO :FIN
:ERRABORTAR
ECHO Formato suspendido por el usuario
:FIN
PAUSE
CLS

La condición IF ERRORLEVEL número es verdadera si número es igual o menor que el código


de salida, es decir, dado un código de salida X, son verdaderas todas las condiciones
comprendidas entre el rango 0 y X. Por lo tanto, a la hora de procesar los códigos de salida
siempre hay que empezar por el IF ERRORLEVEL más alto. Si en el ejemplo hubiéramos
controlado primero el código de salida de operación correcta (0), cuando el usuario aborte la
operación (código de salida 3) ejecutaría las órdenes a continuación de IF ERRORLEVEL 0,
porque 0 es menor que 3.

Los códigos de salida permanecen inalterables en el fichero por lotes siempre que los comandos
que se ejecuten sean internos. Cuando se ejecute un comando externo, el código de salida se
modificará.

 Sintaxis 3.

IF [NOT] cadena1==cadena2 orden

Se utiliza para comparar dos cadenas.

Una utilidad muy importante es para saber si al ejecutar un fichero por lotes se han introducido
todos los parámetros. Cuando el usuario no introduce un parámetro, el DOS lo sustituye por un
espacio en blanco.

Ejemplo.

Ejecutar el fichero FORMATEA.BAT del ejemplo anterior sin introducir el nombre de la unidad
a formatear. Después de ver el resultado, modificar el código anterior por el siguiente nuevo
código:

@ECHO OFF
REM

64
REM Formatear una unidad de disco
REM Paso como parámetro la unidad a formatear
REM Controlo si ha introducido el nombre de la unidad a formatear
REM
IF “%1” == “” GOTO :ERRUNIDAD
REM
REM Si ha introducido unidad
REM
FORMAT %1
REM
REM Si el comando FORMAT devuelve el código de salida 3,
REM el usuario ha pulsado Ctrl-C.
REM
IF ERRORLEVEL 3 GOTO :ERRABORTAR
REM
REM Si el comando FORMAT devuelve el código de salida 0,
REM la operación se ha realizado correctamente.
REM
IF ERRORLEVEL 0 ECHO Formato correcto
GOTO :FIN
:ERRUNIDAD
ECHO No ha introducido unidad
GOTO :FIN
:ERRABORTAR
ECHO Formato suspendido por el usuario
:FIN
PAUSE
CLS

Ejercicio.

Modificar el fichero Listar.bat creado anteriormente, controlando que no se escriba ningún


nombre de fichero cuando se ejecute el fichero por lotes.

@echo off
if "%1" == "" goto :NoParam1
if not exist %1 goto :NoExi1
type %1
pause
:Fichero2
if "%2" == "" goto NoParam2
if not exist %2 goto :NoExi2
type %2
pause
goto :Fin
:NoParam1
echo No ha introducido ningún fichero a listar
pause
goto :Fin
:NoExi1
echo El fichero %1 no existe
pause
goto :Fichero2
:NoParam2
echo No ha introducido el segundo fichero a listar
pause
goto :Fin
:NoExi2
echo El fichero %2 no existe
pause

65
:Fin
cls

 Orden CHOICE.

La orden CHOICE se utiliza principalmente para permitir al usuario introducir un valor en un fichero
por lotes y actuar en consecuencia. Realiza tres funciones:

1. Muestra en pantalla un mensaje y detiene la ejecución del fichero por lotes.

2. Espera que el usuario pulse una tecla, que ha de ser una de las teclas previamente
definidas como válidas.

3. Activa un código de salida ERRORLEVEL según la tecla pulsada.

La sintaxis es:

CHOICE [texto] [/C[:]teclas] [/N] [/S] [/T[:]tecla,segundos]

 Si se omiten los parámetros, la orden CHOICE no muestra ningún mensaje y asume por
defecto que sólo se pueden pulsar las teclas S o N.

Ejemplo.

Si ejecutamos la orden CHOICE desde el indicador de órdenes C:\>CHOICE, el sistema


mostrará un mensaje indicando que sólo se pueden pulsar las teclas S o N y esperará hasta que el
usuario pulse una de éstas dos teclas.

 texto.

Especifica la cadena de caracteres que se mostrará en pantalla antes de realizar la pausa.

Ejemplo.

C:\>CHOICE Copiar los ficheros de sistema en la unidad A

El sistema visualiza el mensaje y las teclas por defecto que se pueden pulsar, es decir, S o N. Se
observa que las teclas que se pueden pulsar aparecen pegados a la letra A del mensaje mostrado.
Para que ésto no ocurra, hay que dejar un espacio en blanco al final del mensaje.

 /C[:]teclas.

Se utiliza para definir las teclas que el usuario puede pulsar cuando la orden CHOICE detiene la
ejecución del fichero por lotes.

Cuando el usuario pulsa una de las teclas válidas, se inicializa el código de salida
ERRORLEVEL con un valor que depende de la posición de la tecla en el parámetro /C:teclas. El
primer carácter devuelve el código 1, el segundo el 2, y así sucesivamente. Si CHOICE detecta
algún error, devuelve el código 255 y si el usuario pulsa Ctrl-C, devuelve el código 0. Cuando el
usuario pulsa Ctrl-C, el sistema pregunta si se quiere terminar el proceso por lotes; si se responde
Sí, la ejecución se aborta; si se responde No, se puede preguntar por ERRORLEVEL 0.

Si se omite el parámetro, las teclas válidas son S o N. Por defecto, el valor de /C es /C:SN. Si
pulsamos S, se genera el código de salida 1, y si pulsamos N, se genera el código de salida 2.

Ejercicio.

Realizar un fichero por lotes que pida al usuario introducir las siguientes opciones: A, B, 1, 2 o
F. Cuando pulse la tecla F, el fichero finalizará su ejecución. En el resto de las opciones se
visualizará en pantalla la tecla pulsada y se volverá a pedir la introducción de una nueva opción.

66
@ECHO OFF
:PULSAR
CLS
CHOICE “Pulse una de las siguientes teclas: “/C:AB12F
IF ERRORLEVEL 5 GOTO :FIN
IF ERRORLEVEL 4 GOTO :DOS
IF ERRORLEVEL 3 GOTO :UNO
IF ERRORLEVEL 2 GOTO :B
IF ERRORLEVEL 1 GOTO :A
IF ERRORLEVEL 0 GOTO :ABORTAR
:ABORTAR
ECHO Interrupción del usuario. Pulse cualquier tecla
PAUSE >NUL
GOTO :FIN
:A
ECHO Ha pulsado la tecla A
PAUSE
GOTO :PULSAR
:B
ECHO Ha pulsado la tecla B
PAUSE
GOTO :PULSAR
:UNO
ECHO Ha pulsado la tecla 1
PAUSE
GOTO :PULSAR
:DOS
ECHO Ha pulsado la tecla 2
PAUSE
GOTO :PULSAR
:FIN
ECHO Fin de la ejecución. Pulse cualquier tecla
PAUSE >NUL
CLS

 /S.

Por defecto, la orden CHOICE no distingue entre mayúsculas y minúsculas ni a la hora de


introducir las teclas en el parámetro /C:teclas, ni tampoco cuando el usuario pulsa las teclas
válidas al ejecutarse la orden CHOICE. El parámetro /S obliga a distinguir entre mayúsculas y
minúsculas.

 /N.

La orden CHOICE visualiza primero en pantalla la cadena de caracteres del parámetro texto y,
luego, el mensaje que visualiza las teclas que se pueden pulsar. El parámetro /N evita que
aparezca éste último mensaje.

Ejemplo.

C:\>CHOICE “¿Desea continuar? (S/N) “ /C:SN /N

Observar que hemos introducido los interrogantes en la pregunta, las teclas válidas se escriben
entre paréntesis y no entre corchetes, el carácter separador de las teclas válidas es “/” y hemos
dejado un espacio en blanco para introducir la tecla.

 /T[:]tecla,segundos.

67
Se utiliza para introducir una tecla por defecto que el sistema asume transcurrido un intervalo de
tiempo determinado. tecla es un único carácter que representa la tecla que se asume por defecto,
y segundos indica el número de segundos que el sistema espera antes de tomar la tecla por
defecto. El rango de valores de segundos es de 0 a 99. Si se utiliza 0, el sistema espera
indefinidamente hasta que el usuario pulsa una tecla.

Ejemplo.

@ECHO OFF
CHOICE “¿Desea continuar? (S/N): “/N /T:N,5
IF ERRORLEVEL 2 GOTO :N
IF ERRORLEVEL 1 GOTO :S
:N
ECHO Ha elegido N
GOTO :FIN
:S
ECHO Ha elegido S
:FIN
PAUSE
CLS

 Ejercicio con la orden CHOICE.

Realizar un fichero por lotes que presente en pantalla el siguiente menú:

1. Editor de textos
2. Versión del sistema operativo
3. Cambiar hora del sistema
4. Cambiar fecha del sistema
5. Fin

Elija una opción (1-5):

Cuando se pulse el número de la opción, se realizará la acción especificada. Después de realizar cada
acción se volverá a presentar el menú. Cada vez que se presente el menú se borrará la pantalla. El
fichero por lotes se estará ejecutando hasta que el usuario pulse la opción 5. Para escribir una línea en
blanco se utiliza la orden ECHO seguida del carácter “.” (ECHO.) .

Código.

@echo off
:menu
cls
echo 1. Editor de textos
echo 2. Versión del sistema operativo
echo 3. Cambiar hora del sistema
echo 4. Cambiar fecha del sistema
echo 5. Fin
echo.
choice “Elija una opción (1-5): “/c:12345 /n
if errorlevel 5 goto :fin
if errorlevel 4 goto :fecha
if errorlevel 3 goto :hora
if errorlevel 2 goto :version
if errorlevel 1 goto :editor
:editor
edit
goto :menu
:version
ver

68
pause
goto :menu
:hora
time
pause
goto :menu
:fecha
date
pause
goto :menu
:fin
cls

 Orden FOR.

La orden FOR repite el mismo proceso un número determinado de veces.

La sintaxis es:

FOR %%letra IN (conjunto) DO orden

El funcionamiento general de la orden FOR es el siguiente: existe un conjunto de elementos que se


enumeran en conjunto, individualmente y separándose por un espacio en blanco. El proceso definido
en orden se repite tantas veces como elementos se han definido en conjunto, tomando en cada
ocasión un único elemento. El símbolo %%letra es una única letra e indica la variable que irá
tomando los distintos valores del conjunto cada vez que se realice el proceso. La lista de los
elementos del conjunto tienen que escribirse siempre entre paréntesis. En conjunto se pueden utilizar
los caracteres comodines.

Ejemplo.

Visualizar el contenido de todos los ficheros con la extensión TXT.

FOR %%F IN (*.TXT) DO TYPE %%F |MORE

La orden FOR también se puede escribir desde la línea de comandos. En éste caso, el parámetro %
%letra tiene que escribirse con un sólo carácter “%”.

Ejemplo.

Imprimir el contenido de todos los ficheros con la extensión TXT, copiarlos en la unidad A y
borrarlos.

C:\>FOR %F IN (*.TXT) DO TYPE %F > PRN ¶ COPY %F A: ¶ DEL %F

 Orden CALL.

La orden CALL permite ejecutar un segundo fichero por lotes y, cuando éste segundo fichero termine
su ejecución, ejecutar la orden siguiente al comando CALL.

La sintaxis es:

CALL fichero [parámetros]

 fichero.

Es el nombre del fichero por lotes que se quiere ejecutar.

 parámetros.

69
Son los posibles parámetros que se pasan al fichero por lotes llamado.

Ejemplo.

Realizar un fichero por lotes, llamado FICHERO.BAT, que contenga un bucle que tome los ficheros
AUTOEXEC.BAT y CONFIG.SYS y llame a otro fichero por lotes, llamado LISTAR.BAT, que
visualice por pantalla el contenido de dichos ficheros.

Código del archivo por lotes FICHERO.BAT.

@ECHO OFF
FOR %%F IN (AUTOEXEC.BAT CONFIG.SYS) DO CALL LISTAR %%F

Código del fichero por lotes LISTAR.BAT.

ECHO Contenido del fichero %1


ECHO.
TYPE %1 |MORE
ECHO.
PAUSE

 Ejemplo de fichero por lotes.

El ejemplo consiste en realizar un fichero por lotes que copie todos los ficheros que se pasen como
parámetros, controlando que no se introduzca ningún parámetro, que los ficheros a copiar no existan
y personalizando los mensajes. Para ello vamos a utilizar dos ficheros por lotes: Copia.Bat y
Existe.Bat.

Código del fichero por lotes Copia.Bat.

@Echo Off
Rem ----------------------------------------------------
Rem
Rem Fichero por lotes Copia.Bat
Rem
Rem Copia los ficheros introducidos como parámetros
Rem en el directorio C:\NUEVO.
Rem
Rem ----------------------------------------------------
Rem
Rem Controlamos si no se han introducido parámetros
Rem
Rem Si no se han introducido parámetros se avisa al
Rem usuario y se finaliza la ejecución del fichero
Rem por lotes
Rem
If "%1" == "" Goto :Sin_Parametros
Rem
Rem ----------------------------------------------------
Rem
Rem Controlamos si el directorio NUEVO existe
Rem
Rem Si el directorio NUEVO no existe, se crea
Rem
If Not Exist c:\nuevo\nul md c:\nuevo
Rem
Rem ----------------------------------------------------
Rem
Rem Proceso de copia
Rem

70
:Proceso_Copia
Rem
Rem Siempre vamos a trabajar con el parámetro %1,
Rem independientemente del número de parámetros
Rem que el usuario haya introducido. Para ello
Rem vamos a utilizar la orden Shift.
Rem
Rem Queremos visualizar el nombre del archivo que
Rem se está copiando. Este nombre lo tenemos en la
Rem variable %1. Cuando utilizamos una plantilla,
Rem la variable %1 va a contener el nombre de la
Rem plantilla (por ej. *.txt). Para que podamos
Rem visualizar los nombres de los ficheros que
Rem estamos copiando cuando utilizamos una plantilla,
Rem será necesario utilizar la orden For. De ésta
Rem forma, la variable %%f contendrá el nombre del
Rem fichero que se está copiando.
Rem
Rem Vamos a utilizar un nuevo fichero por lotes,
Rem llamado Existe.Bat, que va a controlar la
Rem existencia del fichero que queremos copiar y,
Rem en el caso de que exista, realizar la copia. Al
Rem fichero Existe.Bat le pasaremos como parámetro
Rem el fichero que vamos a copiar.
Rem
For %%f In (%1) Do Call Existe %%f
Rem
Rem Utilizamos la orden Shift para desplazar los
Rem parámetros introducidos por el usuario y, de
Rem ésta forma, la variable %1 tomará el valor del
Rem siguiente parámetro introducido.
Rem
Shift
Rem
Rem
Rem Controlamos que ya no hay más parámetros y,
Rem por lo tanto, que ya hemos copiado todos los
Rem archivos.
Rem
If "%1" == "" Goto :Fin
Rem
Rem Volvemos a realizar el proceso
Rem
Goto :Proceso_Copia
Rem
Rem ----------------------------------------------------
Rem
Rem El usuario no ha introducido ningún parámetro
Rem
:Sin_Parametros
Echo Error: No ha introducido ningún archivo a copiar
Echo Pulse una tecla
Rem
Rem La orden Goto :Fin no es necesaria porque lo que
Rem se ejecuta a continuación es la etiqueta :Fin, pero
Rem la ponemos para que sepamos lo que estamos haciendo
Rem sin necesidad de seguir consultando el código.
Rem
Goto :Fin
Rem

71
Rem ----------------------------------------------------
Rem
Rem Fin del fichero por lotes
Rem
:Fin
Echo La copia ha finalizado. Pulse una tecla
Pause >Nul
Cls
Rem
Rem ----------------------------------------------------

Código del fichero por lotes Existe.Bat.

Rem ----------------------------------------------------
Rem
Rem Fichero por lotes Existe.Bat
Rem
Rem Este fichero se llama desde el fichero por lotes
Rem Copia.Bat
Rem
Rem Comprobamos si el fichero que se ha pasado como
Rem parámetro desde Copia.Bat existe.
Rem
If Not Exist %1 Goto :No_Existe
Rem
Rem ----------------------------------------------------
Rem
Rem Si el fichero existe, se realiza la copia, mostrando
Rem un mensaje con el nombre del fichero que se está
Rem copiando.
Rem
Rem Redireccionamos la salida del comando Copy al
Rem dispositivo Nul para que no se visualice el mensaje
Rem que genera la orden Copy cuando copia un fichero.
Rem
Echo Copiando el fichero %1 en c:\nuevo
Copy %1 c:\nuevo >Nul
Goto :Fin
Rem
Rem ----------------------------------------------------
Rem
Rem El fichero que se va a copiar no existe
Rem
:No_Existe
Echo El fichero %1 no existe. Pulse una tecla
Pause >Nul
Rem Goto :Fin
Rem
Rem ----------------------------------------------------
Rem
Rem El fichero por lotes termina su ejecución
Rem
:Fin
Rem
Rem ----------------------------------------------------

Código del fichero por lotes Copia.Bat sin comentarios.

@Echo Off
If "%1" == "" Goto :Sin_Parametros

72
If Not Exist c:\nuevo\nul md c:\nuevo
:Proceso_Copia
For %%f In (%1) Do Call Existe %%f
Shift
If "%1" == "" Goto :Fin
Goto :Proceso_Copia
:Sin_Parametros
Echo Error: No ha introducido ningún archivo a copiar
Echo Pulse una tecla
Goto :Fin
:Fin
Echo La copia ha finalizado. Pulse una tecla
Pause >Nul
Cls

Código del fichero por lotes Existe.Bat sin comentarios.

If Not Exist %1 Goto :No_Existe


Echo Copiando el fichero %1 en c:\nuevo
Copy %1 c:\nuevo >Nul
Goto :Fin
:No_Existe
Echo El fichero %1 no existe. Pulse una tecla
Pause >Nul
:Fin

La memoria.

En 1.980, cuando los arquitectos de ordenadores IBM crearon el primer ordenador personal, lo hicieron
con un máximo de 1024Kb direcciones de memoria. Desde ése momento, y hasta nuestros días, el DOS
sólo reconoce que existen 1024Kb direcciones de memoria, de las cuales las 640Kb primeras se utilizan
para ejecutar programas y las 384 restantes se reservan para uso del sistema, asignando a ésas direcciones
las celdas de memoria con las rutinas de la memoria ROM.

Para solucionar los problemas que se derivan de disponer una memoria de sólo 1Mb, se han creado los
siguientes tipos de memoria:

 Memoria convencional.

La memoria convencional está formada por celdas de memoria en chips RAM y toma como dirección
los primeros 640Kb de memoria del ordenador. En la memoria convencional se ejecutan todos los
programas del DOS. El objetivo de todo usuario es tener en su ordenador la mayor cantidad posible
de memoria convencional libre, y uno de los objetivos primordiales de todos los programadores es
crear programas que no excedan el límite de 640Kb.

Los 640Kb de la memoria convencional no están a disposición de los usuarios, sino que entre 110Kb
y 140Kb se utilizan para almacenar la siguiente información:

 Reservado por el sistema.

En los primeros 2Kb, se almacenan unas tablas de datos fundamentales para el ordenador (la
tabla de interrupciones, la tabla de características del ordenador, etc.).

 Núcleo del DOS.

Son las rutinas básicas almacenadas en los ficheros de sistema IO.SYS y MSDOS.SYS. Ocupan
unos 44Kb, que se convierten en 88Kb si se ha cargado el fichero de sistema DBLSPACE.BIN.

 Ordenes del fichero CONFIG.SYS.

73
Hay cinco órdenes del fichero CONFIG.SYS que se cargan en memoria convencional:
BUFFERS, FCBS, FILES, LASTDRIVE y STACKS. El tamaño de cada una de ellas depende
del valor especificado.

 Controladores de dispositivos.

Todos los controladores de dispositivo que se cargan con la orden DEVICE se almacenan en
memoria convencional. El tamaño depende de los valores asignados.

 Programa COMMAND.COM.

La parte del fichero COMMAND.COM que se carga en memoria convencional ocupa unos 3Kb.

 Programas residentes del usuario.

Se cargan desde el fichero AUTOEXEC.BAT. Se pueden incluir entre éstos programas: KEYB,
DOSKEY o FASTOPEN. El espacio ocupado depende del número de programas residentes
cargados y del tamaño de cada uno de ellos.

 Memoria superior.

Son los 384Kb de memoria comprendida entre 640Kb y 1024Kb. La memoria superior está reservada
para programas del sistema y rutinas de inicialización y control, que se almacenan en segmentos,
siendo cada segmento 64Kb. Estos programas son:

 Memoria vídeo.

La memoria vídeo son celdas de memoria de chips RAM que almacenan los caracteres y
atributos que se visualizan en pantalla. Los chips RAM de la memoria vídeo no se incluyen en la
placa base, sino que se integran dentro de la propia tarjeta de vídeo. El contenido de los chips
RAM de la tarjeta gráfica se sitúa en los segmentos A y B de la memoria superior.

 ROM BIOS.

La ROM BIOS es el conjunto de rutinas básicas que gestionan las operaciones de E/S en el
ordenador (por ejemplo, transformar la pulsación de una tecla en el código ASCII de dicha
tecla). Las rutinas de la BIOS se almacenan en chips ROM que se incluyen dentro de la placa
base. Cuando se enciende el ordenador, el sistema se encarga de asignar las celdas de memoria
de los chips de la ROM BIOS a las direcciones del segmento F, que es el último segmento de la
memoria superior.

 Extensiones ROM.

Son rutinas almacenadas en chips ROM que gestionan diversos dispositivos del sistema, como,
por ejemplo, la tarjeta controladora del disco duro. Se almacenan en los segmentos C, D, y F.

En la memoria superior existen huecos libres con direcciones no asignadas a ningún programa. En
éstos huecos libres es posible cargar los controladores de dispositivos y los programas residentes del
DOS, liberando una cantidad considerable de memoria convencional. Estos huecos libres reciben el
nombre de bloques de memoria superior o UMB (Upper Memory Block).

 Memoria extendida.

La memoria extendida es la memoria por encima de 1024Kb. El inconveniente más grave de la


memoria extendida es que no se puede utilizar desde el DOS. La única operación que se puede
realizar es crear un disco RAM. Este problema se soluciona con la memoria extendida XMS.

74
Si un ordenador tiene, por ejemplo, 32 Mb de memoria RAM, los 640Kb primeros de dicha memoria
se sitúan en los primeros 640Kb de la memoria convencional y el resto son memoria extendida. Los
384Kb de la memoria superior no se pueden ocupar con chips RAM.

 Memoria expandida.

Se puede decir que la memoria expandida no existe, pues no hay ninguna dirección de memoria que
reciba el nombre de memoria expandida. Esta memoria es simplemente un método para acceder a
más memoria de la permitida en el ordenador, un truco para aumentar el rango de direcciones de los
ordenadores.

El funcionamiento de la memoria expandida es el siguiente: Se instalan los chips de memoria RAM


en el ordenador y se configuran como memoria expandida, ya sea por medio de unos interruptores en
la placa base o mediante el programa de configuración del ordenador SETUP. A partir de éste
momento, los chips de memoria RAM que se han configurado como memoria expandida no tienen
dirección en el mapa de direcciones habitual, es decir, están fuera del alcance del microprocesador.
Sin embargo, también se crea en memoria superior, en alguna zona libre de los segmentos C, D y E,
un bloque de memoria de 64Kb, llamado marco de página, que sirve para acceder a la memoria
expandida. Cuando el ordenador necesita memoria expandida, traspasa el contenido de ésta al marco
de página, que sí está en una dirección de memoria al alcance del microprocesador.

La memoria expandida funciona con una técnica conocida como intercambio o conmutación de
bancos de memoria. Los 64Kb del marco de página se dividen en 4 páginas físicas de 16Kb cada una
y toda la memoria expandida se divide en páginas lógicas de 16Kb cada una. Cuando se necesita una
determinada página lógica, la especificación de memoria expandida se encarga de copiar el contenido
de la página lógica en una página física, de forma que el DOS pueda acceder a ella. Por ejemplo, si
un programa necesita la página lógica 14, sólo hay que copiar el contenio de dicha página en una de
las cuatro páginas físicas del marco de página, por ejemplo la 2, y leer dicha página 2. La operación
de copiar una página lógica en una página física recibe el nombre de mapear.

Obviamente, todo éste proceso ralentiza la velocidad del ordenador.

 Memoria alta.

La memoria alta ocupa desde la dirección 1024Kb hasta la dirección 1088Kb, es decir, 64Kb. Para
poder acceder a ella, el DOS utiliza un método de direccionamiento basado en el sistema
hexadecimal.

La memoria alta recibe el nombre de HMA (High Memory Area). Para crear el HMA hay que tener
64Kb libres de memoria extendida e instalar el controlador HIMEM.SYS.

En la memoria alta sólo se puede almacenar un programa. No pueden existir dos o más programas
utilizando parte de la memoria alta, por lo que conviene cargar en memoria alta un programa que
ocupe la mayor cantidad posible del HMA. Normalmente se utiliza para cargar el núcleo del DOS
(ficheros IO.SYS y MSDOS.SYS). De ésta forma, se liberan 44 Kb de memoria convencional.

 Memoria extendida XMS.

Es igual que la memoria extendida, desarrollada bajo la especificación XMS (creada por Microsoft,
Intel, AST y Lotus), con el propósito de definir un método estándar en la gestión de memoria
extendida. Con éste método, pueden ejecutarse diferentes programas que utilicen distintos bloques de
memoria extendida. El sistema operativo Windows trabaja con memoria extendida a través de la
especificación XMS.

Tanto el sistema operativo DOS como Windows, utilizan el controlador HIMEM.SYS para reconocer
la memoria extendida XMS, por lo que dicha memoria se sitúa a partir de la dirección 1088Kb, pues,
hasta ésta dirección, y desde la 1024Kb, se sitúa la HMA, que también es creada por el controlador
HIMEM.SYS.

 Memoria CMOS RAM.

75
Se utiliza para guardar el programa de configuración SETUP que contiene las características más
importantes del ordenador: fecha y hora activa, número y tipo de las unidades de disquetes y de disco
duro, memoria RAM instalada, memoria extendida instalada, etc.

 Memoria sombra.

La memoria sombra (shadow RAM) es una técnica para optimizar la velocidad del ordenador, que
consiste en traspasar las rutinas BIOS incorporadas en chips ROM, a los cuales es más lento el
acceso, a una zona de memoria RAM. La memoria sombra recibe éste nombre porque crea una copia
en RAM de las rutinas ROM.

La memoria sombra se sitúa en la memoria extendida y se puede activar o desactivar mediante unos
interruptores en la placa base o por medio del programa SETUP.

 Memoria caché.

La memoria caché se crea en la memoria convencional, extendida o expandida y es utilizada por los
programas caché. Existen dos tipos de programas caché:

 Caché de disco.

Los cachés de disco utilizan memoria RAM para almacenar los sectores del disco duro que se
utilizan con más frecuencia. De ésta forma, cuando se pide el contenido de alguno de ésos
sectores, se leen de la memoria, que es mucho más rápido que si se leen del disco.

 Caché de memoria.

Los cachés de memoria almacenan en chips de memoria ultrarápida los datos más utilizados por
el sistema. En éste caso se acelera todavía más la velocidad de proceso que en los cachés de
disco.

A continuación, vamos a ver las distintas operaciones que se pueden realizar con la memoria instalada:

 Conocer la memoria instalada.

La orden MEM se utiliza para conocer el mapa de memoria del ordenador, indicando la memoria
convencional libre, la memoria superior libre y qué programas están almacenados tanto en memoria
convencional como en memoria superior. También se incluye información sobre las memorias
extendida y expandida.

La sintaxis es:

MEM [{/D[EBUG],/C[LASSIFY],/F[REE],/M[ODULE]:programa}] [/P[AGE]]

Si se omiten los parámetros, se visualiza en pantalla un resumen total de la memoria instalada en el


ordenador y cómo se está utilizando.

 /D[EBUG].

Visualiza una lista de los programas residentes que están ocupando las memorias convencional y
superior. El listado se compone de una línea por cada bloque de memoria ocupado.

 /C[LASSIFY].

76
Visualiza de forma mucho más organizada y legible para el usuario los bloques de memoria
ocupados y libres en las memorias convencional y superior. Tiene el inconveniente de que no
indica la dirección de comienzo de los programas y no distingue entre controladores de
dispositivo y programas residentes.

 /F[REE].

Visualiza los bloques de memoria libres en las memorias convencional y superior. En el listado
de la memoria superior no aparecen los bloques pequeños de memoria libre.

 /M[ODULE]:programa.

Se utiliza para conocer si un determinado programa está cargado en memoria. Si el programa


está cargado en memoria, visualiza la dirección donde está cargado y el tamaño que ocupa, y, si
no está cargado, visualiza un mensaje indicándolo.

Si en el apartado región no aparece nada, quiere decir que el programa está almacenado en
memoria convencional.

Si se visualiza el programa MSDOS, se muestran tanto los bloques que almacenan las rutinas
básicas del DOS (ficheros de sistema, espacio ocupado por FILES, LASTDRIVE, etc.) como los
bloques libres.

 /P[AGE].

Se utiliza para detener la presentación de los listados pantalla a pantalla.

 Crear discos RAM.

Un disco RAM o disco virtual es una unidad lógica creada en memoria. A efectos prácticos, un disco
RAM funciona exactamente igual que una unidad de disquete o un disco duro.

Los discos RAM son una herramienta muy poderosa que permite aumentar significativamente la
velocidad del sistema. Se utilizan para copiar en ellos programas de aplicación, junto con los ficheros
o bases de datos que utilicen, y ejecutarlos desde el disco virtual. Antes de apagar el ordenador hay
que copiar los datos del disco virtual al disco real.

El DOS asigna al disco virtual la primera letra de unidad libre. Los discos RAM tienen sector de
arranque, FAT, directorio raíz y área de datos del usuario.

La orden para crear discos RAM es RAMDRIVE. Esta orden debe incluirse en el fichero
CONFIG.SYS. Su sintaxis es:

RAMDRIVE.SYS [tamaño [sector [entradas]]] [{/A,/E}]

 tamaño.

Es el tamaño del disco RAM. El rango de valores es de 4Kb a 32 Mb. El tamaño por defecto son
64Kb.

 sector.

Indica el número de bytes de cada sector. Los valores permitidos son 128, 256, 512 y 1024. El
valor por defecto es 512.

 entradas.

Es el número máximo de entradas de directorio que podrá contener el directorio raíz del disco
RAM. El rango es de 2 a 1024. El valor por defecto es 64.

77
 /A,/E.

La opción /A crea el disco RAM en memoria expandida EMS y la opción /E lo crea en memoria
extendida XMS. Si se omite éste parámetro se crea en memoria convencional. Si vamos a utilizar
éstas memorias, hay que instalar, previamente, el controlador de memoria expandida o
extendida. No conviene crear los discos RAM en la memoria convencional.

Se pueden crear dos o más discos RAM en el sistema. Para ello hay que incluir tantas órdenes
RAMDRIVE en el fichero CONFIG.SYS como discos virtuales se quieran crear.

 Crear caché de disco.

La orden SMARTDRV se utiliza para crear un caché de disco duro en memoria extendida, que
acelera las aplicaciones del usuario evitando el acceso al disco duro. Por ejemplo, si tenemos el caché
de disco creado y ejecutamos varias veces la orden DIR, comprobaremos que a partir de la segunda
vez no se lee del disco, porque el contenido de la orden DIR se ha copiado en el caché.

Para cada unidad se puede crear un caché de lectura y un caché de escritura. En el caché de lectura se
guardan los últimos sectores leídos de la unidad. En el caché de escritura se almacenan los sectores
que se escriben en la unidad, por si es necesario volver a escribirlos.

Para crear el caché de disco duro, hay que ejecutar ésta orden desde la línea de comandos. Su sintaxis
es:

SMARTDRV [[unidad[{+,-}]]...] [tamaño [tamaño Windows]] [/B:buffer] [/E:tamaño]


[/L] [{/V,/Q}] [/C] [/R] [/S]

 unidad[{+,-}].

Permite crear en cualquier momento el caché para una determinada unidad de disco. Se pueden
introducir varias unidades separadas por un espacio en blanco. Si se introduce el carácter “+”
detrás de la letra de una unidad, se crea el caché de lectura y el caché de escritura para dicha
unidad. Si se introduce el carácter “-“, se desactivan ambos cachés para la unidad especificada.
Si sólo se introduce el nombre de la unidad, se crea únicamente el caché de lectura para dicha
unidad.

 tamaño.

Define el número de Kb de memoria extendida que se usan para crear el caché de disco duro. El
rango de valores es de 128Kb a 8Mb. El valor por defecto depende de la cantidad de memoria
extendida instalada en el ordenador.

 tamañoWindows.

Es el tamaño en Kb al que se reduce el caché de SMARTDRV cuando se ejecuta WINDOWS,


con el objeto de liberar memoria extendida, que es la memoria que utiliza Windows. Cuando se
termina de ejecutar Windows y se regresa al DOS, el caché vuelve a tomar su tamaño anterior.

 /B:buffer.

Define el tamaño en Kb del buffer de lectura anticipada. Por defecto, SMARTDRV almacena en
el caché únicamente el sector que se desea leer. Este parámetro indica a SMARTDRV que, cada
vez que se realice una operación de lectura, debe leer los sectores siguientes al sector solicitado,
hasta alcanzar el tamaño definido en buffer. De ésta forma, si la aplicación pide leer los sectores
siguientes, ya estarán en memoria. Hay que tener cuidado al definir el tamaño del buffer, porque
éste se crea en memoria convencional. El valor por defecto son 16Kb.

 /E:tamaño.

78
Define la cantidad de datos en bytes que SMARTDRV puede mover a la vez entre la memoria
extendida y la memoria convencional. Los valores permitidos son 1024, 2048, 4096 y 8192
bytes. El valor por defecto son 8192 bytes.

 /L.

Impide que SMARTDRV se cargue en memoria superior. Este parámetro sólo se puede
introducir la primera vez que se carga SMARTDRV.

 /V.

Visualiza los mensajes y estadísticas de SMARTDRV la primera vez que se carga el caché.

 /Q.

Anula la presentación en pantalla de los mensajes de SMARTDRV.

 /C.

Vuelca el contenido del caché en el disco duro. Normalmente éste parámetro no se utiliza porque
SMARTDRV aprovecha los momentos en que el disco duro está inactivo para realizar ésta
operación.

 /R.

Borra el contenido del caché.

 /S.

Visualiza en pantalla información general sobre el caché.

Si hay que elegir entre crear un disco RAM o un caché de disco, es mejor utilizar el caché de disco,
porque permite acelerar la velocidad del programa que se esté ejecutando en todo momento y no sólo
del programa cargado en el disco virtual y, además, con el caché de disco no hay que realizar las
operaciones de copiado al disco RAM y al disco real. Si la memoria lo permite, la mejor solución es
utilizar ambos métodos.

 Buffer doble de SMARTDRV.

El caché de disco SMARTDRV puede cargar en memoria una característica denominada buffer
doble, que proporciona compatibilidad con algunos discos duros cuando se está utilizando el
controlador EMM386.EXE. En la mayoría de las ocasiones, el buffer doble se necesita cuando el
ordenador posee un disco duro SCSI, pero también puede ser necesario en discos duros ESDI o
MCA.

Para cargar el buffer doble hay que incluir la orden SMARTDRV en el fichero CONFIG.SYS. Su
sintaxis es la siguiente:

DEVICE=C:\DOS\SMARTDRV.EXE /DOUBLE_BUFFER

El buffer doble sólo se puede cargar en memoria convencional y ocupa 2Kb.

Para saber si nuestro disco duro necesita cargar el buffer doble de SMARTDRV hay que realizar las
siguientes operaciones:

1. Añadir en el fichero CONFIG.SYS las siguientes instrucciones:

DEVICE=C:\DOS\SMARTDRV.EXE /DOUBLE_BUFFER
REM En la siguiente instrucción se puede incluir el parámetro RAM o NOEMS

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

2. Añadir en el fichero AUTOEXEC.BAT la orden SMARTDRV para crear el caché de disco.

3. Reinicializar el ordenador e introducir en la línea de comandos la orden SMARTDRV sin


parámetros. Si en todas las unidades aparece el valor “no” en la columna búfer, el disco duro no
necesita el buffer doble. Si en algunas de las unidades aparece el valor “si”, el disco duro
requiere el buffer doble para trabajar con el caché SMARTDRV. Si aparece el valor “-“, no se
puede determinar si el disco duro necesita el buffer doble. En éste caso, lo más probable es que
no se necesite el buffer doble, aunque no es seguro. Si el disco duro es IDE, no hace falta cargar
el buffer doble.

A continuación vamos a ver los métodos que se utilizan para optimizar la gestión de la memoria, es decir,
aumentar la cantidad de memoria convencional libre que le quedan a los programas del DOS. Estos
métodos son los siguientes:

 Optimizador de memoria MEMMAKER.

MEMMAKER es un programa diseñado para configurar automáticamente la memoria del ordenador,


obteniendo la mayor cantidad posible de memoria convencional libre.

Antes de ejcutar MEMMAKER es preciso comprobar qué controladores y programas residentes hay
instalados en memoria. Debemos distinguir entre dos clases: controladores y programas residentes
que queremos cargar cada vez que el ordenador se enciende (por ejemplo, el programa KEYB, que
carga el teclado en español, o el controlador del ratón) y los programas residentes y controladores
que utilizamos ocasionalmente (por ejemplo, un disco RAM que creamos cuando vamos a ejecutar
una determinada aplicación). Conviene que eliminemos de los ficheros CONFIG.SYS y
AUTOEXEC.BAT las órdenes que cargan en memoria los programas residentes y controladores que
no utilizamos en el trabajo diario, porque el programa MEMMAKER realiza la optimización de la
memoria en base a la ocupación de la misma en el momento de su ejecución. Después de modificar
los ficheros CONFIG.SYS y AUTOEXEC.BAT, hay que reinicializar el ordenador para que cargue
en memoria los programas y controladores que nos interesen y, posteriormente, ejecutar
MEMMAKER.

A grandes rasgos, MEMMAKER realiza las siguiente acciones:

 Analiza las órdenes de CONFIG.SYS que permanecen residentes en memoria,


ajustando sus valores.

 Añade en CONFIG.SYS una orden DEVICE para cargar el controlador HIMEM.SYS,


que crea la memoria alta. Además, también añade la orden DOS=HIGH para cargar el núcleo del
DOS en memoria alta.

 Añade en CONFIG.SYS la orden DEVICE que carga el controlador EMM386.EXE,


que crea los bloques de memoria superior, y la orden DOS=UMB.

 Realiza un chequeo de las zonas libres de memoria superior e introduce en


EMM386.EXE los parámetros adecuados para conseguir la mayor cantidad posible de memoria
superior.

 Examina los controladores de dispositivos cargados en CONFIG.SYS con las órdenes


DEVICE o DEVICEHIGH e intenta cargarlos en memoria superior.

 Examina los programas residentes que existen en el fichero AUTOEXEC.BAT e intenta


cargarlos en memoria superior.

80
En realidad, MEMMAKER lo único que hace es modificar los ficheros CONFIG.SYS y
AUTOEXEC.BAT para que al inicializar el ordenador todos los controladores y programas
residentes que se cargan en éstos archivos se almacenen en memoria de la forma más óptima posible.
Aunque MEMMAKER realiza una copia de los ficheros CONFIG.SYS y AUTOEXEC.BAT en el
directorio DOS con los nombres CONFIG.UMB y AUTOEXEC.UMB, conviene que nosotros
realicemos otra copia de éstos ficheros antes de ejecutar MEMMAKER.

Al ejecutar MEMMAKER, el ordenador se reinicializa dos veces. Es importante estar atentos a la


pantalla cuando el ordenador se está reinicializando por si se genera un mensaje de error. Si se
produce algún error, MEMMAKER da opción al usuario para Reintentar con las mismas
configuraciones o Cancelar y deshacer los cambios. Si elegimos reintentar, MEMMAKER volverá a
cargar el sistema con las nuevas configuraciones. Si vuelven a generarse errores, lo mejor que
podemos hacer es restaurar las configuraciones anteriores, que se puede realizar de dos formas:

 Ejecutar MEMMAKER /UNDO, para restaurar los ficheros AUTOEXEC.BAT y


CONFIG.SYS a partir de los ficheros AUTOEXEC.UMB y CONFIG.UMB que MEMMAKER
creó.

 Copiar manualmente los ficheros de la configuración antigua.

Cuando los controladores y programas residentes se cargan en memoria, además de necesitar espacio
para su tamaño, necesitan espacio disponible para los programas que inicializan y cargan dicho
controlador o programa. El tamaño del programa residente o controlador y los programas necesarios
para inicializarlo y cargarlo se denomina tamaño máximo. El tamaño del controlador o programa
residente, que es el que queda almacenado en memoria, se llama tamaño final. Estos conceptos son
muy importantes cuando los controladores y programas residentes se cargan en memoria superior.
Supongamos que en memoria superior tenemos 60Kb libres y queremos almacenar un programa A
con un tamaño máximo de 20Kb y un tamaño final de 12Kb, y un programa B con un tamaño
máximo de 50Kb y un tamaño final de 30Kb. Si se carga primero el programa A, los 60Kb quedan
reducidos a 48Kb (60Kb-12Kb), siendo imposible cargar el programa B, cuyo tamaño máximo es de
50Kb. Por el contrario, si cargamos primero el programa B y luego el programa A, no surge ningún
problema. De todo esto se deduce que es necesario cargar en memoria superior los controladores y
programas residentes con mayor tamaño máximo. Cuando termina su ejecución, MEMMAKER crea
en el directorio del DOS un fichero llamado MEMMAKER.STS, que es un fichero de texto y
contiene las estadísticas de los programas analizados durante la optimización. Además, en éste
fichero se indican el tamaño máximo y el tamaño final de cada controlador y programa residente que
existían en CONFIG.SYS y AUTOEXEC.BAT al ejecutar MEMMAKER. Por lo tanto, para saber
los tamaños máximo y final de un controlador o programa residente, hay que incluirlo en los ficheros
CONFIG.SYS y AUTOEXEC.BAT y ejecutar MEMMAKER.

En el directorio DOS existe un fichero, llamado MEMMAKER.INF, en el que se pueden especificar


los controladores o programas residentes que no se quieren optimizar con MEMMAKER. Este
fichero se copia en el proceso de instalación del DOS con unos valores establecidos, que se pueden
modificar según las necesidades de cada usuario. El nombre del controlador o programa que se quiere
desactivar, hay que incluirlo sin extensión.

Ejemplo de ejecución del programa Memmaker.

Al instalar el sistema operativo Ms-Dos 6.22 en el ordenador, el contenido de los ficheros Config.sys
y Autoexec.bat es el siguiente:

 Fichero Config.sys.

DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH
COUNTRY=034,,C:\DOS\COUNTRY.SYS
DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
FILES=30

81
 Fichero Autoexec.bat.

C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
KEYB SP,,C:\DOS\KEYBOARD.SYS
DOSKEY

Si visualizamos el contenido de la memoria con el comando Mem /f, el resultado sería el siguiente:

Memoria convencional libre:

Segmento Total
-------- -----------------
006AE 80 (0K)
006C4 96 (0K)
00F97 88.992 (87K)
02551 501.488 (490K)

Total libre: 590.656 (577K)

No hay memoria superior disponible

Después de ejecutar el programa optimizador de memoria Memmaker, el contenido de los ficheros


Config.sys y Autoexec.bat sería el siguiente:

 Fichero Config.sys

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
BUFFERS=15,0
FILES=30
DOS=UMB
LASTDRIVE=E
FCBS=4,0
DEVICEHIGH /L:1,12192 =C:\DOS\SETVER.EXE
DOS=HIGH
COUNTRY=034,,C:\DOS\COUNTRY.SYS
DEVICEHIGH /L:1,15872 =C:\DOS\DISPLAY.SYS CON=(EGA,,1)

 Fichero Autoexec.bat.

LH /L:0;1,45968 /S C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
LH /L:1,17312 KEYB SP,,C:\DOS\KEYBOARD.SYS
LH /L:2,6544 DOSKEY

Si visualizamos el contenido de la memoria con el comando Mem /f, el resultado sería el siguiente:

Memoria convencional libre:

82
Segmento Total
-------- -----------------
0058C 80 (0K)
005A2 96 (0K)
005A8 88.992 (87K)
01B62 543.184 (530K)

Total libre: 632.352 (618K)

Memoria superior libre:

Región Mayor libre Total libre Tamaño total


------ -------------- -------------- --------------
1 64.320 (63K) 64.464 (63K) 109.360 (107K)
2 3.936 (4K) 4.032 (4K) 8.176 (8K)

Después de ejecutar el programa Memmaker, se crea el archivo Memmaker.sts. El contenido sería el


siguiente:

[MemmakerData]
State= DONE 27536
AvailConvMemoryBefore=590640
AvailUpperMemoryBefore=0
UsedUpperMemoryBefore=0
WindowsUpperMemoryBefore=0
EMSUpperMemoryBefore=0
AltSysFiles=Falso
WindowsXlat=Falso
CustomMode=Falso
AutoexecBatCheckSum=15001
ConfigSysCheckSum=16198
SystemIniCheckSum=0
WindowsLocation=

[SizeData]

Command=C:\DOS\SETVER.EXE
Line=8
FinalSize=528
MaxSize=12192
FinalUpperSizes=0
MaxUpperSizes=0
ProgramType=DEVICE

Command=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
Line=11
FinalSize=8352
MaxSize=15872
FinalUpperSizes=0
MaxUpperSizes=0
ProgramType=DEVICE

Command=C:\DOS\SMARTDRV.EXE /X
Line=0
FinalSize=0
MaxSize=45408
FinalUpperSizes=29104
MaxUpperSizes=45968
ProgramType=PROGRAM

83
Command=KEYB SP,,C:\DOS\KEYBOARD.SYS
Line=7
FinalSize=6944
MaxSize=17312
FinalUpperSizes=0
MaxUpperSizes=0
ProgramType=PROGRAM

Command=DOSKEY
Line=8
FinalSize=4144
MaxSize=6544
FinalUpperSizes=0
MaxUpperSizes=0
ProgramType=PROGRAM

 Cargar el DOS en memoria alta.

Para cargar el núcleo del DOS (IO.SYS y MSDOS.SYS) en memoria alta, primero hay que crear el
HMA, operación que se realiza cargando en memoria el controlador HIMEM.SYS mediante la orden
DEVICE del fichero CONFIG.SYS. Aunque HIMEM.SYS acepta varios parámetros, en la mayoría
de las ocasiones no es necesario utilizar ninguno.

Posteriormente hay que utilizar la orden DOS=HIGH en el fichero CONFIG.SYS, que es la que
realmente instala el núcleo del DOS en memoria alta. Además del núcleo del DOS, los buffers
creados por el usuario mediante la orden BUFFERS, también se cargan en memoria alta. El número
máximo de buffers que se pueden cargar en memoria alta es de 49, o 29 si también está instalado el
controlador DISPLAY.SYS. Si se sobrepasan éstos límites, los buffers se instalan en memoria
convencional.

 Convertir memoria extendida en expandida.

Existen dos formas de convertir memoria extendida en memoria expandida:

 Método estático.

El método estático toma memoria extendida y la convierte en memoria expandida, que


permanece siempre como tal hasta que se apaga el ordenador.

 Método dinámico.

El método dinámico crea una memoria que se puede utilizar como memoria extendida o como
memoria expandida, según las necesidades del programa.

En un determinado sistema pueden existir simultáneamente memoria expandida estática y dinámica.

Para convertir memoria extendida en memoria expandida, se carga el controlador EMM386.EXE sin
nigún parámetro, creando 256Kb de memoria expandida con el método estático y configurando toda
la memoria libre por encima de 1024Kb como memoria expandida dinámica. Consultar la ayuda para
ver la sintaxis completa. Lo más aconsejable es utilizar la configuración por defecto o una
configuración que utiliza toda la memoria libre como memoria expandida dinámica. Para ello hay
que incluir en el fichero CONFIG.SYS la orden DEVICE=C:\DOS\EMM386.EXE MIN=0. El
parámetro MIN=0 indica el tamaño de memoria expandida que se crea con el método estático.

Si un programa permite utilizar memoria extendida y memoria expandida, es preferible configurarlo


para que use memoria extendida, porque la memoria extendida XMS es más rápida que la memoria
expandida y porque dispondremos de 64Kb más de memoria superior que se emplean para crear el
marco de página.

84
 Cargar programas en memoria superior.

El DOS permite cargar controladores de dispositivos y programas residentes en bloques de memoria


superior.

Para usar los bloques de memoria superior, hay que seguir los siguientes pasos:

1. Instalar el controlador HIMEM.SYS, pues se necesitan 384Kb de memoria extendida XMS.

2. Instalar el controlador EMM386.EXE, que se encarga de crear los bloques de memoria superior.
Para que EMM386.EXE pueda crear los bloques de memoria superior, hay que utilizar los
parámetros RAM o NOEMS. El parámetro RAM crea los bloques de memoria superior y
convierte la memoria extendida en expandida. El parámetro NOEMS, sólo crea los bloques de
memoria superior.

3. Activar la orden DOS=UMB en el fichero CONFIG.SYS. Esta orden reserva los bloques de
memoria superior para uso del DOS. Si no se especifica ésta orden, los bloques de memoria
superior sólo podrán ser utilizados por los programas que usan servicios especiales de la
especificación XMS. Si se quiere cargar el núcleo del DOS en memoria alta se puede utilizar la
orden DOS=HIGH,UMB o dos líneas con las órdenes DOS=HIGH y DOS=UMB.

4. Cargar controladores de dispositivo en UMB. Para realizar ésta operación hay que utilizar la
orden DEVICEHIGH. Esta orden intenta cargar el controlador especificado en memoria superior
y, si no puede, lo instala en memoria convencional. Todos los controladores de dispositivo del
DOS se pueden cargar en memoria superior, excepto HIMEM.SYS y EMM386.EXE, porque son
los que crean la memoria superior y los UMB.

5. Cargar programas residentes en UMB. Para ello hay que ejecutar la orden LH (LOADHIGH) en
el fichero AUTOEXEC.BAT. Esta orden se encarga de instalar en memoria superior el programa
cuyo nombre, sin extensión, se incluya como parámetro. Los programas residentes que el DOS
puede cargar en memoria superior son: APPEND, DOSKEY, GRAPHICS, KEYB, MODE,
MOUSE, NLSFUNC, PRINT, SHARE, SMARTDRV y VSAFE.

 Optimizar la carga en memoria superior.

Los programas residentes o controladores de dispositivo se pueden cargar en una zona determinada
de la memoria superior. Para ello hay que utilizar las órdenes LH de AUTOEXEC.BAT y
DEVICEHIGH de CONFIG.SYS con la opción /L.

Al utilizar la orden MEM con la opción /F, se visualizan los bloques de memoria libres y, entre otra
información, la región donde están situados dichos bloques y su tamaño. Esta información es
necesaria para cargar los programas residentes y los controladores de dispositivo en una zona
determinada.

Los parámetros de la orden LH para realizar ésta operación son:

LH [/L:región[,tamaño_mínimo];...] programa

Los parámetros de la orden DEVICEHIGH para realizar ésta operación son:

DEVICEHIGH [/L:región[,tamaño_mínimo];...] =controlador

 programa y controlador.

Son el nombre del programa residente o del controlador de dispositivo, respectivamente, que se
quiere cargar.

 región.

85
Es el número de la región de memoria superior donde se desea cargar el programa residente o el
controlador. Cuando se especifica una sóla región, sólo se podrán cargar en ésa región. Si no se
puede, se carga en memoria convencional. Se pueden definir varias regiones, separadas por el
carácter “;”.

 tamaño_mínimo.

Indica la cantidad en bytes que ha de tener el bloque libre más grande de la región especificada
para que se pueda cargar el programa o el controlador en dicha región.

Ejemplos.

 LH /L:1,6544 DOSKEY

Intenta cargar el programa residente DOSKEY en la región 1 de memoria superior, siempre que
en dicha región exista un bloque libre de, al menos, 6544 bytes.

 DEVICEHIGH /L:1;2 = C:\DOS\ANSI.SYS

Intenta cargar el controlador ANSI.SYS en las regiones 1 y 2 de memoria superior, siempre que
exista espacio libre. Se podría haber introducido el tamaño mínimo en cualquiera de las dos
regiones o en las dos.

Fichero Config.sys

Cada vez que se enciende el ordenador y se carga el DOS, primero se buscan los ficheros de sistema y el
procesador de órdenes COMMAND.COM, luego se busca en el directorio raíz el fichero CONFIG.SYS
y, por último, se busca en el directorio raíz el fichero AUTOEXEC.BAT.

El fichero CONFIG.SYS es un fichero de texto, utilizado en el proceso de inicialización, que sirve para
configurar el sistema. Está formado por un grupo de órdenes que, en su gran mayoría, sólo se pueden
ejecutar desde éste fichero. Estas órdenes definen ciertos parámetros claves de la configuración del
sistema, tales como el número de ficheros que se pueden abrir, el formato de fecha y hora, etc.

El valor por defecto de una orden es el valor que asume el sistema si no existe el fichero CONFIG.SYS o
si existe y no se ha dado ningún valor a dicha orden.

El fichero CONFIG.SYS sólo se lee una vez, cuando el sistema se inicializa. Si se realiza algún cambio,
sólo se tendrá en cuenta cuando se vuelva a encender o inicializar el sistema.

Si después de escribir el nombre de una orden y antes del signo “=” introducimos el carácter “?”, el
sistema pregunta al usuario si desea o no cargar dicha orden.

 Orden BUFFERS.

Un buffer es una zona de memoria que se utiliza para almacenar datos temporalmente. La orden
BUFFERS define el número de buffers de disco que se crean en el sistema. Los buffers de disco se
engloban bajo el término genérico cachés de disco. Un buffer de disco es una zona de memoria que
almacena los últimos datos que se leen o escriben en un disco. De ésta forma, cuando se necesitan
volver a leer los mismos datos sólo hay que leer la memoria (el contenido del buffer), y no otra vez el
disco. Cada buffer de disco puede almacenar el contenido de un sector. El DOS lleva una lista que
indica el buffer con el sector menos utilizado. Cada vez que se lee o escribe un nuevo sector que no
estaba almacenado en los buffers, desaparece de los buffers el sector menos utilizado y su contenido
se reemplaza con el nuevo sector.

Los programas denominados genéricamente cachés de disco, funcionan de la forma descrita


anteriormente. Utilizan parte de la memoria para almacenar los datos que se leen o escriben en el
disco para evitar en lo posible los accesos a disco y acelerar el rendimiento del ordenador. En las
operaciones de escritura, el buffer se almacena en el disco cuando está lleno, por eso es tan

86
importante terminar la ejecución de los programas antes de apagar el ordenador, sobre todo cuando
estamos trabajando con bases de datos. Cuando se termina la ejecución de un programa, se envía una
orden al DOS para que copie al disco el contenido de todos los buffers, de forma que se almacenen
los cambios realizados.

La sintaxis de la orden BUFFERS es la siguiente:

BUFFERS=número_buffers [,buffers_lectura_anticipada]

 número_buffers.

Indica el número de buffers de disco que se quieren crear en el sistema. El rango de valores es de
1 a 99. Su valor por defecto es 15.

 buffers_lectura_anticipada.

Especifica el número de buffers (rango de 1 a 8) que se rellenan a la vez cuando se solicita una
operación de entrada o salida. Si se lee el sector 39 y el número de buffers de lectura anticipada
es 4, el DOS almacena en los buffers los sectores 39, 40, 41 y 42. De ésta forma, si se pide
acceso a los sectores 40, 41 y 42 no hay que acceder al disco, sólo a los buffers de memoria,
lográndose un aumento significativo de la velocidad y el rendimiento global.

 Orden COUNTRY.

Se utiliza para definir características específicas a un país. Estas características son las siguientes:

 El formato de la fecha y de la hora. En España se utiliza el formato día/mes/año. En


Estados Unidos mes/día/año. En Japón año/mes/día.

 Los caracteres que se utilizan para separar los millares y los decimales. En España
utilizamos el punto como carácter separador de los millares y la coma para separar los
decimales. En Estados Unidos es al contrario.

 El carácter que se utiliza como símbolo de moneda y su posición. En España se utilizan


los caracteres Pt situados al final del número como símbolos de moneda. En Estados Unidos se
utiliza el carácter $ delante del número.

 El orden en que se interpretan los caracteres en las operaciones de ordenación. Si se


define para Estados Unidos, las vocales acentuadas y la letra “ñ” o “Ñ” se ordenan detrás de la
“z”. Si se define para España, las vocales acentuadas van detrás de las mismas vocales sin
acentuar y las letras “ñ” y “Ñ” en su lugar de nuestro alfabeto.

La sintaxis de la orden COUNTRY es la siguiente:

COUNTRY=código_país[,[página_códigos],C:\DOS\COUNTRY.SYS]

 código_país.

Representa el código numérico que identifica al país. Es el mismo número que sirve como
código telefónico internacional. En España se ha de utilizar el código 34, pero también se puede
usar el código 3 si deseamos visualizar las horas con el formato 5:30p en lugar de 17:30.

 página_códigos.

Es la página de códigos para la cual se quiere inicializar el código del país. Las páginas de
códigos que soporta el código de país 34 son la 437 y la 850. Si se especifica el código de país
34 y se omite éste parámetro, se asume por defecto la página de códigos 850.

 COUNTRY.SYS.

87
Es la trayectoria del fichero que almacena la información de cada país, normalmente
C:\DOS\COUNTRY.SYS.

Para separar los tres parámetros se utiliza el carácter “,”. Si no se especifica el parámetro página de
códigos, hay que escribir una coma para que el DOS sepa que no existe dicho parámetro. Se
escribiría de la siguiente forma: COUNTRY=34,,C:\DOS\COUNTRY.SYS.

Si se omite el fichero COUNTRY.SYS, el DOS asume que dicho fichero se encuentra en el


directorio raíz. Si no lo encuentra en dicho directorio, se genera un mensaje de error y carga los
valores por defecto de la orden COUNTRY.

Si no se especifica la orden COUNTRY, el DOS asume por defecto el código de país 1, que
corresponde a Estados Unidos, la página de códigos 437, que también corresponde a Estados Unidos,
y el fichero COUNTRY.SYS situado en el directorio raíz.

 Orden DEVICE.

El DOS utiliza dos tipos de controladores de dispositivo:

 Residentes.

Gestionan los dispositivos que soporta directamente el DOS. Estos dispositivos son: CON, NUL,
COM 1-4, LPT1-3, y CLOCK$. Los controladores de dispositivo residentes están almacenados
en los ficheros IO.SYS y MSDOS.SYS y, por lo tanto, se cargan en memoria cuando el
ordenador se enciende o se reinicializa.

 Instalables.

Se utilizan para crear una vía de comunicación entre el DOS y los dispositivos no soportados
directamente por el sistema (scánner, unidad de Cd-Rom, etc.).

La orden DEVICE sirve para cargar en memoria controladores de dispositivo instalables.

La sintaxis es:

DEVICE=fichero_controlador [parámetros_controlador]

En el parámetro fichero_controlador hay que incluir la trayectoria y la extensión del controlador de


dispositivo que se quiere cargar.

Hay que incluir tantas órdenes DEVICE como controladores de dispositivo queramos cargar.

Los controladores de dispositivo instalables son los siguientes:

 ANSI.SYS.

Gestiona la salida por pantalla y la entrada por teclado.

La sintaxis es:

DEVICE=C:\DOS\ANSI.SYS

Ver la ayuda para la sintaxis completa.

 DBLSPACE.SYS.

Su única misión es definir la posición final en memoria que tendrá el fichero DBLSPACE.BIN.

 DISPLAY.SYS.

88
Proporciona al monitor la capacidad de cambiar la página de códigos activa y, por lo tanto,
visualizar caracteres de varias páginas de códigos distintas.

La sintaxis es:

DEVICE=C:\DOS\DISPLAY.SYS CON=([tipo],[,página][(,num_páginas,fuentes)])

 tipo.

Indica el tipo de tarjeta gráfica utilizada. El único valor que acepta es EGA, que soporta
todas las tarjetas.

 página.

Es la página de códigos hardware soportada por la tarjeta gráfica. Los valores permitidos
son: 437 (Estados Unidos), 850 (multilingüe), 852 (lenguas eslavas), 860 (Portugal), 863
(Canadá-francés) y 865 (Nórdico). Normalmente se utiliza el valor 437.

 num_páginas.

Indica el número de páginas de código preparadas que pueden ser soportadas. El rango es de
0 a 12 y el valor por defecto es 1.

 fuentes.

Indica el número de tipos de letra soportados por cada página de códigos.

 DRIVER.SYS.

Permite que una unidad física de disquetes sea referenciada mediante una nueva unidad lógica
cuyos parámetros pueden coincidir o no con los parámetros reales de la unidad física. Consultar
la ayuda para la sintaxis (éste controlador prácticamente no se utiliza).

 EGA.SYS.

Se utiliza para grabar y restaurar la pantalla en los sistemas EGA cuando se conmutan programas
en el SHELL del DOS. Sólo se utiliza cuando el sistema de vídeo es EGA. Si se trabaja con el
ratón, hay que instalar el controlador EGA.SYS antes que el controlador del ratón.

La sintaxis es:

DEVICE=C:\DOS\EGA.SYS

 EMM386.EXE.

Se utiliza para crear bloques de memoria superior y transformar la memoria extendida XMS en
memoria expandida EMS. Sólo funciona en ordenadores 386 y superiores.

La sintaxis, cuando se utiliza como orden externa, ejecutándose desde la línea de comandos, es:

EMM386 [{ON, OFF, AUTO}] [W={ON,OFF}]

Si se omiten los parámetros, se visualiza en pantalla el estado del controlador, información


diversa sobre la memoria expandida e información sobre la memoria superior.

 ON, OFF y AUTO.

89
Son los tres estados en que se puede encontrar el controlador EMM386 una vez instalado.
Cuando está en ON, se soporta la memoria expandida y se crean los bloques de memoria
superior. Es el valor por defecto. Cuando está en OFF, no se soportan éstas funciones.
Cuando está en el modo automático (AUTO), se activa el soporte de memoria expandida
sólo cuando un programa requiere explícitamente memoria expandida. El estado OFF no se
puede activar cuando se ha incluido la orden DOS=UMB en el fichero CONFIG.SYS. Estos
parámetros no se ignoran si se activan desde el fichero CONFIG.SYS.

 W=ON, OFF.

Activa o desactiva el coprocesador matemático Weitek.

La sintaxis, cuando se utiliza como controlador de dispositivo, ejecutándose desde el fichero


CONFIG.SYS, es:

DEVICE=C:\DOS\EMM386.EXE [{RAM,NOMES}]

Ver la ayuda para sintaxis completa y el apartado Gestión de la memoria para una explicación
detallada de los parámetros más utilizados.

 HIMEM.SYS.

Se utiliza para crear la memoria alta (HMA) y la memoria extendida XMS. Se necesita para
cargar el DOS en memoria alta o cargar los controladores de dispositivos y los programas
residentes en memoria superior. Es imprescindible para ejecutar Windows 3.0 o superior.

En la mayoría de las ocasiones utilizaremos el controlador HIMEM.SYS sin parámetros, con la


siguiente sintaxis:

DEVICE=C:\DOS\HIMEM.SYS

 INTERLNK.EXE.

Permite compartir ficheros e impresoras entre dos ordenadores conectados mediante un cable
paralelo o serie. Para funcionar correctamente es necesario utilizar también la orden INTERSVR.

La sintaxis es:

DEVICE=C:\DOS\INTERLNK.EXE

Consultar la ayuda para la sintaxis completa.

 POWER.EXE.

Se utiliza para reducir el consumo de energía en los ordenadores portátiles. Se puede utilizar
como orden externa o como orden del fichero CONFIG.SYS.

La sintaxis es:

DEVICE=C:\DOS\POWER.EXE

Consultar la ayuda para la sintaxis completa.

 RAMDRIVE.SYS.

Se utiliza para crear discos virtuales en la memoria convencional, expandida o extendida.

La sintaxis es:

DEVICE=C:\DOS\RAMDRIVE.SYS [tamaño [sector [entradas]]] [{/A,/E}]

90
Consultar el apartado Operaciones con la memoria para ver la explicación detallada de la
sintaxis.

 SETVER.EXE.

Se utiliza para definir el número de versión del DOS que se indica a cada programa. Se puede
utilizar como orden externa o como orden del fichero CONFIG.SYS.

La sintaxis es:

DEVICE=C:\DOS\SETVER.EXE

Consultar la ayuda para la sintaxis completa.

Si se ejecuta la orden SETVER sin parámetros en la línea de comandos, visualiza en pantalla la


lista activa de los programas y sus versiones asociadas.

 SMARTDRV.EXE.

Se utiliza para crear un caché de disco duro en memoria.

La sintaxis es:

DEVICE=C:\DOS\SMARTDRIVE.EXE /DOUBLE_BUFFER

Ver el apartado operaciones con la memoria para una explicación detallada de la sintaxis.

 Orden DEVICEHIGH.

Al igual que la orden DEVICE, permite cargar en memoria las rutinas de los controladores de
dispositivo, con la diferencia de que DEVICEHIGH los carga en memoria superior. Si no hay
memoria superior libre, loa carga en memoria convencional.

 Orden DOS.

Carga el núcleo del DOS (IO.SYS y MSDOS.SYS) en la memoria alta o HMA y activa el área de
memoria superior para que se puedan almacenar controladores de dispositivo y programas residentes.

Consultar el apartado Gestión de la memoria para una explicación detallada del funcionamiento de la
orden DOS.

 Orden FILES.

Define el número máximo de ficheros que el sistema puede tener abiertos simultáneamente.

La sintaxis es:

FILES=número

El rango de número es de 8 a 255. El valor por defecto es 8. Conviene introducir un valor igual o
superior a 25.

 Orden LASTDRIVE.

Establece el número máximo de unidades lógicas que el DOS puede reconocer.

La sintaxis es:

LASTDRIVE=letra

91
El parámetro letra indica la unidad hasta la que el DOS puede reconocer. Por defecto se asume la
letra E.

 Orden REM.

Se utiliza para introducir comentarios en el fichero. La orden REM se puede sustituir por el carácter
“;”.

 Orden SET.

Se utiliza para crear variables de entorno. Las variables de entorno las veremos más adelante.

La sintaxis es:

SET nombre_variable=valor_variable.

 Orden SHELL.

Sirve para indicar el procesador de órdenes que gestionará el sistema. En la mayoría de los casos el
procesador de órdenes es COMMAND.COM, pero podría ser otro.

Una utilidad muy importante de ésta orden es para ejecutar un fichero por lotes, al arrancar el
ordenador, distinto a AUTOEXEC.BAT. Para ello hay que utilizar la siguiente sintaxis:

SHELL = COMMAND.COM /K nombre_fichero

Consultar la ayuda para ver la sintaxis de las ordenes SHELL y COMMAND.

 Orden SWITCHES.

Es una orden comodín, que se utiliza para diversas opciones que se han de ejecutar desde
CONFIG.SYS.

La sintaxis es:

SWITCHES=[/K][/W][/N][/F]

Los parámetros más importantes son:

 /N.

Desactiva las teclas F5 y F8, que permiten modificar el proceso de inicialización. Cuando el
sistema se está inicializando, visualiza el mensaje Iniciando MS-DOS..., realizando una parada
de dos segundos, durante los cuales se pueden pulsar las teclas F5 o F8. Si se pulsa la tecla F5,
no se ejecutan los ficheros CONFIG.SYS y AUTOEXEC.BAT, cargándose las opciones por
defecto. Si se pulsa la tecla F8, el sistema pregunta, una a una, si se quieren ejecutar las órdenes
de los ficheros CONFIG.SYS y AUTOEXEC.BAT.

 /F.

Anula la pausa de dos segundos que realiza el ordenador durante el arranque del sistema para
permitir al usuario pulsar las teclas F5 o F8.

 Configuraciones de arranque múltiples.

92
Durante el proceso de arranque del ordenador, existe la posibilidad de inicializar el sistema con
distintas configuraciones, dependiendo de la opción que el usuario elija mediante un menú de
opciones. Este proceso se realiza desde el fichero CONFIG.SYS.

Para crear las configuraciones de arranque, hay que definir los bloques de configuración. Existen dos
tipos de bloques de configuración:

 Bloques de menú.

Se utilizan para crear menús. Contienen las órdenes de CONFIG.SYS que permiten crear el
menú de opciones que le aparece al usuario durante el proceso de inicialización. Estas órdenes
son: MENUITEM, MENUDEFAULT, MENUCOLOR, SUBMENU y NUMLOCK. En un
sistema que utilice las configuraciones múltiples, tiene que haber, al menos, un bloque de menú,
que será el bloque del menú principal, identificado por la cabecera [MENU]. La presencia de
otros bloques de menú depende de que el usuario quiera o no crear submenús del menú principal.
Por cada submenú tiene que existir un bloque de menú.

 Bloques de órdenes.

Contienen las órdenes que se ejecutarán al elegir cada una de las opciones de un menú. Se puede
incluir cualquier orden del fichero CONFIG.SYS excepto las órdenes de los bloques de menú.

Existen dos bloques con nombres predefinidos. Estos bloques son:

 Bloque [MENU].

Se utiliza para identificar el menú principal, que es el menú que se muestra en pantalla al
encender el ordenador. Siempre que se utilicen las configuraciones de arranque múltiples, en el
fichero CONFIG.SYS tiene que aparecer un bloque [MENU]. No puede existir más de un bloque
[MENU]. Sólo podrá contener las órdenes que se pueden incluir en los bloques de menú.

 Bloque [COMMON].

Es un bloque de órdenes cuya misión es almacenar las órdenes comunes a todas las
configuraciones, que siempre se ejecutarán, independientemente de la opción del menú elegida
por el usuario. Pueden existir varios bloques [COMMON] en el fichero CONFIG.SYS.

Es conveniente crear, al final del fichero CONFIG.SYS, un bloque [COMMON] vacío para que
los programas de instalación que añaden órdenes en CONFIG.SYS sitúen en él sus órdenes. Si
no existe éste bloque [COMMON] vacío, los programas de instalación añaden las órdenes
nuevas en el bloque de menú situado en último lugar y sólo se ejecutarán al activar éste último
bloque.

Las órdenes de los bloques de menú son:

 Orden MENUITEM.

Se utiliza para crear opciones dentro de un menú. Hay que utilizar una orden MENUITEM por
cada opción de menú que se quiere incluir.

La sintaxis es:

MENUITEM = bloque_órdenes [,título]

 bloque_órdenes.

Es el nombre del bloque de órdenes que se ejecuta cuando se elige la opción.

 título.

93
Es una cadena de hasta 70 caracteres que aparecerá en pantalla como título de la opción. Si
se omite, se asume como título el nombre utilizado en bloque_órdenes. El sistema añade
automáticamente, al principio del título, un número, un punto y un espacio en blanco.

Ejemplo.

Copiar el fichero CONFIG.SYS como CONFIG.BAK. Modificar el fichero CONFIG.SYS de


cada ordenador de la siguiente forma: Incluir un bloque [MENU] con una opción por cada
alumno. El nombre del alumno será el nombre del bloque de órdenes. El resto del fichero
CONFIG.SYS se incluirá en un bloque [COMMON]. En el bloque de órdenes de cada opción del
menú se incluirá una orden FILES con un valor diferente. Al final del fichero CONFIG.SYS se
incluirá un bloque [COMMON] vacío. Reinicializar el ordenador. Para seleccionar una opción
hay que moverse por el menú con las flechas o pulsando el número que aparece delante de cada
opción del menú. Vemos que en la última línea de la pantalla aparece un mensaje para utilizar las
teclas F5 y F8. Si no queremos que éste mensaje aparezca, hay que incluir en el primer bloque
[COMMON] la orden SWITCHES=/N. Volver a reinicializar el ordenador.

 Orden MENUDEFAULT.

Se utiliza para definir la opción por defecto que asume el sistema cuando aparece el menú.

La sintaxis es:

MENUDEFAULT = bloque_órdenes[,segundos]

 bloque_órdenes.

Es el bloque de órdenes, creado con la orden MENUITEM, que se ejecutará al activar la


opción por defecto.

 segundos.

Indica la cantidad de tiempo que el sistema espera antes de asumir la opción por defecto. El
rango de valores es de 0 a 90. Si se introduce el valor 0, el sistema activa inmediatamente la
opción por defecto, sin visualizar el menú. Si se omite éste parámetro, el sistema espera
indefinidamente hasta que el usuario elige una opción.

Ejemplo.

Establecer una opción por defecto en el ejemplo anterior. Reiniciar el ordenador varias veces
para observar el funcionamiento de ésta orden si se deja transcurrir el tiempo especificado o nos
movemos por el menú para seleccionar otra opción.

 Orden MENUCOLOR.

Se utiliza para definir el color de las letras de texto y el color de fondo de la pantalla de un menú.

La sintaxis es:

MENUCOLOR = color_texto[,color_fondo]

Los valores que se pueden utilizar en ambos parámetros son:

0 – Negro 1 – Azul 2 – Verde 3 – Cián

4 – Rojo 5 – Magenta 6 – Marrón 7 – Blanco

8 – Gris 9 – Azul Brillo 10 – Verde Brillo 11 – Cián Brillo

12 – Rojo Brillo 13 – Magenta Brillo 14 – Amarillo 15 – Blanco brill.

94
Ejemplo.

Incluir colores en el menú de los ejemplos anteriores.

 Orden NUMLOCK.

Permite activar y desactivar la tecla BloqNum del teclado numérico. Si BloqNum está activado,
el teclado numérico genera números, y si está desactivado, genera movimientos del cursor.
Cuando no se utilizan las configuraciones de arranque múltiples, ésta orden también se puede
incluir en el fichero CONFIG.SYS.

La sintaxis es:

NUMLOCK = {ON,OFF}

Por defecto, NUMLOCK se encuentra en ON.

 Orden SUBMENU.

En algunas ocasiones, puede ser necesario que, al elegir una opción de un menú, se presente un
nuevo menú para poder elegir otra opción. Para crear los submenús se utiliza la orden
SUBMENU.

La sintaxis es:

SUBMENU = bloque_menú[,título]

 bloque_menú.

Es el nombre del bloque de menú cuyas órdenes se quieren ejecutar cuando se elige una
opción.

 título.

Es una cadena de hasta 70 caracteres que aparecerá en pantalla como título de la opción. Si
se omite, se asume como título el nombre utilizado en bloque_órdenes. El sistema añade
automáticamente, al principio del título, un número, un punto y un espacio en blanco.

En los bloques de órdenes, además de incluir cualquier orden del fichero CONFIG.SYS, se puede
utilizar la siguiente:

 Orden INCLUDE.

Sirve para incluir dentro de un bloque de órdenes las órdenes pertenecientes a otro bloque de
órdenes.

La sintaxis es:

INCLUDE = bloque_órdenes

 bloque de órdenes.

Especifica el nombre del bloque de órdenes cuyas órdenes se quieren incluir.

Ejemplo.

Supongamos que queremos crear un menú con dos opciones: una configuración que crea la
memoria alta (HMA) y otra que crea la memoria alta (HMA) y la memoria superior (UMB). Para
ello podríamos crear el siguiente fichero CONFIG.SYS:

95
[MENU]
MENUITEM = Alta, Crear memoria alta (HMA)
MENUITEM = AltaSuperior, Crear memoria alta (HMA) y superior (UMB)

[Alta]
FILES = 25
BUFFERS = 30
DEVICE = C:\DOS\HIMEM.SYS
DOS = HIGH

[AltaSuperior]
INCLUDE = Alta
DEVICE = C:\DOS\EMM386.EXE NOEMS
DOS = UMB

 Configuraciones múltiples en AUTOEXEC.BAT.

Cada vez que el usuario arranca el ordenador eligiendo una opción de un menú de configuraciones,
se crea en el entorno una variable CONFIG, cuyo valor es el nombre del bloque de órdenes que se
activa con la opción escogida, es decir, el parámetro bloque_órdenes de la orden MENUITEM. El
valor de ésta variable se puede utilizar en el fichero AUTOEXEC.BAT en combinación con la orden
GOTO. Para ello hay que utilizar la sintaxis GOTO %CONFIG%. De ésta forma, la ejecución del
fichero se desvía a una etiqueta que contiene las órdenes específicas que se desean cargar en una
configuración.

Ejemplos.

 Configuración múltiple para arrancar el ordenador en cuatro idiomas distintos.

Ordenes del fichero CONFIG.SYS:

[MENU]
MENUITEM=ESPAÑOL, Cargar DOS en español
SUBMENU=OTROS, Cargar DOS en otros idiomas
MENUDEFAULT=ESPAÑOL,30
MENUCOLOR=7,1

[COMMON]
FILES=30
BUFFERS=20
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DOS=HIGH,UMB
SWITCHES=/N

[ESPAÑOL]
COUNTRY=34,437,C:\DOS\COUNTRY.SYS

[OTROS]
MENUITEM=AMERICANO, Cargar DOS en americano
MENUITEM=FRANCES, Cargar DOS en francés
MENUITEM=ALEMAN, Cargar DOS en alemán

[AMERICANO]
COUNTRY=1,,C:\DOS\COUNTRY.SYS

[FRANCES]

96
COUNTRY=33,437,C:\DOS\COUNTRY.SYS

[ALEMAN]
COUNTRY=49,437,C:\DOS\COUNTRY.SYS

[COMMON]

Ordenes del fichero AUTOEXEC.BAT:

@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
LH /L:1 C:\DOS\SMARTDRV.EXE
LH /L:1 DOSKEY
GOTO %CONFIG%

:ESPAÑOL
LH /L:1;2 KEYB SP,437,C:\DOS\KEYBOARD.SYS
GOTO :FIN

:AMERICANO
LH /L:1;2 KEYB US,,C:\DOS\KEYBOARD.SYS
GOTO :FIN

:FRANCES
LH /L:1;2 KEYB FR,437,C:\DOS\KEYBOARD.SYS
GOTO :FIN

:ALEMAN
LH /L:1;2 KEYB GR,437,C:\DOS\KEYBOARD.SYS

:FIN
PAUSE
CLS

 Configuración múltiple para arrancar el ordenador en cuatro sistemas operativos


distintos:

Ordenes del fichero CONFIG.SYS:

[MENU]
MENUITEM=MSDOS,Ms-Dos
MENUITEM=ESTACION,Estación Dos
MENUITEM=WINDOWS,Windows
MENUITEM=NOVELL,Novell
MENUCOLOR=7,1
MENUDEFAULT=MSDOS,10

[COMMON]
COUNTRY=34,437,C:\DOS\COUNTRY.SYS
FILES=40
STACKS=9,256
SWITCHES=/N

97
[MSDOS]
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB

[WINDOWS]
INCLUDE=MSDOS
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS
LASTDRIVE=Z

[NOVELL]
INCLUDE=WINDOWS

[ESTACION]
INCLUDE=WINDOWS

[COMMON]

Ordenes del fichero AUTOEXEC.BAT:

@ECHO OFF
PROMPT $P$G
PATH C:\DOS
SET TEMP=C:\DOS
LH KEYB SP,437,C:\DOS\KEYBOARD.SYS
LH C:\DOS\SMARTDRV.EXE /X
LH DOSKEY
GOTO %CONFIG%

:NOVELL
PATH C:\NWCLIENT\;C:\WINDOWS;%PATH%
CALL C:\NWCLIENT\STARTNET.BAT
GOTO :FIN

:WINDOWS
PATH C:\WINDOWS;C:\NWCLIENT\;%PATH%
C:\WINDOWS\NET START
WIN
GOTO :FIN

:ESTACION
PATH C:\WINDOWS;%PATH%
NET
REM Continúa en la etiqueta MSDOS para cargar los drivers del ratón

:MSDOS
SET PATH=C:\TRMOUSE;%PATH%
LH C:\TRMOUSE\TRMOUSE.COM
CLS

:FIN

Variables de entorno.

Todas las variables que utiliza el DOS son alfanuméricas y se llaman variables de entorno. El entorno es
una zona de memoria RAM que el DOS reserva para almacenar el nombre de las variables y sus valores
correspondientes. Todos los programas pueden acceder directamente al entorno y recoger valores de las

98
variables. El entorno lo crea la orden COMMAND.COM. Para saber la dirección de memoria donde se
almacena físicamente el entorno, hay que ejecutar la orden MEM /M COMMAND.

Para gestionar las variables de entorno se utiliza la orden SET.

La sintaxis es:

SET [nombre=[valor]]

Según la sintaxis, la orden SET se puede ejecutar de tres formas:

 SET nombre = valor.

Sirve para crear en el entorno una variable con un determinado valor o para modificar el valor de una
variable de entorno existente. Esta sintaxis de la orden SET se puede incluir como una orden en el
fichero CONFIG.SYS para crear variables de entorno cuando se inicializa el sistema.

 SET.

Visualiza en pantalla las variables que existen en el entorno y su valor actual.

 SET nombre =.

Se utiliza para borrar el contenido de una variable y eliminarla del entorno.

Las variables de entorno se pueden utilizar en los ficheros por lotes. Para ello, debe incluirse antes y
después del nombre de la variable el carácter “%”. Por ejemplo, para acceder a la variable PATH desde
un fichero por lotes, hay que escribir %PATH%.

Las variables de entrono del DOS son las siguientes:

 Variable COMSPEC.

Indica la trayectoria donde se encuentra el procesador de órdenes COMMAND.COM. El


COMMAND.COM se carga en memoria en dos bloques: una parte residente en memoria
convencional y una parte transitoria en memoria superior, por encima de los 640Kb. Existen muchos
programas, como el EDIT, que durante su ejecución destruyen la parte transitoria de memoria
superior donde se carga el COMMAND.COM. Si asignamos a la variable COMSPEC una trayectoria
en la que no se encuentra el fichero COMMAND.COM, después de ejecutar el programa EDIT nos
dirá que no encuantra el procesador de órdenes.

La variable COMSPEC se crea automáticamente al inicializar el ordenador con el valor


C:\COMMAND.COM.

 Variable PATH.

Almacena el valor de las trayectorias de directorios en los que el DOS buscará los ficheros
ejecutables. Por defecto, asume el valor C:\DOS.

 Variable PROMPT.

Almacena el último valor que se asignó a la orden PROMPT.

 Variable CONFIG.

Contiene el nombre de la opción de menú elegida por el usuario en una inicialización del sistema
utilizando configuraciones múltiples.

 Variable APPEND.

99
Almacena el valor definido en la orden APPEND. Esta variable no se crea automáticamente. Para
crearla hay que ejecutar la orden APPEND con la opción /E. La orden APPEND funciona igual que
la orden PATH, pero la orden APPEND se utiliza para buscar en los directorios especificados los
archivos con cualquier extensión.

 Variable TEMP.

Especifica el directorio donde se almacenan los ficheros temporales. Un fichero temporal es un


archivo que crea un programa durante su ejecución para almacenar datos y que se elimina cuando se
termina la ejecución del programa. Por ejemplo, el filtro MORE crea ficheros temporales para
visualizar el contenido de un fichero en pantalla de forma paginada. Si un fichero tiene 60 líneas, el
filtro MORE crea tres ficheros temporales. Estos ficheros se visualizan y, después de ser mostrados
en pantalla, se borran. Pues bien, éstos ficheros se crean en el directorio especificado en la variable
TEMP. El directorio donde se almacenan los ficheros temporales conviene crearlo en el disco duro o
en un disco RAM, para que las operaciones sean rápidas.

 Variable DIRCMD.

Se utiliza para almacenar parámetros que se van a incluir frecuentemente en la orden DIR. Por
ejemplo, si queremos que, cada vez que ejecutemos la orden DIR, se visualice el listado ordenado por
nombre y de forma paginada, debemos escribir siempre DIR /ON /P. Para evitar escribir siempre los
parámetros se utiliza la variable DIRCMD. De ésta forma, tendríamos que asignar a dicha variable el
siguiente valor: SET DIRCMD = /ON /P. A partir de éste momento, cada vez que ejecutemos la
orden DIR, el listado se visualizará ordenado por nombre y paginado. Si en algún momento no
queremos incluir alguno de éstos parámetros, hay que escribir dicho parámetro precedido por el
carácter “-“. Si no queremos que el listado salga paginado, hay que escribir DIR /-P.

Ejemplos.

 SET COMSPEC = C:\COMMAND.COM

Indica que el procesador de órdenes COMMAND.COM se encuentra en el directorio raíz de la


unidad C.

 SET PATH = C:\DOS;C:\WINDOWS;C:\FICHEROS

Indica que el DOS buscará los ficheros ejecutables en los directorios especificados.

 SET APPEND = C:\CARTAS

Indica que el DOS buscará los ficheros que no sean ejecutables en el directorio C:\CARTAS.

 SET TEMP = C:\TMP

Indica que el directorio C:\TMP se va a utilizar para almacenar los ficheros temporales que
utilizan algunos programas.

100

You might also like