Este documento presenta un curso sobre el sistema operativo MS-DOS. Explica conceptos básicos y avanzados de MS-DOS a través de varios capítulos. Incluye información sobre comandos de MS-DOS, trabajo con archivos y directorios, redireccionamiento de entrada y salida, editores de texto y más. El curso fue originalmente publicado como libro en 1996 pero ahora sólo algunos capítulos están disponibles en línea de forma gratuita.
muestra los comandos de ejecutar y los del simbolo del sistema junto con una imagen en la que se puede observar lo que ocurre al ingresar el comando en la ventana de ejecutar y en el simbolo del sistema.
Mas allá de interfaces gráficas como KFM, Linux dispone de un numeroso conjunto de utilidades para manipular archivos (individualmente o en grupos) tipeando comandos en una terminal. A través de esta modalidad de trabajo es posible alcanzar un alto nivel de flexibilidad y versatilidad para realizar operaciones de cualquier grado de complejidad.
Los comandos utilizados mas frecuentemente se describen brevemente a continuación. Para un mayor nivel de detalle, se sugiere consultar el manual en línea de Linux (ver mas adelante el comando man) y especialmente la documentación del interprete de comandos utilizado (usualmente, el bash).
Este es un pequeño amnual donde podemos ver como funcionan algunos de los mas importantes comandos en el simbolo del sistema de windows, lo que nos facilita muchas operaciones
MongoDB Days UK: No Compromises SQL Connectivity for MongoDBMongoDB
Presented by Brad Wright, Senior Principal Product Manager, Progress Software and Simon Cater, Lead Systems Developer, Killik & Co
Experience level: Beginner
You love MongoDB! We all love MongoDB! But does your third-party SQL application love MongoDB? Well it can with no compromises, standards-based connectivity in the form of DataDirect ODBC and JDBC. Join us to see how easy connecting any SQL application is to MongoDB – from a BI tool to a corporate application. We’ll show you the power of JSON normalization with full support for joins and SQL aggregation pushdown to deliver maximum performance. In addition hear how Killik & Co, a London-based wealth management firm, easily connects MongoDB with their SQL Server-based reporting solution.
Sponsored by Progress Software
e & mobile commerce global market overview 2015Anuj R KHANNA
The presentation shares key statistics about the digital payments , mobile commerce and commerce market for 2015. The presentation offers a high level market overview about the key trends and opportunities in mobile, digital, payments, social media and online retailing.
muestra los comandos de ejecutar y los del simbolo del sistema junto con una imagen en la que se puede observar lo que ocurre al ingresar el comando en la ventana de ejecutar y en el simbolo del sistema.
Mas allá de interfaces gráficas como KFM, Linux dispone de un numeroso conjunto de utilidades para manipular archivos (individualmente o en grupos) tipeando comandos en una terminal. A través de esta modalidad de trabajo es posible alcanzar un alto nivel de flexibilidad y versatilidad para realizar operaciones de cualquier grado de complejidad.
Los comandos utilizados mas frecuentemente se describen brevemente a continuación. Para un mayor nivel de detalle, se sugiere consultar el manual en línea de Linux (ver mas adelante el comando man) y especialmente la documentación del interprete de comandos utilizado (usualmente, el bash).
Este es un pequeño amnual donde podemos ver como funcionan algunos de los mas importantes comandos en el simbolo del sistema de windows, lo que nos facilita muchas operaciones
MongoDB Days UK: No Compromises SQL Connectivity for MongoDBMongoDB
Presented by Brad Wright, Senior Principal Product Manager, Progress Software and Simon Cater, Lead Systems Developer, Killik & Co
Experience level: Beginner
You love MongoDB! We all love MongoDB! But does your third-party SQL application love MongoDB? Well it can with no compromises, standards-based connectivity in the form of DataDirect ODBC and JDBC. Join us to see how easy connecting any SQL application is to MongoDB – from a BI tool to a corporate application. We’ll show you the power of JSON normalization with full support for joins and SQL aggregation pushdown to deliver maximum performance. In addition hear how Killik & Co, a London-based wealth management firm, easily connects MongoDB with their SQL Server-based reporting solution.
Sponsored by Progress Software
e & mobile commerce global market overview 2015Anuj R KHANNA
The presentation shares key statistics about the digital payments , mobile commerce and commerce market for 2015. The presentation offers a high level market overview about the key trends and opportunities in mobile, digital, payments, social media and online retailing.
ESTUDIO DE ADSORCION PARA Cr (VI) UTILIZANDO CHACAY (ULEX EUROPAEUS) COMO C...Pablo Rozas Riquelme
ESTUDIO DE ADSORCION PARA Cr (VI)UTILIZANDO CHACAY (ULEX EUROPAEUS) COMO CARBON ACTIVO CUBIERTO CON QUITOSAN
Los carbones activados son materiales que se caracterizan por una estructura altamente porosa de tipo pseudo-grafítica conformada por capas poliaromáticas dispuestas en forma irregular” (Toles y Col. 1999)
Acceleration in Journalism: A Theoretical Approach to a Complex PhenomenonUwe Krüger
Beschleunigung ist ein oft verwendetes Schlagwort in der Beschreibung aktueller Trends in der Massenkommunikation und im Journalismus. Jedoch wird das Wort meist nicht als analytischer und theoretisch fundierter Begriff verwendet, und es mangelt an Studien, die empirisch Zeitstrukturen im Journalismus erfasst und Beschleunigungsprozesse nachgewiesen haben.
In diesem Vortrag wird versucht, eine theoretische Grundlage für Beschleunigung im Journalismus zu legen, unter Bezug auf die Theorie der sozialen Beschleunigung des Zeitsoziologen Hartmut Rosa. Schließlich werden acht Aspekte im Journalismus identifiziert, in denen sich in den letzten Jahren, Jahrzehnten und Jahrhunderten Geschwindigkeiten erhöht bzw. verändert haben könnten: etwa in der Verkürzung des Zeitraums zwischen Ereignis und Berichterstattung (Aktualitätssteigerung), Verdichtung von Arbeitstagen durch Aufgabenvermehrung, Verkürzung von Schnittfolgen in Nachrichtensendungen und Verdichtung von Sendungen (mehr und kürzere Filmbeiträge im selben Nachrichtenformat), Beschleunigung von Themenumschlag, Verkürzung von Themenkarrieren bzw. -zyklen.
Vorhandene empirische Daten werden präsentiert, und es werden die Vor- und Nachteile von Beschleunigung in diesen Bereichen diskutiert, vor allem die Gefahren für die Qualität von Journalismus und seine Funktionalität für die demokratische Gesellschaft: Wer immer weniger Zeit hat für Recherche und Reflexion, sitzt öfter Falschinformationen auf und kann seinen Rezipienten weniger Substanz bieten. Und wenn Themen und Skandale sich in immer schnellerer Folge abwechseln, bleibt den politischen Akteuren immer weniger Zeit, Probleme zu bearbeiten – denn schon wird „die nächste Sau durchs Dorf getrieben“, die die Aufmerksamkeit bindet.
KÄNN PÅ EN NY KAXIG STOL HOS de Nord
Silenci är stolen som överraskar med materialkombinationen massivträ och gummi!
Ryggen av gummi ger komfort och tillsammans med akustikdämpning under sits motverkas slammer och oljud. Med sin nätta och kaxiga form är den tänkt att passa för såval skolor och kantiner som caféer, barer och restauranger.
Silencifamiljen innehåller förutom stolen även barstol och bord i flera varianter.
Créer, animer et gérer un groupe de musique actuelle (rock, métal, rap, raï) ou de variétés est une activité exigeante qui demande de vraies potentialités créatives, de la passion et un esprit d’équipe. Mais pour tenter l’aventure d’une carrière musicale, dans un milieu qui se professionnalise de plus en plus, il vous faudra ajouter les mots « rigueur » et « méthode » à la liste de vos qualités cardinales.
How to Get Leads to your Business WebsiteRebecca Caroe
Tips for business websites - how to test they work, 12 tips for local marketing actions to improve inbound and outbound marketing.
Presented to Grey Lynn Business Association 10 June 2016
Informe 2011 Medios de Comunicación en Redes Sociales (GAD3) - JUL11Retelur Marketing
Informe realizado por GAD3 en el que se analiza la interacción de los medios de comunicación impresos, digitales y audiovisuales con su audiencia a través de las redes sociales en España. También incluye datos de Reino Unido y México. (Español)
Pesquisa - Empresas de engenharia, consultoria, manutenção e instalação [Revi...atitudeeditorial
Retomada de crescimento
Com promessa de novos investimentos e de retomada da economia brasileira, companhias de engenharia, consultoria, instalação e manutenção projetam crescimento médio de 9,5% para suas empresas e de 3,5% para o mercado como um todo
El nivel de madurez de la gerencia de proyectos de una organización u unidad organizacional, puede ser medido mediante modelos de madurez. Un modelo de madurez, es un conjunto estructurado de buenas prácticas, herramientas , indicadores, criterios de análisis, etc., que permite identificar las capacidades, los procesos y los activos instalados en la gerencia de proyectos de la organización, compararlos con estándares, identificar debilidades y establecer oportunidades de mejoras continua.
Para aplicar los modelos de madurez en gerencia de proyectos en una PMO, es necesario comprender a la unidad en todas sus funciones y procesos y luego calificar y valorar la misma de acuerdo a unos estándares.
Rehabilitation of rectus Femoris Injuries. Experience at Sevilla FC
José Conde And Adolfo Muñoz
8th MuscleTech Network Workshop
Tuesday 4th October, 2016
1. Curso de MS-DOS
Saulo Barajas
Ingeniero en Informática
Este curso explica de forma didáctica los conceptos básicos y avanzados del sistema operativo MS-DOS. El "Curso de
MS-DOS" fue publicado originalmente en 1996 en formato de libro. En esta página sólo están incluidos algunos
capítulos: el resto espero incluirlos en un futuro aunque no tengo fecha prevista (me requiere bastante tiempo de
preparación). El libro no está disponible en librerías; sin embargo, todavía me quedan algunos ejemplares. Si está
interesado en adquirir uno al precio de 22 euros más gastos de envío desde Madrid (España) o tiene sugerencias o
comentarios, puede ponerse en contacto con el autor.
(C) Saulo Barajas. No se permite la reproducción total o parcial sin la autorización previa del autor. Pueden incluirse enlaces hacia esta página
desde otros sitios web sin necesidad de solicitar autorización. Queda prohibida su venta o utilización como texto en centros de formación sin
permiso expreso del autor. Sin embargo, el curso puede ser utilizado libremente para uso personal.
Última revisión del texto: 1995
Publicación libro: 1996 (Barajas, Saulo: Curso de MS-DOS. Editorial Osiris, 1996)
Publicación en Internet: 11 de mayo de 2001
Publicaciones · Saulo.Net
Primera parte: Curso de MS-DOS
Índice
(Están disponibles todos los capítulos de la segunda parte y los capítulos 8, 10-18.
El resto los iré incluyendo a medida que los prepare en HTML)
Primera parte: Curso de MS-DOS Segunda Parte: MS-DOS avanzado
1. Conceptos fundamentales
2. Órdenes del MS-DOS. Trabajo con discos
3. Trabajo con directorios
4. Trabajo con ficheros
5. Operaciones de copia
6. Los atributos
7. El entorno del DOS
8. Redireccionamientos
9. El programa EDIT
10. Ficheros por lotes (I)
11. Ficheros por lotes (II)
12. El programa DOSKEY
13. La memoria
14. Los discos del DOS
15. Defrag, Undelete y Unformat
16. Msbackup
17. Los virus informáticos
18. El fichero CONFIG.SYS
Página 1 de 6Curso de MS-DOS
2. 1. Conceptos fundamentales
1-1 Introducción
1-2 Partes del ordenador
1-3 ¿Qué es software y hardware?
1-4 ¿Qué es un sistema operativo?
1-5 Los discos almacenan información
1-6 ¿Qué son los ficheros?
1-7 ¿Qué es un directorio?
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
EJERCICIOS
2. Órdenes del MS-DOS. Trabajo con discos
2-1 Puesta en marcha del ms-dos
2-2 Las órdenes del ms-dos
2-3 Las unidades de discos
2-4 Adelantándonos a los errores
2-5 Formatear un disquete
2-6 ¿Qué es etiquetar un disco?
2-7 ¿Qué es el número de serie de un disco?
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
3. Trabajo con directorios
3-1 Introducción: Necesidad de directorios
3-2 El directorio por defecto de cada unidad
3-3 CD cambia el directorio por defecto
3-4 TREE muestra árboles de directorios
3-5 MD crea directorios
3-6 RD borra directorios
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
4. Trabajo con ficheros
4-1 Introducción
4-2 Los comodines del dos
4-3 DIR muestra el directorio
4-4 Ver el contenido de los ficheros
4-5 La orden COPY
4-6 DEL borra ficheros
4-7 DELTREE borra árboles de directorios
4-8 REN renombra ficheros
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
5. Operaciones de copia
Página 2 de 6Curso de MS-DOS
3. 5-1 Introducción
5-2 Los dispositivos del dos
5-3 Otras posibilidades de COPY
5-4 Copia de disquetes
5-5 XCOPY copia directorios completos
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
6. Los atributos
6-1 Los atributos
6-2 La orden ATTRIB
6-3 XCOPY y el atributo archivar
6-4 Otras posibilidades de XCOPY
6-5 Ayuda a las órdenes del ms-dos
6-6 La orden DIR
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
7. El entorno del DOS
7-1 El entorno
7-2 La orden SET
7-3 La variable COMSPEC
7-4 La variable PATH
7-5 La variable PROMPT
7-6 La variable DIRCMD
7-7 La variable TEMP
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
8. Redireccionamientos
8-1 Introducción
8-2 Los operadores
8-3 Los filtros del DOS
8-4 Redirección de la entrada. Operador `<'
8-5 Redirección de la salida. Operador `>'
8-6 Redirección de la salida a un fichero existente `>>'
8-7 Redirección de la salida a entrada de otra orden ( | )
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
9. El programa EDIT
9-1 Introducción
9-2 Justificación de Edit
9-3 El ratón
Página 3 de 6Curso de MS-DOS
4. 9-4 Funcionamiento del Editor
9-5 El menú Archivo
9-6 Seleccionar un texto
9-7 Menú Edición
9-8 Menú Búsqueda
9-9 Menús Opciones y Ayuda
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
10. Ficheros por lotes (I)
10-1 Introducción
10-2 Concepto de fichero por lotes
10-3 La orden ECHO
10-4 La orden REM
10-5 Gestión de parámetros
10-6 La orden PAUSE
10-7 La orden GOTO
10-8 La orden IF
10-9 La orden CHOICE
10-10 Las variables del entorno
10-11 Otras órdenes
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS
11. Ficheros por lotes (II)
11-1 Introducción
11-2 El fichero AUTOEXEC.BAT
11-3 Ejemplo primero: BUSCAR.BAT
11-4 Ejemplo segundo: RELOJ.BAT
11-5 Ejemplo tercero: PROGRAMA.BAT
11-6 Ejemplo cuarto: BORRAR.BAT
11-7 Ejemplo quinto: COPIADIR.BAT
12. El programa DOSKEY
12-1 Introducción
12-2 Edición de órdenes sin Doskey
12-3 Edición de órdenes con Doskey
12-4 Creación de macros
CLAVE DE LOS EJERCICIOS DE AUTOCOMPROBACIÓN
PUESTA EN PRÁCTICA
EJERCICIOS (Capítulos 1 al 12)
Segunda parte: MS-DOS avanzado
13. La memoria
13-1 Introducción
Página 4 de 6Curso de MS-DOS
5. 13-2 Memoria ROM y memoria RAM
13-3 Tipos de memoria RAM
13-4 Configurar los tipos de memoria
13-5 Aprovechar la memoria superior
13-6 La orden MEM
13-7 Crear un caché de disco
13-8 Crear un disco RAM
13-9 El programa MEMMAKER
14. Los discos del DOS
14-1 Introducción
14-2 El sistema de disco
14-3 El disco
14-4 Sector de arranque
14-5 Los grupos
14-6 La FAT
14-7 El directorio raíz
14-8 El área de datos
14-9 Estructura lógica de los discos duros
14-10 Corrección de errores en los discos
15. Defrag, Undelete y Unformat
15-1 Introducción
15-2 DEFRAG
15-3 Preparar UNDELETE
15-4 Restaurar ficheros borrados con UNDELETE
15-5 Funcionamiento de UNDELETE
15-6 La orden FORMAT
15-7 UNFORMAT
16. Msbackup
16-1 Introducción
16-2 Organización eficiente de un disco duro
16-3 Tipos de copias de seguridad
16-4 Glosario de MSBACKUP
16-5 Iniciar MSBACKUP
16-6 Crear copias de seguridad
16-7 Restaurar copias de seguridad
17. Los virus informáticos
17-1 Introducción: Los virus informáticos
17-2 Motivos para fabricar un virus
17-3 Clasificación de los virus
17-4 Medidas para evitar el contagio
17-5 Síntomas generales de la presencia de un virus
17-6 Los anti-virus
17-7 MSAV
17-8 VSAFE
Página 5 de 6Curso de MS-DOS
6. 18. El fichero CONFIG.SYS
18-1 Introducción: El fichero CONFIG.SYS
18-2 Orden BUFFERS
18-3 Orden FILES
18-4 Instalar controladores de dispositivos
18-5 Orden COUNTRY
18-6 Orden LASTDRIVE
18-7 Orden DOS
18-8 Orden SHELL
Subir · Publicaciones · Saulo.Net
Página 6 de 6Curso de MS-DOS
7. Capítulo 8
Redireccionamientos
Índice · Capítulo 7 · Capítulo 9 · Publicaciones · Saulo.Net
8-1 Introducción
Para comprender mejor el significado del redireccionamiento, intente responder primeramente las siguientes preguntas.
1. Cuando el ordenador solicita información, ¿qué dispositivo utiliza para recibirla?
2. Cuando el ordenador necesita presentar información, ¿qué dispositivo emplea?
Las respuestas correctas son el teclado y el monitor respectivamente. En este capítulo aprenderemos a redirigir (cambiar)
las entradas y salidas de las órdenes del ms-dos. El siguiente cuadro presenta la entrada y la salida por defecto de las
órdenes del dos.
Índice · Arriba · Publicaciones · Saulo.Net
8-2 Los operadores
Para variar la entrada de una orden, la salida o ambas, se utilizan los operadores de redireccionamiento. Son cuatro:
Índice · Arriba · Publicaciones · Saulo.Net
Función Dispositivo
Entrada por defecto CON (teclado)
Salida por defecto CON (monitor)
Operador Descripción Sintaxis
< Redirección de la entrada orden <fichero/dispositivo
> Redirección de la salida orden >fichero/dispositivo
>> Redirección de la salida a un fichero existente orden >>fichero
|
Redirección de la salida de una orden a entrada
de otra orden
orden1 |orden2
Página 1 de 10Curso de MS-DOS Capítulo 8
8. 8-3 Los filtros del DOS
Los filtros del dos son las órdenes More, Sort y Find. Estas tres órdenes externas se denominan filtros porque su misión
es recibir una entrada, filtrarla y devolver una salida.
More
Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos caracteres insertando una
pausa cada 23 líneas.
En muchas ocasiones la información mostrada por una orden o el contenido de un fichero no cabe en una sola pantalla y
los datos se desplazan a gran velocidad sin darnos tiempo a leerlos. La utilidad de la orden More se encuentra en estas
ocasiones, deteniendo el desplazamiento de información en cada pantalla. Entonces, More muestra la siguiente línea:
-- Más --
Después de leer los datos en pantalla, podemos pulsar Enter para continuar o también Ctrl+Pausa para interrumpir.
Sort
Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos caracteres ordenando cada
fila alfabéticamente.
El uso más frecuente de este filtro es ordenar alfabéticamente el contenido de un fichero. Admite dos modificadores:
Find
Recibe como entrada un conjunto de caracteres organizados en filas y devuelve las filas que contengan una cadena
determinada.
La cadena de caracteres para buscar debe especificarse entre comillas (Mays+2) después de la orden.
Se utiliza, a menudo, para buscar una cadena de caracteres en un fichero o en la salida de una orden. El filtro Find
distingue entre mayúsculas y minúsculas mientras no le especifiquemos el modificador /I entre la orden y la cadena.
Modificador Descripción
/R Ordena inversamente (de la `Z' a la `A' y del `9' al `0')
/+columna Indica la columna del carácter a partir del cual se comparará cada fila.
Página 2 de 10Curso de MS-DOS Capítulo 8
9. FIND "cadena" (cadena es diferente que CADENA)
FIND /I "cadena" (cadena es lo mismo que CADENA)
Índice · Arriba · Publicaciones · Saulo.Net
8-4 Redirección de la entrada. Operador `<'
Cómo hemos dicho al principio del capítulo, las órdenes del dos solicitan información a través del teclado. Con este
operador hacemos que la información de entrada proceda desde un fichero o un dispositivo.
Aplicaciones:
Mostrar un fichero de texto con pausa en cada pantalla.
A:>more <recuerdo.txt
(More toma como entrada el fichero RECUERDO.TXT y como salida, el monitor)
Ordenar un fichero alfabéticamente y verlo en la pantalla.
A:>sort <personal.txt
(Sort toma como entrada el fichero PERSONAL.TXT y como salida, el monitor)
Ordenar un fichero alfabéticamente a partir de una columna. Ejemplo: Si el fichero PERSONAL.TXT
contiene nombres y datos del personal de una empresa, podemos ordenarlo por la columna que indica el puesto
ejercido por cada empleado.
A:>sort /+40 <personal.txt
Encontrar las filas que contienen una cadena de caracteres.
A:>find "JIMENEZ" <personal.txt
(Find considera como entrada el fichero PERSONAL.TXT y muestra por pantalla todas las filas que
contienen la cadena «JIMENEZ»)
Ejercicios de autocomprobación
1. Indique las órdenes necesarias para:
a) Mostrar el fichero CRONICA.TXT con pausa en cada pantalla.
b) Mostrar el fichero AVISO.TXT con pausa en cada pantalla.
c) Ordenar el fichero NUMEROS.TXT alfabéticamente.
d) Ordenar el fichero LISTIN.TXT alfabéticamente a partir de la columna 30.
e) Ordenar el fichero AMIGOS.TXT inversamente.
Página 3 de 10Curso de MS-DOS Capítulo 8
10. f) Buscar la cadena "IGNACIO" en el fichero PERSONAL.TXT
2. Si no utilizamos el operador `<', ¿cuál es el dispositivo de entrada por defecto?
Índice · Arriba · Publicaciones · Saulo.Net
8-5 Redirección de la salida. Operador `>'
Con este operador dirigimos la salida desde la pantalla a un fichero o dispositivo.
Suele tener dos usos principales:
1. Enviar la salida de una orden a la impresora.
A:>type romance.txt >prn
(imprime el fichero ROMANCE.TXT en impresora)
C:>vol >prn
(imprime la etiqueta y el número de serie en impresora)
2. Enviar la salida de una orden a un nuevo fichero. Si el fichero existe, se pierde su contenido anterior.
C:>dir >director.txt
(crea el fichero DIRECTOR.TXT con el directorio raíz de C:)
C:>ver >version.txt
(crea el fichero VERSION.TXT conteniendo la versión actual de ms-dos)
El operador `>' también se puede combinar con los filtros del dos. Veamos algunas aplicaciones:
Ordenar un texto introducido por teclado en un fichero. El cursor se sitúa debajo de la orden esperando las
filas de texto. Al terminar cada fila debemos pulsar Enter y para terminar la introducción de texto, Ctrl+Z y luego
Enter.
B:>sort >amigos.txt
(Sort asume como entrada el teclado y como salida el fichero AMIGOS.TXT)
Ordenar un fichero en otro.
B:>sort <listin1.txt >listin2.txt
(Sort asume como entrada el fichero LISTIN1.TXT y como salida, el fichero LISTIN2.TXT)
Ordenar un fichero en la impresora.
B:>sort <listin1.txt >prn
Página 4 de 10Curso de MS-DOS Capítulo 8
11. (Sort toma como entrada el fichero LISTIN1.TXT y como salida, la impresora)
Buscar una cadena en un fichero y crear otro con el resultado de la búsqueda.
B:>find "CONTABLE" <personal.txt >contable.txt
Ejercicios de autocomprobación
3. Indique la entrada y la salida de las siguientes líneas de órdenes.
a) DATE <DIA.TXT
b) TIME <HORA.TXT
c) TYPE ROMANCE.TXT
d) TYPE ROMANCE.TXT >CON
e) DIR >DIRECTOR.TXT
f) DIR >PRN
g) SORT
h) SORT <DESORDEN.TXT
i) SORT <DESORDEN.TXT >ORDEN.TXT
j) SORT <DESORDEN.TXT >PRN
k) FIND "HARINA" <COMPRA.TXT
l) FIND "HARINA" <COMPRA.TXT >HARINA.TXT
m) MORE <AVISO.TXT
Índice · Arriba · Publicaciones · Saulo.Net
8-6 Redirección de la salida a un fichero existente `>>'
Se utiliza para dirigir la salida de una orden a un fichero existente. Al contrario que el operador `>', el operador de
adicción `>>' no sobrescribe sino añade al fichero existente.
La siguiente orden añade al fichero SOS.TXT la ayuda de la orden Time. Si no existe, se crea el fichero.
A:>time /? >>sos.txt
La siguiente añade al fichero SOS.TXT la ayuda suministrada por ms-dos para la orden Date.
A:>date /? >>sos.txt
Si ahora visualizamos el fichero SOS.TXT, comprobamos que contiene la ayuda de ambas órdenes.
A:>type sos.txt
Muestra o establece la hora del sistema.
Página 5 de 10Curso de MS-DOS Capítulo 8
12. TIME [hora]
Escriba TIME sin parámetros para consultar o cambiar la hora actual.
Presione ENTRAR para conservar la misma hora.
Presenta o establece la fecha.
DATE [dd-mm-aa]
dd-mm-aa Establece la fecha que se especifique.
Escriba DATE sin parámetros para ver la fecha actual y poder escribir una nueva.
Presione ENTRAR para conservar la misma fecha.
D:>
Ejercicios de autocomprobación
4. Escribir las órdenes necesarias para:
a) Mostrar el fichero INFORME.TXT con pausa en cada pantalla.
b) Imprimir el fichero INFORME.TXT en la impresora.
c) Ordenar el texto introducido por el teclado en la impresora.
d) Añadir la etiqueta y el número de serie de la unidad actual (orden Vol) al fichero VARIOS.TXT
e) Añadir el directorio actual al fichero VARIOS.TXT
Índice · Arriba · Publicaciones · Saulo.Net
8-7 Redirección de la salida a entrada de otra orden ( | )
El uso del operador `|' guarda la siguiente sintaxis:
orden1 |orden2
Nota: El símbolo de tubería o símbolo de canalización `|' se obtiene pulsando AltGr+1.
La lectura de esta sintaxis es: "tomar la salida de orden1 como entrada de orden2".
Cada vez que utilizamos el símbolo tubería, ms-dos necesita crear un fichero temporal. Para ello utiliza la variable de
entorno TEMP. Si esta variable no está bien definida, puede ocurrir algún error.
Aplicaciones:
Mostrar con pausa en cada pantalla la salida de una orden.
Página 6 de 10Curso de MS-DOS Capítulo 8
13. B:>type informe.txt |more
C:DOS>dir |more
C:>tree |more
Obtener una línea determinada de la salida de una orden.
C:>dir |find "bytes libres"
20.443.136 bytes libres
(muestra los bytes libres de la unidad C:)
C:>set |find "TEMP"
TEMP=C:DOS
(muestra el valor de la variable TEMP o nada si no existe)
Ejercicios de autocomprobación
5. Entre las siguientes líneas de órdenes, agrupar por parejas las que hagan lo mismo.
a) COPY EJEMPLO.TXT PRN
b) TYPE EJEMPLO.TXT |MORE
c) TYPE EJEMPLO.TXT >PRN
d) COPY EJEMPLO.TXT CON
e) DIR /P
f) MORE <EJEMPLO.TXT
g) TYPE EJEMPLO.TXT
h) DIR |MORE
Índice · Arriba · Publicaciones · Saulo.Net
Clave de los ejercicios de autocomprobación
1. a) MORE <CRONICA.TXT
b) MORE <AVISO.TXT
c) SORT <NUMEROS.TXT
d) SORT /+30 <LISTIN.TXT
e) SORT /R <AMIGOS.TXT
f) FIND "IGNACIO" <PERSONAL.TXT
2. El teclado es el dispositivo de entrada por defecto.
Página 7 de 10Curso de MS-DOS Capítulo 8
14. 3. a) DIA.TXT monitor
b) HORA.TXT monitor
c) (teclado) monitor
d) (teclado) monitor
e) (teclado) DIRECTOR.TXT
f) (teclado) impresora
g) teclado monitor
h) DESORDEN.TXT monitor
i) DESORDEN.TXT ORDEN.TXT
j) DESORDEN.TXT impresora
k) COMPRA.TXT monitor
l) COMPRA.TXT HARINA.TXT
m) AVISO.TXT monitor
4. a) MORE <INFORME.TXT
b) TYPE INFORME.TXT >PRN
c) SORT >PRN
d) VOL >>VARIOS.TXT
e) DIR >>VARIOS.TXT
5. a) y c) Imprimir EJEMPLO.TXT
b) y f) Mostrar con pausa en cada pantalla EJEMPLO.TXT
d) y g) Visualizar EJEMPLO.TXT
e) y h) Mostrar el directorio actual con pausa en cada pantalla.
Índice · Arriba · Publicaciones · Saulo.Net
Puesta en práctica
Vamos a seguir los siguientes pasos:
1. Crear un fichero llamado AMIGOS1.TXT que contenga los siguientes datos. (Las dos primeras líneas no debe
crearlas en el fichero: están para introducir las columnas correctamente).
0 10 20 30 40
12345678901234567890123456789012345678901234567
Ismael Caballero Valladolid 7986821
María López Córdoba 4568756
Sonia Aguilar Valladolid 1239083
Juan Ramírez Córdoba 7643434
Laura Díaz Córdoba 4221336
Enrique Ortiz Burgos 3423444
Mónica Carrasco Madrid 1234123
Cristina Reyes Madrid 3344334
2. Conocer todos los amigos de Córdoba.
Página 8 de 10Curso de MS-DOS Capítulo 8
15. 3. Conocer el número de teléfono de Cristina.
4. Ordenar alfabéticamente el fichero basándonos en la ciudad.
5. Ordenar alfabéticamente el fichero basándonos en el apellido.
6. Crear otro fichero llamado AMIGOS2.TXT que contenga lo siguiente:
0 10 20 30 40
12345678901234567890123456789012345678901234567
Antonio López Alicante 8344621
Juan Moreno Alicante 4352359
7. Unir ambos ficheros en un tercero llamado AMIGOS3.TXT
8. Ordenar alfabéticamente AMIGOS3.TXT por el nombre y escribir el resultado en un nuevo fichero llamado
AMIGOS4.TXT.
9. Visualizar por pantalla AMIGOS4.TXT. Si tiene impresora, imprímalo.
10. Borrar los cuatro ficheros creados.
Resolución en el ordenador:
A:>copy con amigos1.txt
Ismael Caballero Valladolid 7986821
María López Córdoba 4568756
Sonia Aguilar Valladolid 1239083
Juan Ramírez Córdoba 7643434
Laura Díaz Córdoba 4221336
Enrique Ortiz Burgos 3423444
Mónica Carrasco Madrid 1234123
Cristina Reyes Madrid 3344334
^Z
1 archivo(s) copiado(s)
A:>find "Córdoba" <amigos1.txt
María López Córdoba 4568756
Juan Ramírez Córdoba 7643434
Laura Díaz Córdoba 4221336
A:>find "Cristina" <amigos1.txt
Cristina Reyes Madrid 3344334
A:>sort /+26 <amigos1.txt
Enrique Ortiz Burgos 3423444
Laura Díaz Córdoba 4221336
María López Córdoba 4568756
Juan Ramírez Córdoba 7643434
Mónica Carrasco Madrid 1234123
Cristina Reyes Madrid 3344334
Sonia Aguilar Valladolid 1239083
Ismael Caballero Valladolid 7986821
A:>sort /+12 <amigos1.txt
Sonia Aguilar Valladolid 1239083
Ismael Caballero Valladolid 7986821
Mónica Carrasco Madrid 1234123
Laura Díaz Córdoba 4221336
Página 9 de 10Curso de MS-DOS Capítulo 8
16. María López Córdoba 4568756
Enrique Ortiz Burgos 3423444
Juan Ramírez Córdoba 7643434
Cristina Reyes Madrid 3344334
A:>copy con amigos2.txt
Antonio López Alicante 8344621
Juan Moreno Alicante 4352359
^Z
1 archivo(s) copiado(s)
A:>type amigos1.txt >amigos3.txt
A:>type amigos2.txt >>amigos3.txt
A:>type amigos3.txt
Ismael Caballero Valladolid 7986821
María López Córdoba 4568756
Sonia Aguilar Valladolid 1239083
Juan Ramírez Córdoba 7643434
Laura Díaz Córdoba 4221336
Enrique Ortiz Burgos 3423444
Mónica Carrasco Madrid 1234123
Cristina Reyes Madrid 3344334
Antonio López Alicante 8344621
Juan Moreno Alicante 4352359
A:>sort <amigos3.txt >amigos4.txt
A:>type amigos4.txt
Antonio López Alicante 8344621
Cristina Reyes Madrid 3344334
Enrique Ortiz Burgos 3423444
Ismael Caballero Valladolid 7986821
Juan Moreno Alicante 4352359
Juan Ramírez Córdoba 7643434
Laura Díaz Córdoba 4221336
María López Córdoba 4568756
Mónica Carrasco Madrid 1234123
Sonia Aguilar Valladolid 1239083
A:>del amigos?.txt
A:>
Índice · Arriba · Capítulo 9 · Publicaciones · Saulo.Net
Página 10 de 10Curso de MS-DOS Capítulo 8
17. Capítulo 10
Ficheros por lotes (I)
Índice · Capítulo 9 · Capítulo 11 · Publicaciones · Saulo.Net
10-1 Introducción
En muchas ocasiones los usuarios de ms-dos repiten una determinada secuencia de órdenes día tras día, suponiendo una tarea bastante molesta e incómoda. Los
ficheros por lotes pretenden automatizar una tarea rutinaria ejecutando una serie de órdenes definidas con antelación.
En este capítulo aprenderemos aquellas herramientas necesarias para crear un fichero por lotes. En el capítulo siguiente, se exponen y estudian útiles ejemplos
que abarcan la totalidad del temario estudiado.
Índice · Arriba · Publicaciones · Saulo.Net
10-2 Concepto de fichero por lotes
Un fichero por lotes es un fichero ASCII
que contiene una serie de órdenes
Como ejemplo, vamos a crear un fichero por lotes llamado TIEMPO.BAT. Para su confección podemos utilizar la orden Copy o el programa Edit.
C:BATH>copy con tiempo.bat
date
time
^Z
1 archivo(s) copiado(s)
Si ahora ejecutamos el fichero recién creado, vemos como entran en funcionamiento las órdenes Date y Time.
C:BATH>tiempo
C:BATH>date
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
C:BATH>time
La hora actual es 0:53:54,12
Escriba la nueva hora:
C:BATH>
Todos los ficheros por lotes poseen unas características comunes:
Extensión. Todos deben llevar obligatoriamente la extensión BAT.
Contenido. Son ficheros de texto ASCII y, por consiguiente, pueden ser creados por Copy o Edit. Cada línea del fichero debe poseer una orden.
Ejecución. Para hacerlo funcionar simplemente debemos teclear su nombre a continuación del símbolo del sistema. El fichero por lotes tomará entonces
el control del ordenador.
Interrupción. Podemos detener el procesamiento del fichero por lotes en cualquier momento presionando Ctrl+Pausa.
Todas las órdenes admitidas después del símbolo del sistema pueden introducirse también en un fichero por lotes. Además, existen una serie de órdenes
diseñadas específicamente para estos ficheros:
Orden Breve descripción
Echo Controla el eco de las órdenes y visualiza mensajes.
Página 1 de 11Curso de MS-DOS Capítulo 10
18. La siguiente tabla muestra aquellos símbolos empleados exclusivamente en los ficheros por lotes:
Índice · Arriba · Publicaciones · Saulo.Net
10-3 La orden ECHO
Se puede utilizar de cinco formas:
El eco de una orden es el propio nombre de aquella escrito en la pantalla. Al poner en marcha el fichero anterior, observará como aparece el nombre de cada
orden en pantalla antes de ejecutarse. Al fichero del ejemplo podemos añadirle la línea ECHO OFF para desactivar el eco en lo sucesivo.
Para eliminar el eco de la propia orden ECHO OFF se antepone el símbolo arroba (@) al nombre de la orden. Veámoslo más claro en los ejemplos siguientes.
Programa:
echo off
date
time
Ejecución:
C:BATH>tiempo
C:BATH>echo off
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 0:53:54,12
Escriba la nueva hora:
Programa:
@echo off
date
Rem Introduce comentarios.
Pause Detiene temporalmente el desarrollo de un programa.
Goto Desvía incondicionalmente el desarrollo de un programa.
If Desvía condicionalmente el desarrollo de un programa.
Choice Permite elegir entre unas opciones establecidas.
For Repite una misma orden en un conjunto de ficheros.
Call Llama a un fichero por lotes desde otro.
Shift Desplaza el valor de los parámetros.
Símbolo Significado
:etiqueta Nombre de una etiqueta.
%número Parámetro del fichero por lotes.
%variable% Variable del entorno.
%%variable Variable de la orden For.
ECHO Indica si está activado o desactivado el eco de las órdenes.
ECHO ON Activa el eco
ECHO OFF Desactiva el eco
ECHO mensaje Visualiza un mensaje en pantalla.
ECHO. Visualiza una línea en blanco en pantalla.
Página 2 de 11Curso de MS-DOS Capítulo 10
19. time
Ejecución:
C:BATH>tiempo
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 0:53:54,12
Escriba la nueva hora:
La orden Echo también permite mostrar mensajes al usuario del fichero. En el siguiente ejemplo se ha introducido el mensaje "Este es el fichero
TIEMPO.BAT":
Programa:
@echo off
echo Este es el fichero TIEMPO.BAT
date
time
Ejecución:
C:BATH>tiempo
Este es el fichero TIEMPO.BAT
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 1:10:22,72
Escriba la nueva hora:
Índice · Arriba · Publicaciones · Saulo.Net
10-4 La orden REM
Permite introducir comentarios internos en el código de un fichero por lotes. Las líneas precedidas por la palabra Rem serán ignoradas durante el
funcionamiento del fichero por lotes. Se suele utilizar esta orden para introducir aclaraciones en el código del fichero. Objetivo: facilitar su lectura y
corrección de errores.
@echo off
rem Programa: TIEMPO.BAT
rem Cometido: Mostrar al usuario la fecha y la hora del
rem sistema y ofrecerle la oportunidad de modificarla.
date
time
Ejercicios de autocomprobación
1. Indique la diferencia entre las siguientes órdenes:
ECHO Ficheros por lotes
REM Ficheros por lotes
Índice · Arriba · Publicaciones · Saulo.Net
10-5 Gestión de parámetros
Los parámetros son informaciones adicionales colocadas detrás del nombre de una orden. Si la mayoría de las órdenes de ms-dos admiten parámetros,
también será posible gestionar parámetros en los ficheros por lotes.
Página 3 de 11Curso de MS-DOS Capítulo 10
20. Vamos a confeccionar un fichero por lotes que borre dos ficheros introducidos como parámetros.
Programa:
@echo off
rem Programa: BORRA2.BAT
del %1
del %2
Ejecución:
A:>borra2 juan.txt maria.txt
En la línea de órdenes, cada parámetro debe estar separado con un espacio en blanco del anterior. De la forma anteriormente explicada podemos gestionar hasta
nueve de ellos (del %1 al %9).
Para referirnos a un parámetro introducido en la línea de órdenes del programa, debemos escribir el signo de porcentaje (%) seguido del número de parámetro.
El siguiente ejemplo copia los ficheros introducidos como parámetros al disquete de la unidad B:
Programa:
@echo off
rem Programa: COPIAB.BAT
echo Se están copiando los ficheros %1, %2 y %3 a la unidad B:
copy %1 b:
copy %2 b:
copy %3 b:
Ejecución:
A:>copiab juan.bak alberto.bmp marta.dbf
Índice · Arriba · Publicaciones · Saulo.Net
10-6 La orden PAUSE
Detiene temporalmente el desarrollo de un programa. Cuando el dos encuentra una orden Pause en un fichero por lotes visualiza un mensaje en pantalla y
espera una tecla para proseguir. También podemos presionar Ctrl+Pausa y así, interrumpir el desarrollo del fichero.
Presione cualquier tecla para continuar . . .
Para mejorar la presentación, podemos insertar un mensaje indicando el motivo de la detención del programa gracias a la orden Echo:
echo Inserte un disquete en la unidad B:
pause
Si no deseamos ver el mensaje de Pause, podemos redireccionarlo al dispositivo ficticio NUL.
echo Inserte un disquete en B: y pulse Enter
pause >nul
Ejercicios de autocomprobación
2. ¿Qué hace la orden PAUSE >NUL ?
3. Escriba un fichero de procesamiento por lotes que pida un disco en la unidad A: antes de mostrar su directorio raíz.
Página 4 de 11Curso de MS-DOS Capítulo 10
21. Índice · Arriba · Publicaciones · Saulo.Net
10-7 La orden GOTO
Normalmente un fichero por lotes se desarrolla secuencialmente, desde la primera línea hasta la última. Sin embargo, la orden Goto permite desviar la
ejecución del programa hasta una etiqueta especificada como parámetro.
GOTO [:]etiqueta
Las etiquetas deben ir precedidas de dos puntos (:) para diferenciarse de las
órdenes. Admiten hasta ocho caracteres significativos. Esto último significa que la etiqueta `BALANCE_DE_AGOSTO' es idéntica a
`BALANCE_DE_ENERO'.
El siguiente ejemplo muestra cómo se usan las etiquetas:
Programa:
@echo off
ver
goto Final
vol
:Final
Ejecución:
Versión MS-DOS 6.22
En este ejemplo, la orden Vol nunca se ejecutará: al llegar la orden GOTO FINAL, ms-dos salta hasta la etiqueta :Final y termina el fichero porque no hay más
líneas.
Vamos a crear un programa para copiar varios disquetes desde la unidad A: al directorio actual.
@echo off
rem Programa: DEMO.BAT
echo ********************************************
echo ** Este programa copia todos los ficheros **
echo ** de la unidad A: al directorio actual **
echo ********************************************
pause
:Proceso
copy a: .
echo Introduzca el siguiente disquete en A: y pulse Enter
pause >nul
goto Proceso
En primer lugar el programa muestra en pantalla su cometido y así, el usuario decide entre continuar (Enter) o abandonar (Ctrl+Pausa). Si pulsa Enter se copian
todos los ficheros del directorio raíz de A: en el directorio actual.
Luego, se ofrece la posibilidad de introducir otro disquete. Si pulsamos Enter se ejecuta la orden GOTO PROCESO, desviando la ejecución del programa hasta
la etiqueta :Proceso. En cambio, si pulsamos Ctrl+Pausa el programa finaliza, apareciendo el símbolo del sistema.
Ejercicios de autocomprobación
4. ¿Qué hace el siguiente fichero por lotes?
@echo off
dir c:
goto etiqueta2
:etiqueta1
ver
:etiqueta2
Página 5 de 11Curso de MS-DOS Capítulo 10
22. Índice · Arriba · Publicaciones · Saulo.Net
10-8 La orden IF
Desvía condicionalmente el proceso de ejecución de un fichero por lotes. Admite 6 sintaxis diferentes:
IF EXIST
Un programador debe considerar todas y cada una de las situaciones posibles al ejecutarse su programa y, por tanto, debe evitar la aparición de mensajes de
error inesperados en la pantalla.
Suponga el siguiente fichero por lotes:
@echo off
del %1
Si ahora lo hacemos funcionar introduciendo como parámetro un fichero inexistente, el ms-dos tomará el control y dará su correspondiente mensaje de error.
Este fichero resulta más correcto si contiene las siguientes líneas:
@echo off
if not exist %1 echo ¡Es imposible borrar un fichero que no existe!
if exist %1 del %1
De esta forma, la orden Del sólo funciona si el fichero existe.
IF cadena1==cadena2
Encuentra su utilidad al trabajar con parámetros en un fichero por lotes.
En el fichero BORRA2.BAT hemos supuesto que el usuario siempre introduce dos parámetros. Sin embargo, se producirá un error si el usuario sólo introduce
uno de ellos: la orden DEL %2 quedará transformada en DEL a secas y como Del no funciona sin parámetros, ms-dos mostrará una advertencia. Este problema
se soluciona con lo siguiente:
@echo off
rem Programa: BORRA2B.BAT
if "%1"=="" echo Debe introducir uno o dos ficheros como parámetros.
if not "%1"=="" del %1
if not "%2"=="" del %2
La primera línea If avisa si no se ha introducido ningún parámetro. La segunda línea únicamente borrará el primer parámetro si se ha introducido. La tercera
línea hace lo mismo pero con el segundo parámetro.
IF ERRORLEVEL
Cada orden externa de ms-dos genera un código de salida a su término indicando si pudo realizarse satisfactoriamente.
Generalmente un código de salida 0 indica que no hubo ningún problema y un código de salida superior hace referencia a diferentes errores.
IF EXIST fichero orden Si existe el fichero se ejecuta la orden.
IF NOT EXIST fichero orden Si no existe el fichero se ejecuta la orden.
IF cadena1==cadena2 orden Si ambas cadenas son iguales se ejecuta la orden.
IF NOT cadena1==cadena2 orden Si ambas cadenas son diferentes se ejecuta la orden.
IF ERRORLEVEL número orden Si el código de salida del último programa es igual o superior al número, se ejecuta la orden.
IF NOT ERRORLEVEL número orden Si el código de salida del último programa es inferior al número, se ejecuta la orden.
Página 6 de 11Curso de MS-DOS Capítulo 10
23. Muchos ficheros por lotes necesitan saber si la orden anterior cumplió su cometido correctamente: para ello utilizan la orden If errorlevel.
Es muy importante recordar que la orden se ejecutará si el código de salida es igual o superior al especificado detrás de ERRORLEVEL.
A modo de ejemplo tenemos a continuación los códigos de salida de Xcopy:
Vamos a crear un fichero por lotes para copiar los ficheros de la unidad A: a la B: e informe del resultado de la copia.
@echo off
rem Programa: COPIA-AB.BAT
xcopy a: b:
if errorlevel 1 goto Error
if errorlevel 0 echo ¡La copia fue correcta!
goto Final
:Error
echo Se produjo un error durante la copia
:Final
En primer lugar, Xcopy intenta realizar la copia de ficheros y devolverá un código de salida. Si se ha producido algún error el código será 1 o superior y
entonces, el programa se desvía hasta la etiqueta :Error, muestra el mensaje y finaliza. Si la copia fue satisfactoria, el código de salida es 0. La segunda línea If
mostrará el mensaje de éxito, saltando después a la etiqueta :Final y como no hay más líneas, termina el proceso.
En muchas ocasiones puede ser fuente de complicaciones que If errorlevel número se cumpla si el número es igual o mayor. Para cumplirse exclusivamente si
el código de salida es 5 -por ejemplo- podemos usar lo siguiente:
if errorlevel 5 if not errorlevel 6 dir
Esta compleja línea se traduce así: «Si el código de salida es 5 o superior pero inferior a 6 ejecutar Dir», es decir, si el código es 5 ejecutar Dir.
Índice · Arriba · Publicaciones · Saulo.Net
10-9 La orden CHOICE
Permite escoger una opción entre varias y, dependiendo de la opción elegida, devuelve un código de salida.
Su sintaxis es:
CHOICE [mensaje] [/C:opciones] [/N] [/S] [/T:opción,segundos]
Código Significado
0 Los ficheros fueron copiados sin error.
1 No se encontraron ficheros para copiar.
2 El usuario presionó Ctrl+Pausa para suspender el proceso de Xcopy.
4 Ocurrió un error de inicio. No hay suficiente memoria o espacio en el disco, se introdujo un nombre de unidad no válida o se
utilizó una sintaxis incorrecta en la línea de órdenes.
5 Ocurrió un error de escritura de disco.
/C:opciones Especifica las opciones posibles. Si el usuario pulsa la primera de las opciones, Choice devolverá un código de salida 1; si pulsa
la segunda opción, Choice devuelve el código 2 y así sucesivamente. Si no se especifica este parámetro se asumen las opciones
por defecto (SN).
/N No muestra las opciones admitidas detrás del mensaje.
/S Hace distinción entre mayúsculas y minúsculas. Si no se especifica este parámetro se toman como la misma opción.
/T:opción,segs Toma la opción indicada si no se pulsa ninguna otra tecla en los segundos especificados.
Página 7 de 11Curso de MS-DOS Capítulo 10
24. El programa DEMO.BAT podemos mejorarlo sensiblemente si cambiamos las órdenes Pause por órdenes Choice.
@echo off
rem Programa: DEMOB.BAT
echo ********************************************
echo ** Este programa copia todos los ficheros **
echo ** de la unidad A: al directorio actual **
echo ********************************************
choice ¿Desea continuar?
if errorlevel 2 goto Final
:Proceso
copy a: .
choice Para continuar con otro disquete pulse C y para finalizar, F /C:FC
if errorlevel 2 goto proceso
:Final
En la primera orden Choice se toman las opciones por defecto S y N. `S' corresponde a un código de salida 1 y `N' a un código 2. En la segunda orden Choice
se toman las opciones F y C. `F' corresponde a un código 1 y `C' a un código 2.
Con la orden Choice y de una forma muy sencilla podemos crear menús con diferentes opciones:
@echo off
rem Programa: UTIL.BAT
:Menu
cls
echo UTILIDADES DE MS-DOS
echo --------------------
echo.
echo A. Anti-Virus
echo B. Backup
echo D. Defragmentar
echo E. Editor
echo S. Salir
echo.
choice ¿Qué utilidad desea comenzar? /c:abdes /n /t:s,15
if errorlevel 5 goto Salir
if errorlevel 4 goto Editor
if errorlevel 3 goto Defrag
if errorlevel 2 goto Backup
if errorlevel 1 goto Anti
if errorlevel 0 goto Menu
:Anti
MSAV
goto Menu
:Backup
MSBACKUP
goto Menu
:Defrag
DEFRAG
goto Menu
:Editor
EDIT
goto Menu
:Salir
echo.
Observe la orden Choice: el modificador /C indica las opciones admitidas. Si se pulsa la `A' se generará un código de salida 1 y así sucesivamente hasta la `S'
que corresponde a un código 5. Gracias al modificador /N Choice no muestra las teclas admitidas detrás del mensaje. El modificador /T toma como opción por
defecto la `S' si pasan 15 segundos sin pulsar ninguna tecla.
Observe, asimismo, cómo se ha comenzado en las líneas If por el errorlevel más alto: así se evitan conflictos. El código de salida 0 se obtiene si el usuario
responde con Ctrl+Pausa al mensaje de Choice.
mensaje Contiene el mensaje mostrado al usuario pidiendo que introduzca una de las opciones admitidas.
Página 8 de 11Curso de MS-DOS Capítulo 10
25. Ejercicios de autocomprobación
5. Escriba un fichero de procesamiento por lotes para borrar el fichero introducido como parámetro. El programa debe comprobar
previamente si se ha introducido algún parámetro y si el fichero existe.
6. ¿Para qué devuelven un código de salida las órdenes externas?
7. Escriba un fichero por lotes que nos pregunte si deseamos ver el directorio de A: o el de B:
Índice · Arriba · Publicaciones · Saulo.Net
10-10 Las variables del entorno
Se puede recuperar el valor de una determinada variable del entorno introduciendo ésta entre signos de porcentajes (%NombreVariable%).
Ejemplo:
Echo El valor de la variable PATH es %PATH%
Echo El valor de la variable PROMPT es %PROMPT%
El siguiente ejemplo da el valor C:DOS a la variable TEMP si no ha sido definida:
if "%TEMP%"=="" set TEMP=C:DOS
Índice · Arriba · Publicaciones · Saulo.Net
10-11 Otras órdenes
Existen otras tres órdenes más diseñadas para su uso en ficheros por lotes. Como estas órdenes tienen un menor uso, se exponen resumidamente a
continuación.
La orden FOR
Su sintaxis es:
FOR %%variable IN (conjunto) DO orden
Esta orden repite la orden especificada para cada valor del conjunto. Conjunto es una lista de nombres de ficheros. En ella, se pueden establecer varios
nombres separados por espacios y también, utilizar comodines.
Ejemplo
for %%I in (juan.txt maria.txt *.dat) do type %%i
La variable %%I va tomando cada uno de los valores del conjunto y se los envía a la orden Type. En este ejemplo se visualizan en pantalla los ficheros
JUAN.TXT, MARIA.TXT y todos los que tengan extensión DAT.
La orden SHIFT
Se traduce al español por desplazamiento. Mueve el valor de cada parámetro a la variable anterior. Por ejemplo, si existen 3 parámetros (%1, %2 y %3) y se
utiliza la orden Shift, el valor de %1 lo tomará %0, el valor de %2 lo tomará %1 y el valor de %3 lo tomará %2.
Programa:
Página 9 de 11Curso de MS-DOS Capítulo 10
26. @echo off
rem Programa: DEMO2.BAT
echo El parámetro 1 es %1
shift
echo El parámetro 2 es %1
shift
echo El parámetro 3 es %1
Ejecución:
C:BATH>demo2 juan maria alberto
El parámetro 1 es juan
El parámetro 2 es maria
El parámetro 3 es alberto
C:BATH>
La orden CALL
Se utiliza para llamar a un fichero por lotes desde el interior de otro. Su sintaxis es:
CALL fichero [ParámetrosDelFichero]
En el siguiente ejemplo, el fichero PRG1.BAT llama a PRG2.BAT. Cuando la ejecución de PRG2.BAT termina, continua PRG1.BAT en la siguiente línea a
Call.
Programa PRG1.BAT:
@echo off
echo línea 1
call prg2.bat
echo línea 4
echo línea 5
Programa PRG2.BAT:
@echo off
echo línea 2
echo línea 3
Ejecución:
C:BATH>prg1
línea 1
línea 2
línea 3
línea 4
línea 5
C:BATH>
Índice · Arriba · Publicaciones · Saulo.Net
Clave de los ejercicios de autocomprobación
1. La línea ECHO muestra el mensaje "Ficheros por lotes" en pantalla y la línea REM es ignorada al funcionar el programa.
2. Espera la pulsación de una tecla. Como la salida de Pause está redireccionada al dispositivo nulo, no se mostrará ningún mensaje en la
pantalla.
3.
@echo off
Echo Introduzca un disquete en la unidad A:
Pause
Página 10 de 11Curso de MS-DOS Capítulo 10
27. dir a:
4. Muestra el directorio raíz de la unidad C: y luego la versión del sistema operativo. Como el nombre de las etiquetas sólo admite ocho
caracteres significativos la orden GOTO ETIQUETA2 llevará a la primera etiqueta empezada por ETIQUETA, en este caso ETIQUETA1.
5.
@echo off
if "%1"=="" goto Error1
if not exist %1 goto Error2
del %1
echo El fichero %1 se ha borrado
goto Final
:Error1
echo Debe especificar un fichero
goto Final
:Error2
echo El fichero %1 no existe
:Final
echo.
6. Las órdenes externas devuelven un código de salida para ser utilizado en los ficheros por lotes. Posteriormente se podrá evaluar este código
gracias a la orden If errorlevel.
7.
@echo off
echo A. Ver el directorio de A:
echo B. Ver el directorio de B:
choice Elija opción /c:ab
if errorlevel 1 if not errorlevel 2 dir a:
if errorlevel 2 if not errorlevel 3 dir b:
Índice · Arriba · Publicaciones · Saulo.Net
Puesta en práctica
Además de los ejemplos expuestos en este capítulo, en el siguiente encontrará una selección de varios ficheros por lotes. Se sugiere comentar cada uno de los
ficheros y, una vez comprendidos, introducirlos en el ordenador.
Índice · Arriba · Capítulo 11 · Publicaciones · Saulo.Net
Página 11 de 11Curso de MS-DOS Capítulo 10
28. Capítulo 11
Ficheros por lotes (II)
Índice · Capítulo 10 · Capítulo 12 · Publicaciones · Saulo.Net
11-1 Introducción
Este capítulo está dedicado a la explicación de varios ejemplos de ficheros por lotes. Este es un capítulo avanzado, pues
comprende prácticamente toda la materia estudiada durante el curso. Posiblemente necesite volver atrás en más de una
ocasión.
Normalmente los ficheros por lotes comprenden una serie de tareas que son útiles desde cualquier directorio. Lo más
normal es crear un directorio dedicado exclusivamente a los ficheros por lotes: en los ejemplos explicados se asume el
directorio C:BATH. Además, debemos introducir el directorio elegido en la ruta de acceso (variable PATH). De esta
forma podemos ejecutar cualquier fichero por lotes desde cualquier directorio del ordenador.
Como las demostraciones estudiadas a lo largo del capítulo son relativamente largas, se recomienda utilizar el Editor
del ms-dos para la creación y su posterior edición.
El primer fichero objeto de estudio es el rey de los ficheros por lotes: el AUTOEXEC.BAT. Seguidamente se estudian
sus diferencias con el resto del conjunto de ficheros por lotes y se repasan las órdenes más usuales.
Índice · Subir · Publicaciones · Saulo.Net
11-2 El fichero AUTOEXEC.BAT
Como cualquier fichero por lotes, el AUTOEXEC.BAT posee las mismas características que los demás: lleva extensión
BAT, contiene órdenes, se puede ejecutar introduciendo su nombre después del símbolo del sistema y se interrumpe su
funcionamiento si pulsamos Ctrl+Pausa. Además se añaden tres características exclusivas:
Tiene un nombre y extensión obligatorias: siempre debe llamarse AUTOEXEC.BAT
Se ejecuta cada vez que arranca el ordenador. Si no existe, ms-dos hace funcionar a tres órdenes en su lugar:
Date, Time y Ver.
Debe residir en el directorio raíz de la unidad de arranque. Por ejemplo, si arrancamos con el disco duro _es lo
más normal_ se buscará el fichero AUTOEXEC.BAT en su directorio raíz y luego, se ejecutará.
En el capítulo destinado a las variables del entorno, advertimos que estas variables se guardan en la memoria y se
pierden al apagar el ordenador. La única forma de tener unas variables del entorno fijas (PATH, PROMPT, TEMP...)
es definiéndolas en cada arranque del ordenador.
El fichero AUTOEXEC.BAT contiene además órdenes para configurar el idioma del usuario.
Página 1 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
29. Por último, suele contener unas órdenes cuya misión es cargar programas residentes en memoria. Estos programas
quedarán almacenados en memoria hasta el apagado del ordenador. Se suelen introducir como programas residentes un
anti-virus, el programa Doskey y cualquier otro.
Por tanto, el fichero AUTOEXEC.BAT debe contener estos tres módulos indispensables:
Órdenes para configurar las variables del entorno (Set, Path y Prompt).
Órdenes para seleccionar el idioma.
Órdenes para instalar programas residentes.
Ejemplo de un fichero AUTOEXEC.BAT
@ECHO OFF
SET PROMPT=$P$G
SET PATH=C:DOS;C:BATH;C:WINDOWS
SET TEMP=C:DOSTEMP
SET DIRCMD=/O:GEN
MODE CON CODEPAGE PREPARE=((850) C:DOSEGA.CPI)
MODE CON CODEPAGE SELECT=850
C:DOSKEYB SP,,C:DOSKEYBOARD.SYS
C:DOSSMARTDRV.EXE
C:DOSDRIVERSMOUSE.COM
C:DOSSHARE.EXE /L:500 /F:5100
C:DOSDOSKEY /INSERT
C:DOSVSAFE
El primer grupo de órdenes contiene la definición de variables del entorno. Recuerde que las variables PATH y
PROMPT se pueden definir con la orden Set o con unas órdenes diseñadas al efecto llamadas igualmente Path y
Prompt.
El segundo grupo de órdenes definen el español como idioma.
El tercer grupo de órdenes cargan en memoria programas residentes. Aunque suele ser suficiente poner el nombre de la
orden a secas, es habitual añadir la trayectoria del fichero delante de su nombre y la extensión detrás: de esta forma no
hay confusión posible. A continuación se colocan los parámetros.
Orden Significado
SET
PROMPT
Define el símbolo del sistema.
SET PATH Define la vía de acceso.
SET TEMP Define el directorio para ficheros temporales.
SET
DIRCMD
Define cómo queremos ver el directorio (ordenación,
formato...).
Página 2 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
30. Índice · Subir · Publicaciones · Saulo.Net
11-3 Ejemplo primero: BUSCAR.BAT
Como estudiamos en el Capítulo 6, encontramos una aplicación de la orden Dir en la búsqueda de ficheros por el disco
duro. Ocurre a menudo que creamos un fichero pero luego no lo encontramos en el directorio esperado. Generalmente,
el fichero se encontrará almacenado en otro directorio diferente. Podemos utilizar el siguiente programa para buscar un
fichero por todo el disco duro.
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
rem Programa: BUSCAR.BAT
rem Cometido: Buscar el fichero o grupo de ficheros
rem especificado como parámetro en la unidad actual.
echo.
dir %1 /b /s /p
echo.
Ejecución:
C:BATH>buscar perdido.*↵
C:PERDIDO.TXT
C:PRUEBAPERDIDO.DBF
C:TRABAJOSPERDIDO.TXT
C:BATH>
Lo verdaderamente importante en este fichero es la orden Dir. El utilizar el símbolo de directorio raíz `' antes del
parámetro es para comenzar la búsqueda desde el directorio raíz a todos los subdirectorios. De esta forma no hará falta
cambiar al raíz para hacer funcionar al programa.
Orden Significado
SMARTDRV Carga un programa de caché de disco (ver Capítulo 13).
MOUSE Carga el controlador del ratón (se suministra al adquirir un ratón).
SHARE Controla la compartición de ficheros. Es requerido por algunas
aplicaciones.
DOSKEY Instala el editor de órdenes y macros (ver Capítulo 12).
VSAFE Carga el anti-virus residente de ms-dos (ver Capítulo 17).
Página 3 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
31. El parámetro %1 se sustituirá automáticamente por el fichero o grupo de ficheros a buscar. El parámetro /b presenta el
resultado de la búsqueda en formato sencillo. El parámetro /s permite buscar el fichero en todos los subdirectorios y,
finalmente, el parámetro /p muestra por pantallas el resultado de la búsqueda.
En el ejemplo se han buscado todos los ficheros con nombre PERDIDO y se han encontrado tres.
Índice · Subir · Publicaciones · Saulo.Net
11-4 Ejemplo segundo: RELOJ.BAT
Permite mostrar la fecha y la hora del sistema. Este programa se apoya en las órdenes Date y Time de ms-dos y utiliza
lo estudiado en el Capítulo 8 para filtrar la entrada y la salida de las órdenes.
Suponga que sólo quiere ver la hora. Si ejecuta la orden Time, deberá pulsar Enter para no cambiar la hora actual.
La hora actual es 14:10:51,92
Escriba la nueva hora:↵
Este problema se soluciona si redirigimos la entrada de la orden desde un fichero, llamado RELOJ.TXT que contiene
únicamente 2 bytes: un retorno de carro (Enter) y un código de fin de fichero (Ctrl+Z).
Como la salida de la orden contiene dos líneas y sólo nos interesa la primera, podemos filtrar la salida con la orden
Find.
Para funcionar el fichero RELOJ.BAT, se necesita crear el fichero RELOJ.TXT de la siguiente forma: escribimos
COPY CON RELOJ.TXT, pulsamos Enter dos veces, pulsamos Ctrl+Z y pulsamos finalmente Enter.
C:BATH>copy con reloj.txt↵
↵
^Z↵
1 archivo(s) copiado(s)
C:BATH>
A continuación tiene el código del programa y un ejemplo de su ejecución:
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
rem Programa: RELOJ.BAT
rem Cometido: Mostrar la fecha y la hora actual en pantalla
if not exist c:bathreloj.txt goto Error
date <c:bathreloj.txt |find "actual"
Página 4 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
32. time <c:bathreloj.txt |find "actual"
goto Final:
:Error
echo ¡Falta el fichero RELOJ.TXT!
:Final
echo.
Ejecución:
C:BATH>reloj↵
La fecha actual es Mar 15/08/1995
La hora actual es 14:15:09,58
C:BATH>
En primer lugar se comprueba la existencia del fichero RELOJ.TXT en el directorio C:BATH. Si el directorio en el
que reside es otro, debemos ajustar las órdenes convenientemente. Si el fichero RELOJ.TXT no existe, el programa no
funcionará correctamente y, con el fin de evitarlo, se muestra un aviso y termina.
Si el fichero existe, se ejecutan las órdenes Date y Time. El operador `<' hace que la entrada de la orden sea el fichero
RELOJ.TXT y el filtro Find hace aparecer la línea que contiene la palabra actual.
Índice · Subir · Publicaciones · Saulo.Net
11-5 Ejemplo tercero: PROGRAMA.BAT
En muchas ocasiones, cuando un usuario recibe una aplicación desconocida, se ve obligado a buscar el fichero
ejecutable que haga funcionar la aplicación. El siguiente fichero por lotes busca todos los ficheros ejecutables
(aquellos con extensión COM, EXE o BAT) y los visualiza en pantalla.
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
rem Programa: PROGRAMA.BAT
rem Cometido: Visualizar ordenados y con pausa en cada
rem pantalla todos los ficheros ejecutables del
rem directorio actual.
set fichtemp=%temp%temporal.txt
if exist *.com dir *.com /b >%fichtemp%
if exist *.exe dir *.exe /b >>%fichtemp%
if exist *.bat dir *.bat /b >>%fichtemp%
type %fichtemp% |sort |more
del %fichtemp%
Página 5 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
33. set fichtemp=
echo.
Ejecución:
C:WP60>programa↵
CV.EXE
INSTALL.BAT
MCV.EXE
QFIGENES.EXE
VAPINUL.COM
VMP.COM
WPINFO.EXE
WP.COM
WP.EXE
C:WP60>
Este fichero por lotes necesita crear un fichero temporal para ir añadiéndole todos los ficheros con extensiones COM,
EXE o BAT. Este fichero temporal debe ser creado en el directorio destinado a este fin (variable TEMP). Por tanto se
crea otra variable llamada FICHTEMP que contiene el nombre del fichero (TEMPORAL.TXT) y su trayectoria.
Si no se utilizase el directorio definido en la variable TEMP para crear el fichero TEMPORAL, podría darse el caso de
intentar escribir en un disquete protegido contra escritura y no poder completarse la función del programa.
La primera línea If crea el fichero temporal con el nombre de los ficheros con extensión COM. La segunda línea If
añade al fichero temporal, aquellos ficheros con extensión EXE y la tercera línea If hace lo mismo con los ficheros
BAT.
La orden Type muestra todos los programas (ahora grabados en el fichero TEMPORAL.TXT) ordenados y por
pantallas.
Finalmente, la orden Del borra el fichero temporal creado y la orden Set elimina la variable del entorno creada.
Índice · Subir · Publicaciones · Saulo.Net
11-6 Ejemplo cuarto: BORRAR.BAT
Este fichero por lotes, desplaza un fichero o grupo de ficheros a un directorio llamado C:BASURA. De esta forma, si
luego necesitamos recuperar un fichero borrado, sólo hará falta buscarlo en el directorio C:BASURA. Sin embargo,
esto tiene un problema: el directorio C:BASURA crecerá y crecerá de tamaño llenando nuestro disco duro de ficheros
inservibles. Por tanto, es necesario eliminar periódicamente el contenido de este directorio.
Si le parece interesante la idea consulte la orden Undelete. Undelete detecta la orden Del de ms-dos y mueve,
igualmente, los ficheros a un directorio. Lo más importante de Undelete es la posibilidad de eliminar (realmente) los
Página 6 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
34. ficheros más antiguos almacenados de una forma automática.
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
rem Programa: BORRAR.BAT
rem Cometido: Mueve el fichero o grupo de ficheros
rem especificados a un directorio llamado
rem C:BASURA. Si no existe, lo crea.
if "%1"=="" goto Error
if not exist %1 goto Error
xcopy %1 c:basura >nul
if errorlevel 1 goto Error
del %1
echo A continuación se recuerda el estado del directorio C:BASURA
DIR C:BASURA |FIND "archivo(s)"
goto Final
:Error
echo ¡No se pudo borrar %1!
:Final
echo.
Ejecución:
C:PRUEBA>borrar *.ini↵
A continuación se recuerda el estado del directorio C:BASURA
5 archivo(s) 27.238 bytes
C:PRUEBA>
La primera orden If detecta si no se ha introducido ningún parámetro, produciendo un aviso en este caso. La segunda
orden If comprueba que el fichero para borrar exista, si no es así dará un mensaje de error.
La orden Xcopy mueve el fichero o ficheros especificados como parámetros al directorio C:BASURA. La barra
inclinada invertida detrás de BASURA se emplea para informar a Xcopy que BASURA es un directorio y no un
fichero. Si el directorio no existe, Xcopy sabrá que es un directorio y lo creará automáticamente. La salida de la orden
se ha redireccionado al dispositivo ficticio NUL. De esta forma, no aparecerá ningún mensaje producido por la orden
en la pantalla.
La siguiente línea If comprueba el código de salida. Si se ha producido un error en la copia de los ficheros, los ficheros
no se borrarán. Esto es una medida de seguridad para evitar la desaparición definitiva de los ficheros.
Página 7 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
35. La orden Del borra los ficheros del directorio actual. Ya hemos mencionado el problema de este fichero por lotes.
Como solución, se informa al usuario del número de ficheros y los bytes ocupados por todos ellos en el directorio
C:BASURA. De esta forma el usuario sabrá si debe borrar con la orden Del los ficheros del directorio BASURA.
Índice · Subir · Publicaciones · Saulo.Net
11-7 Ejemplo quinto: COPIADIR.BAT
Este programa se basa en el método para copiar un directorio que no cabe en un único disquete, en varios; explicado en
el apartado 6-3.
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
echo Este programa copia todos los ficheros del
echo directorio actual a la unidad A:
echo (si no cabe en un sólo disquete, se pedirán más)
if not exist *.* goto Error
attrib +a *.*
:Proceso
echo.
echo ** Inserte un nuevo disquete en A: Pulse Enter para proseguir
pause >nul
xcopy *.* a: /m
if errorlevel 5 goto Error
if errorlevel 4 goto Proceso
if errorlevel 1 goto Error
if errorlevel 0 goto FinCopia
echo.
echo ¡No se pudo realizar la copia!
goto final
:FinCopia
echo.
echo ¡El proceso de copia se completó con éxito!
:Final
echo.
La primera línea If detecta si el directorio actual está vacío produciendo un error. La orden Attrib enciende el bit de
archivar a todos los ficheros del directorio actual.
Página 8 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
36. Seguidamente, COPIADIR.BAT pide un primer disquete en la unidad A:, luego comienza la copia de todos los
ficheros a la unidad A:. El parámetro /m desactiva el bit de archivar a los ficheros copiados.
Las siguientes líneas If comprueban el resultado de la orden.
Las posibilidades son las siguientes: a) No hay suficiente espacio en el disco para copiar todos los ficheros. En este
caso, se pide otro disquete y se reanuda la copia donde se quedó; b) Se presionó Ctrl+Pausa u ocurrió un error de
escritura en el disco. Se produce un mensaje y finaliza; c) La copia fue correcta. Esto significa que todos los ficheros
han podido copiarse en uno o más disquetes y por tanto, se ha cumplido el objetivo del programa.
Índice · Subir · Capítulo 12 · Publicaciones · Saulo.Net
Página 9 de 9Curso de MS-DOS. Capítulo 11: Ficheros por lotes (II)
37. Capítulo 12
El programa DOSKEY
Índice · Capítulo 11 · Capítulo 13 · Publicaciones · Saulo.Net
12-1 Introducción
Doskey es un programa residente en memoria diseñado para facilitarnos la edición de anteriores líneas de órdenes y la
introducción de órdenes frecuentemente utilizadas.
Doskey guarda en memoria las últimas órdenes tecleadas y permite acceder a ellas de una forma sencilla. Además, es
capaz de crear macros. Las macros guardan un paralelismo con los ficheros por lotes pero son más sencillas y rápidas.
Este capítulo se divide en tres partes: edición de órdenes sin Doskey, edición de órdenes con Doskey y creación de
macros.
El presente capítulo es el último de esta primera parte del libro. Al final del capítulo podrá encontrar ejercicios de todo
el temario estudiado durante el curso. La segunda parte presenta una serie de capítulos prácticamente independientes
entre ellos, que le otorgarán el grado de usuario avanzado de ms-dos.
Índice · Arriba · Publicaciones · Saulo.Net
12-2 Edición de órdenes sin Doskey
Si trabaja o piensa trabajar a menudo con ms-dos, le conviene conocer algunos trucos para ahorrarse pulsaciones de
teclas. Recuerde que informática es sinónimo de velocidad.
Vamos a denominar plantilla a una región de memoria que almacena la última línea de órdenes introducida.
Repetición de la última orden
La tecla F3 copia la plantilla a partir de la posición actual del cursor.
Si la anterior orden fue:
C:VARIOS>copy a: .
podemos repetirla de nuevo si pulsamos F3
Página 1 de 7Curso de MS-DOS Capítulo 12
38. C:VARIOS>copy a: .
Cambio de un carácter de la última orden
La Flecha derecha hace aparecer los caracteres grabados en la plantilla uno a uno. Las teclas Flecha izquierda y
Retroceso eliminan el último carácter de la línea actual.
Si la última línea fue:
C:VARIOS>copy a: .
puede cambiar la letra `a' por la `b' de la siguiente forma: pulse la Flecha derecha cinco veces, luego escriba una `b' y
pulse la Flecha derecha hasta el final.
C:VARIOS>copy b: .
Suprimir un carácter
La tecla Supr elimina el carácter de la plantilla situado en la posición actual del cursor.
Si la última orden fue la siguiente (incorrecta):
C:>dir //p /w
puede eliminar la barra inclinada repetida de la siguiente forma: utilice la Flecha derecha cinco veces, pulse Supr y
luego continúe con la Flecha derecha hasta el final.
C:>dir /p /w
Insertar un carácter
La tecla Insert permite introducir caracteres en la línea actual sin sobrescribir la plantilla.
Si la última orden introducida fue
C:>dir /w /p
y deseamos introducir `*.exe' entre `dir' y `/w' debemos dar los siguientes pasos: pulsamos la Flecha derecha cuatro
veces, presionamos Insert, escribimos `*.exe' y dejamos presionada la Flecha derecha hasta el final.
Página 2 de 7Curso de MS-DOS Capítulo 12
39. C:>dir *.exe /w /p
Puede que en muchas ocasiones prefiera repetir la nueva línea e ignorar lo explicado hasta el momento. Sin embargo,
estos procedimientos resultan muy útiles al trabajar con líneas de órdenes largas y complejas.
Índice · Arriba · Publicaciones · Saulo.Net
12-3 Edición de órdenes con Doskey
El programa Doskey amplia las posibilidades de edición estándares del ms-dos. No sólo es capaz de recordar la última
orden introducida, Doskey almacena una gran cantidad de ellas.
Por defecto, Doskey reserva 512 bytes como almacén de últimas órdenes. Por término medio, esto significa un almacén
para unas 50 órdenes.
Para instalar el programa, escriba DOSKEY a continuación del símbolo del sistema. A partir de ese instante, Doskey
permanecerá en la memoria del ordenador, facilitando las tareas de repetición y edición de anteriores órdenes.
Recuperar una orden
Existen tres procedimientos para recuperar una orden tecleada con anterioridad.
Flecha arriba y Flecha abajo. En cada pulsación de la Flecha arriba aparecerá la orden anteriormente tecleada a
la actual. Y en cada pulsación de Flecha abajo, la orden posterior.
Pulsar la tecla F7 para ver una lista con todas las órdenes almacenadas en memoria y sus respectivos números.
Luego, pulsamos F9 e indicamos el número de línea de órdenes a recuperar.
Introducir los primeros caracteres de la orden y pulsar F8. Doskey mostrará la primera orden que empiece de
esta forma. Para ver más, pulsamos repetidamente la tecla F8.
Teclas de uso frecuente
La siguiente tabla explica las teclas de uso frecuente reconocidas por Doskey.
Teclas Utilidad
Flecha arriba Muestra la orden anterior a la actual.
Flecha abajo Muestra la orden posterior a la actual.
RePag Muestra la primera orden almacenada.
AvPag Muestra la última orden almacenada.
Página 3 de 7Curso de MS-DOS Capítulo 12
40. Sintaxis
Puede personalizar el funcionamiento de Doskey si utiliza sus parámetros al instalarlo. Su sintaxis es:
DOSKEY [/REINSTALL] [/BUFSIZE=bytes] [/HISTORY]
[/INSERT | /OVERSTRIKE]
Flecha derecha Desplaza el cursor un carácter a la derecha.
Flecha izquierda Desplaza el cursor un carácter a la izquierda (no borra).
Ctrl+Flecha
derecha
Desplaza el cursor una palabra a la derecha.
Ctrl+Flecha
izquierda
Desplaza el cursor una palabra a la izquierda.
Inicio Desplaza el cursor al primer carácter de la línea.
Fin Desplaza el cursor al último carácter de la línea.
Esc Borra la línea actual
Supr Borra el carácter situado en el lugar del cursor.
Retroceso Borra el carácter situado a la izquierda del cursor.
Ins Cambia el modo de edición (insertar-sobrescribir)
F7 Muestra numeradas todas las órdenes almacenadas.
F8 Busca en el almacén todas las órdenes cuyos primeros caracteres coincidan con los tecleados.
F9 Pide el número de orden y la muestra en pantalla.
Alt+F10 Elimina las macros definidas.
Modificador Descripción
/REINSTALL Instala una nueva copia del programa. Se emplea para cam-biar el tamaño del almacén sin reiniciar
el ordenador. Utilice lo menos posible este parámetro, pues cada copia instalada ocupa memoria.
/BUFSIZE=bytes Reserva los bytes especificados para guardar órdenes y macros. El valor por defecto es 512 y el
mínimo 256.
/HISTORY Muestra todas las órdenes almacenadas.
/INSERT Establece el modo de insertar como modo por defecto.
/OVERSTRIKE Establece el modo sobrescribir como modo por defecto. Si no se especifica ni el
parámetro /INSERT ni /OVERSTRIKE se toma OVERSTRIKE.
Página 4 de 7Curso de MS-DOS Capítulo 12
41. Índice · Arriba · Publicaciones · Saulo.Net
12-4 Creación de macros
Una macro es un conjunto de una o más órdenes que se ejecutarán de manera automática. Son similares, por tanto, a
los ficheros por lotes. Sin embargo, cada macro debe caber en una sola línea y además, se almacenan en la memoria
con un nombre identificativo.
Guardarse en la memoria lleva consigo una mayor rapidez de ejecución; pero también, una disminución de memoria
libre y la pérdida de las macros al apagarse el ordenador.
Para ejecutar una macro se introduce su nombre a continuación del símbolo del sistema seguido de los posibles
parámetros que soporte.
Nota: No se puede ejecutar una macro desde un fichero por lotes.
Una vez que hemos instalado Doskey, utilizamos la siguiente sintaxis para trabajar con macros:
DOSKEY [[NombreMacro=]valor] [/MACROS]
El valor de una macro admite nombres de órdenes con sus respectivos parámetros y, además, unos caracteres especiales
precedidos del signo dolar ($).
Aplicaciones:
Crear una macro para formatear rápidamente el disquete en A:
C:>doskey rapid=format a: /q
(Después de introducir esta macro, escribir `rapid' será equivalente a escribir `format a: /q')
Crear una macro para dar un formato rápido al disquete especificado.
Símbolo Descripción
$1 a $9 Son los parámetros agregados detrás del nombre de la macro. Es similar a los símbolos %1 al %9
en los ficheros por lotes.
$* Hace referencia a todos los parámetros agregados detrás de la macro.
$T Separador de órdenes
$G Operador >
$G$G Operador >>
$L Operador <
$B Operador |
Página 5 de 7Curso de MS-DOS Capítulo 12
42. C:>doskey rapid $1=format $1 /q
Crear una macro para ver un fichero por pantallas.
C:>doskey ver $1=more $L$1
Crear una macro para crear un directorio y entrar en él.
C:>doskey mc $1=md $1$Tcd $1
Borrar una macro.
C:>doskey mc=
Ver todas las macros.
C:>doskey /macros
Crear un fichero con todas las macros.
C:>doskey /macros >macros.txt
Ejercicios de autocomprobación
1. ¿En qué ocasión no es conveniente instalar el programa Doskey?
2. Qué tecla repite la última orden introducida en cada caso:
a) sin Doskey.
b) con Doskey instalado.
3. ¿Qué tecla se pulsa para consultar el almacén de órdenes de Doskey?
4. Explique las diferencias entre una macro y un fichero por lotes.
Índice · Arriba · Publicaciones · Saulo.Net
Clave de los ejercicios de autocomprobación
1. Cuando el ordenador no disponga de mucha memoria.
2. a) F3
b) Flecha arriba
Página 6 de 7Curso de MS-DOS Capítulo 12
43. 3. La tecla F7
4. El código de un fichero por lotes, como indica su nombre, se almacena en un fichero. Admite, por
tanto, cualquier tamaño. En cambio, una macro solamente tiene una línea y su almacenamiento se
realiza en memoria.
Índice · Arriba · Publicaciones · Saulo.Net
Puesta en práctica
Introduzca en su fichero AUTOEXEC.BAT de su ordenador una línea de órdenes que instale el programa Doskey al
arrancar su equipo. Utilice los parámetros necesarios para establecer el modo de insertar como modo por defecto y
reserve 300 bytes para guardar órdenes y macros.
Pautas para la resolución en el ordenador:
C:>edit autoexec.bat
En este momento aparece en pantalla un fichero similar al siguiente:
@ECHO OFF
SET PROMPT=$P$G
SET PATH=C:DOS;C:TRABAJOSBATH
SET TEMP=C:DOSTEMP
SET DIRCMD=/O:GEN
MODE CON CODEPAGE PREPARE=((850) C:DOSISO.CPI)
MODE CON CODEPAGE SELECT=850
LH C:DOSKEYB SP,,C:DOSKEYBOARD.SYS
C:DOSSMARTDRV.EXE 6000 2024
Añada la línea de órdenes:
C:DOSDOSKEY /INSERT /BUFSIZE=300
Grabe las modificaciones con el comando "Guardar" del menú "Archivo".
Abandone el Editor con el comando "Salir" del menú "Archivo".
Reinicie el ordenador.
Índice · Arriba · Capítulo 13 · Publicaciones · Saulo.Net
Página 7 de 7Curso de MS-DOS Capítulo 12
44. Capítulo 13
La memoria
Índice · Capítulo 12 · Capítulo 14 · Publicaciones · Saulo.Net
13-1 Introducción
En este capítulo se explica uno de los temas más conflictivos entre los usuarios de ms-dos: la memoria del ordenador. Se
ha dividido en dos partes claramente diferenciadas: explicación de los diferentes tipos de memoria y análisis de las
órdenes de ms-dos relacionadas con la gestión de memoria.
A efectos prácticos encontrará de utilidad las siguientes herramientas:
SMARTDRV.EXE. Crea un caché de disco en memoria. De esta forma se ahorran accesos al disco duro y se
acelera notablemente el rendimiento global del sistema. Aunque este programa es situado automáticamente en el
AUTOEXEC al instalar ms-dos, aprenderá a configurarlo adecuadamente para su equipo.
RAMDRIVE.SYS. Crea una unidad de disco RAM en memoria. Un disco RAM se comporta como cualquier otra
unidad de disco, es decir, para referirnos a ella utilizamos una letra del alfabeto. Podemos crear directorios,
ficheros, etc. Su ventaja es la impresionante velocidad al leer o escribir datos. Sin embargo, ocupa la siempre
escasa memoria del ordenador y su contenido se pierde al desconectarlo.
MEMMAKER. Optimiza la memoria del sistema. Su objetivo principal es liberar la mayor cantidad de memoria
convencional. La razón es simple: todos los programas de aplicación basados en ms-dos utilizan esta memoria.
Índice · Arriba · Publicaciones · Saulo.Net
13-2 Memoria ROM y memoria RAM
La primera gran clasificación de la memoria de un ordenador la divide en ROM (Read Only Memory) y RAM (Random
Acces Memory).
Memoria ROM
Es memoria no volátil de sólo lectura.
No volátil. Su contenido no se pierde nunca, aún apagado el ordenador.
De sólo lectura. El usuario no puede alterar el contenido de la ROM.
En esta memoria se encuentran los programas que toman el control al encender el ordenador, realizan un chequeo del
sistema y finalmente buscan un sistema operativo para ejecutarlo.
Página 1 de 12Curso de MS-DOS Capítulo 13
45. Un elemento de suma importancia en el funcionamiento de un ordenador reside en la memoria ROM: la BIOS (Basic
Input Output System: Sistema básico de entrada y salida). La ROM-BIOS engloba un conjunto de sencillas rutinas para
gestionar la pantalla, teclado, discos... Como vemos, el sistema operativo junto con la BIOS es el encargado de
desarrollar las operaciones más básicas del ordenador.
Memoria RAM
Es memoria volátil de lectura y escritura.
Volátil. Su contenido se pierde al desconectar el ordenador.
De lectura y escritura. Es una memoria de trabajo: el usuario lee y escribe en ella tantas veces como quiera.
La memoria RAM es el elemento central en el funcionamiento de un ordenador. Internamente, toda la información del
ordenador tiene paso obligado por la memoria RAM. Para ejecutar cualquier programa, éste debe copiarse previamente a
la memoria.
Por estas razones la memoria que nos interesa es la RAM: a partir de ahora utilizaremos el término memoria para
referirnos a la memoria RAM.
El siguiente gráfico representa el funcionamiento general de un ordenador: cualquier dato introducido por teclado se
coloca en memoria. El microprocesador toma los datos de la memoria, los procesa y devuelve el resultado al mismo
lugar. Posteriormente pueden ser almacenados en el disco o visualizados en pantalla.
Índice · Arriba · Publicaciones · Saulo.Net
13-3 Tipos de memoria RAM
Página 2 de 12Curso de MS-DOS Capítulo 13
46. Aunque toda la memoria es igual, según su lugar en el mapa de memoria adquiere diversos nombres. Cada programa
necesita uno o varios tipos de memoria. Por esta razón debemos aprender a configurar el ordenador de acuerdo a los
requerimientos de cada aplicación.
Memoria convencional
Comprende la porción entre 0K y 640K. Esta memoria es aprovechada sin problemas por la totalidad de órdenes del
sistema y las aplicaciones. Debido a ciertas limitaciones del microprocesador y del propio ms-dos, otras zonas de
memoria tienen un acceso mucho más difícil. Por tanto, todos los programas que admitan otro tipo de memoria, deben
trasladarse para conseguir la mayor cantidad posible de memoria convencional. La zona entre 0K y 64K se denomina
también memoria baja.
Memoria superior
Es la zona situada entre los 640K y los 1024K (1Mb). Esta memoria es aprovechada principalmente por el sistema.
Como la memoria ROM es lenta, se suelen copiar a esta zona, las rutinas de la ROM-BIOS y así conseguir una
velocidad global mucho mayor. También se utiliza para almacenar los caracteres impresos en la pantalla en cada
momento.
Sin embargo, los programadores del dos advirtieron que los datos del sistema no ocupan la totalidad de esta memoria. A
partir de la versión 5.0 de ms-dos se pueden cargar controladores y programas residentes en los bloques libres de
memoria superior.
Controlador de dispositivo.— Programa que comunica el ms-dos con un dispositivo hardware (impresora,
ratón, tarjeta de sonido...). Se suele instalar agregando una línea Device al fichero CONFIG.SYS o
Devicehigh para instalarlo en memoria superior.
Programa residente (TSR).— Programa que permanece en memoria después de ejecutarse. Para
instalarlo en memoria superior se utiliza la orden Lh.
Fichero CONFIG.SYS .— Es un fichero de texto ASCII que contiene una serie de órdenes especiales para
configurar el ordenador (Ver Capítulo 18). Este fichero debe encontrarse en el directorio raíz de la unidad
de arranque. Al cargarse el MS-DOS primero se ejecuta el CONFIG.SYS y luego el AUTOEXEC.BAT.
Memoria alta
Es la memoria comprendida entre 1024K y 1088K. Esta zona de apenas 64K se puede aprovechar para instalar el núcleo
del ms-dos y ahorrar memoria convencional (Ver más adelante la orden Dos de CONFIG.SYS).
Página 3 de 12Curso de MS-DOS Capítulo 13
47. Memoria expandida
Es una técnica software utilizada para acceder a la memoria por encima de 1 Mb. Para emplear memoria expandida se
precisa un administrador de memoria expandida. Como las aplicaciones sólo son capaces de acceder a la memoria
inferior de 1Mb, el administrador se encarga de copiar, según se necesiten, los datos por encima de 1Mb a un marco de
página de 64K situado en memoria superior.
Como solamente se puede trabajar con 64K de información a la vez, es necesario copiar continuamente datos desde la
memoria expandida (más de 1Mb) a la memoria superior y viceversa. Otra solución más rápida y eficiente es la llamada
memoria extendida.
Memoria extendida
Es la memoria por encima de 1Mb. Para poder alcanzar esta región, el microprocesador debe trabajar en un modo
llamado modo protegido. Aunque el ms-dos, no es capaz de operar en este modo, la mayoría de las aplicaciones sobre
ms-dos emplean diversas técnicas para acceder a memoria extendida.
Es necesario un administrador de memoria extendida como HIMEM.SYS para habilitar esta memoria.
Nota: El usuario debe revisar los requerimientos de sus aplicaciones para comprobar si necesita memoria
extendida o expandida.
Índice · Arriba · Publicaciones · Saulo.Net
13-4 Configurar los tipos de memoria
Habilitar memoria extendida y alta
Para utilizar la memoria extendida y la alta es necesario introducir la siguiente línea en el fichero CONFIG.SYS:
DEVICE=C:DOSHIMEM.SYS
Esta línea debe colocarse delante de aquellas líneas de órdenes que precisen memoria extendida. Al instalar ms-dos, se
coloca automáticamente la orden anterior en la primera línea del CONFIG.SYS.
Habilitar memoria superior y expandida
El controlador EMM386.EXE puede habilitar la memoria superior, la expandida o ambas. Este controlador precisa
situarse en el fichero CONFIG.SYS detrás del controlador HIMEM.SYS.
Página 4 de 12Curso de MS-DOS Capítulo 13
48. Las siguientes entradas preparan los bloques de memoria superior para su posterior uso:
DEVICE=C:DOSEMM386.EXE NOEMS
DOS=UMB
La siguiente entrada toma memoria extendida para simular expandida cuando sea necesario.
DEVICE=C:DOSEMM386.EXE
Las siguientes entradas habilitan los bloques de memoria superior y toman memoria extendida para simular expandida
cuando sea necesario.
DEVICE=C:DOSEMM386.EXE RAM
DOS=UMB
Notas: No prepare memoria expandida a menos que una aplicación se lo indique. La memoria superior es
recomendable habilitarla.
La orden DOS de CONFIG.SYS
Indica el lugar donde se cargará el núcleo del ms-dos y prepara la memoria superior para cargar controladores y
programas residentes.
Aplicaciones:
Cargar ms-dos en memoria convencional y no habilitar memoria superior. Al ser la configuración por defecto, no
se introduce ninguna orden.
Cargar ms-dos en memoria alta y no habilitar memoria superior. Se introduce la siguiente línea en cualquier lugar
del CONFIG.SYS:
DOS=HIGH
Cargar ms-dos en memoria convencional y habilitar memoria superior.
DOS=UMB
Cargar ms-dos en memoria alta y habilitar memoria superior. Esta posibilidad es la más recomendable.
DOS=HIGH,UMB
Ejemplos de configuración
¿Cuáles son las órdenes necesarias para un fichero CONFIG.SYS en cada caso?
Página 5 de 12Curso de MS-DOS Capítulo 13
49. Cargar ms-dos en memoria convencional y habilitar memoria extendida.
DEVICE=C:DOSHIMEM.SYS
Cargar ms-dos en memoria alta y habilitar memoria superior.
DEVICE=C:DOSHIMEM.SYS
DEVICE=C:DOSEMM386.EXE NOEMS
DOS=HIGH,UMB
Cargar ms-dos en memoria alta y habilitar las memorias superior y expandida.
DEVICE=C:DOSHIMEM.SYS
DEVICE=C:DOSEMM386.EXE RAM
DOS=HIGH,UMB
Índice · Arriba · Publicaciones · Saulo.Net
13-5 Aprovechar la memoria superior
Recordemos los tres requerimientos necesarios para preparar la memoria superior:
1. Instalar HIMEM.SYS
2. Instalar EMM386.EXE
3. Introducir una orden Dos que contenga el parámetro UMB.
Instalar un controlador en memoria superior
Los controladores se suelen configurar en el fichero CONFIG.SYS mediante órdenes Device. Sin embargo, Device los
instala en memoria convencional. Para instalar un controlador en memoria superior debemos cambiar Device por
Devicehigh. Ejemplo:
DEVICEHIGH=C:DOSANSI.SYS
Esta orden del CONFIG.SYS carga en memoria superior el controlador ANSI.SYS situado en el directorio C:DOS.
Instalar un programa residente en memoria superior
Generalmente los programas residentes en memoria se inician desde el fichero AUTOEXEC.BAT. Es habitual, además,
especificar la trayectoria completa del programa para evitar confusiones. Por ejemplo:
Página 6 de 12Curso de MS-DOS Capítulo 13
50. C:DOSDRIVERSMOUSE.COM
Para cargar el programa anterior en la memoria superior, se utiliza la orden Lh.
LH C:DOSDRIVERSMOUSE.COM
Notas: Algunos controladores y programas residentes no admiten cargarse en memoria superior. Otros se
cargan en memoria superior aunque no se utilicen las órdenes estudiadas (por ejemplo, SMARTDRV.EXE).
Si se intenta cargar un controlador o programa en memoria superior pero está totalmente ocupada, se
cargará de forma automática en memoria convencional.
El mensaje "Archivo comprimido alterado"
Es posible que si utiliza las órdenes Devicehigh y Lh llegue a liberar una gran cantidad de memoria convencional. Sin
embargo, hay algunos programas que no pueden ejecutarse en memoria baja (de 0K a 64K) y producen el error "Archivo
comprimido alterado". En estas ocasiones utilice la orden Loadfix para forzar la ejecución del programa por encima de
los primeros 64K de memoria.
Por ejemplo, para ejecutar el programa GAME.EXE introduzca lo siguiente:
A:>loadfix game.exe
Índice · Arriba · Publicaciones · Saulo.Net
13-6 La orden MEM
Muestra la memoria usada y disponible en el ordenador. Su sintaxis es la siguiente:
MEM [/C | /D | /F | /M programa] [/P]
Utilice los modificadores /D y /P conjuntamente para conocer la cantidad de memoria utilizada por cada elemento
instalado. De esta forma puede conocer con detalle la cantidad de memoria utilizada por cada programa y decidir si
merece la pena tal gasto. Si desea optimizar su memoria adecuadamente pruebe con diversas configuraciones en los
Parámetro Descripción
/C Presenta una lista de aquellos programas cargados actualmente en memoria, indicando la memoria
convencional y superior usada por cada uno.
/D Informa acerca de los programas y controladores cargados actualmente en memoria. Proporciona
amplia información técnica sobre cada uno.
/F Ofrece una relación detallada de los bloques libres existentes en memoria convencional y superior.
/M programa Muestra la memoria usada actualmente por un programa.
/P Muestra la información de salida con pausa en cada pantalla. Puede usarse con cualquier
modificador anterior.
Página 7 de 12Curso de MS-DOS Capítulo 13
51. ficheros CONFIG.SYS y AUTOEXEC.BAT y luego, observe el gasto de memoria en cada caso con la orden Mem.
La orden Mem sin parámetros ofrece un listado similar al siguiente:
D:>mem
Tipo de memoria Total = Usada + Libre
---------------- ------- ------- -------
Convencional 640K 28K 612K
Superior 111K 82K 29K
Reservada 384K 384K 0K
Extendida (XMS) 7,057K 6,221K 836K
---------------- ------- ------- -------
Memoria total 8,192K 6,715K 1,477K
Total menor 1 MB 751K 110K 641K
Programa ejecutable más extenso 612K (626,880 bytes)
Bloque memoria superior más extenso 13K (13,184 bytes)
MS-DOS reside en el área de memoria alta.
D:>
En este ejemplo, observamos la distribución de memoria en un ordenador con 8Mb totales. El apartado "Memoria
Superior" hace referencia, en realidad, a los bloques libres de memoria superior. Como sabemos la memoria superior es
de 384K, pero en este caso solamente se pueden aprovechar como máximo 111K.
El apartado "Memoria Reservada" aparece en otras versiones de ms-dos como "Adaptador RAM/ROM". Hace referencia
a una zona de memoria empleada íntegramente por rutinas del sistema. Aquí se incluye la copia de la ROM-BIOS sobre
memoria RAM.
Finalmente, en "Extendida" se indica la restante memoria hasta completar los 8Mb del ordenador en cuestión.
La línea "Total menor 1 MB" es la suma entre "Memoria Convencional" y "Memoria Superior".
Las línea «Programa ejecutable más extenso» muestra la memoria convencional libre. Esta cifra es decisiva para
conocer si un programa puede ejecutarse o no. Aunque un ordenador tenga 32Mb totales de memoria, si la convencional
está totalmente ocupada, las aplicaciones darán un mensaje de memoria insuficiente.
La última línea ofrece información sobre la memoria alta. Observe que no hay forma de conocer cuánta memoria alta
hay ocupada y cuánta libre.
Índice · Arriba · Publicaciones · Saulo.Net
13-7 Crear un caché de disco
Un caché de disco es una zona de memoria intermedia entre el ordenador y los discos. Si trabaja con programas de
aplicación, observará como ms-dos invierte cierto tiempo en leer o escribir en el disco duro.
Página 8 de 12Curso de MS-DOS Capítulo 13
52. Un caché de disco de lectura evita que ms-dos lea dos veces en disco la misma información en intervalos cortos
de tiempo.
Un caché de disco de escritura retarda la grabación de datos en el disco cuando el ordenador tiene mucho trabajo
y aprovecha los momentos de menor actividad para ir guardando los datos en el disco.
Veámoslo más claro con un ejemplo. Un usuario trabaja frecuentemente en una base de datos y precisa consultar y
cambiar continuamente unos mismos datos. Si el usuario necesita abrir un fichero, ms-dos lo busca el disco, lo copia en
el caché y luego se lo ofrece a la aplicación. Si posteriormente, dicha persona necesita abrir el mismo fichero, ms-dos se
ahorrará volver a leerlo en el disco porque ya se encuentra almacenado en memoria.
Lógicamente, el mayor o menor rendimiento de un caché de disco viene definido por la cantidad de memoria destinada.
Cuanta más memoria se dedique al caché, mayor número de informaciones del disco se podrán almacenar.
SMARTDRV
El programa proporcionado por ms-dos como caché de disco se denomina Smartdrv. Para instalarlo se utiliza la
siguiente sintaxis:
SMARTDRV [[unidad[+|-]]...] [TamañoCachéInicial [TamañoCachéWin]]
[/E:TamañoElemento] [/B:TamañoBúfer]
[/C] [/R] [/F] [/N] [/L] [/Q] [/S]
Después de la instalación podemos usar desde el símbolo del sistema la siguiente sintaxis:
SMARTDRV [[unidad[+|-]]...]] [/C] [/R] [/S]
Parámetro Explicación
unidad Es la letra de unidad la cual estamos definiendo. Después de la unidad puede estar el signo más (+),
el signo menos (-) o ninguno de los dos. Incluyendo el signo más, se habilita el caché de lectura y
escritura. Sin colocar ningún signo detrás de la unidad, se habilita el caché de lectura
exclusivamente y colocando un signo menos se elimina el caché para la unidad. Si no especifica
ninguna unidad, Smartdrv revisará sus unidades de disco y decidirá por usted.
TamCachéIni Especifica el tamaño del caché en kilobytes. Si no utiliza este parámetro, Smartdrv lo establecerá
automáticamente según nuestro equipo. Si su memoria es igual o superior a 4Mb seguramente le
interesará aumentar el caché. Si una aplicación precisa memoria y el ordenador no dispone de ella,
Smartdrv reduce el caché y cede memoria a la aplicación. Por consiguiente, podemos crear un gran
caché con la seguridad que la memoria especificada queda a disposición de las aplicaciones.
TamCachéWin Especifica el tamaño mínimo del caché al que las aplicaciones podrán reducirlo. Al utilizar
Windows 3.1 ó 3.11, el caché se reduce automáticamente al mínimo.
/E:TamElem Indica la cantidad de bytes que Smartdrv puede mover a la vez. Los valores válidos son 1024, 2048,
4096 y 8192. El valor por defecto es 8192.
/B:TamBúfer
Especifica el tamaño en bytes del búfer. El búfer es información adicional leída en cada acceso al
disco. Si se pide leer 16384 bytes del disco duro y el búfer es de 8192 bytes, ms-dos leerá la
Página 9 de 12Curso de MS-DOS Capítulo 13
53. Tenga precaución si utiliza el caché de escritura con alguna unidad. Antes de apagar el ordenador debe salir siempre al
símbolo del sistema. Ahora bien, la forma de comportarse de Smartdrv depende de la versión de ms-dos instalada:
Si tiene instalada la versión 6.0 le conviene utilizar SMARTDRV /C o pulsar Ctrl+Alt+Supr antes de apagar su
ordenador. Si no sigue uno de estos procedimientos se arriesga a perder información no grabada al disco.
Si tiene instalada la versión 6.2 o superior no es necesario seguir estos procedimientos (a no ser que utilice el
modificador /N). Cuando el símbolo del sistema aparezca en pantalla es señal de haber escrito la totalidad de los
datos al disco. Entonces, puede apagar el ordenador con total seguridad.
Lo normal es instalar Smartdrv en el fichero AUTOEXEC.BAT. Para calcular el tamaño de caché ideal deberá realizar
diversas pruebas en su sistema. En primer lugar, ejecute Smartdrv sin especificar el tamaño del caché y luego escriba
SMARTDRV /S para averiguar cuáles son las cantidades por defecto sugeridas para su sistema.
Al especificar el parámetro /S Smartdrv presenta los aciertos y los fallos de su caché. Se produce un acierto cuando se
ahorra un acceso al disco y un fallo cuando la información no se encuentra en el caché y debe buscarse en el disco.
Probando diversas configuraciones y utilizando el parámetro /S podrá calcular la configuración óptima para su
ordenador.
Ejemplos:
La siguiente línea insertada en el autoexec.bat, crea un caché de disco de 2 Mb de memoria extendida. Como
tamaño mínimo de caché se establece 1 Mb. Como no se especifican unidades, el caché para el disco duro será de
lectura/escritura y para los disquetes de sólo lectura.
C:DOSSMARTDRV.EXE 2048 1024
La siguiente línea insertada el autoexec.bat, crea un caché de disco en memoria extendida de 5 Mb. Como tamaño
mínimo se establecen 2 Mb. Se habilita el caché de lectura en la unidad C: y se deshabilita el caché en la unidad
D:
C:DOSSMARTDRV.EXE C D- 5120 2048
información pedida y además los 8192 bytes situados detrás. El tamaño por defecto del búfer es
16384 bytes.
/C Escribe toda la información del caché en el disco duro.
/R Borra el contenido del caché existente y reinicia Smartdrv.
/F Escribe los datos del caché antes de mostrar el símbolo del sistema. Este modificador sólo es válido
para las versiones de Smartdrv suministradas con ms-dos 6.20 y 6.22. Este es el valor por defecto en
estas versiones.
/N Escribe los datos del caché durante la inactividad del sistema. Al regreso del símbolo del sistema, no
todos los datos del caché han sido escritos. Este modificador sólo es válido para las versiones de ms-
dos 6.20 y 6.22. Sin embargo, éste es el valor por defecto en la versión 6.0 de ms-dos.
/L Carga Smartdrv en memoria convencional. Si no se especifica se carga en memoria superior.
/V Muestra mensajes al iniciarse Smartdrv.
/Q No muestra mensajes al iniciarse Smartdrv. Es la opción por defecto.
/S Presenta el estado de Smartdrv.
Página 10 de 12Curso de MS-DOS Capítulo 13
54. Índice · Arriba · Publicaciones · Saulo.Net
13-8 Crear un disco RAM
Un disco RAM es una unidad "de disco" creada en memoria.
Es una unidad. Es decir, se comporta como otra unidad de disquete o disco duro. Al crear un disco RAM se le
adjudica la siguiente letra libre de unidad. A partir de ese momento se pueden crear y borrar ficheros de la forma
habitual.
En memoria. Al crearse en memoria lleva consigo una enorme rapidez al acceder a los datos contenidos. Pero
también supone una disminución de la memoria libre. Recuerde además que la memoria RAM es volátil: los datos
guardados deberán copiarse a un lugar permanente antes de apagar el ordenador.
En realidad, un disco RAM responde a necesidades muy concretas: ordenadores con mucha memoria, programadores,
etc. Como generalmente la memoria RAM es un bien escaso -y caro- puede resultar más interesante crear un gran caché
de disco antes de un disco RAM.
RAMDRIVE.SYS
Para crear un disco RAM se utiliza el controlador RAMDRIVE.SYS. Debe instalarse en el CONFIG.SYS mediante una
orden Device. Su sintaxis es:
DEVICE=RAMDRIVE.SYS
[TamañoDisco [TamañoSector [NúmEntradas]]] [/E|/A]
Ejemplos:
Para crear un disco RAM de 1Mb en memoria extendida, introduzca la siguiente línea en el fichero CONFIG.SYS.
DEVICE=C:DOSRAMDRIVE.SYS 1024 /E
Parámetro Explicación
TamañoDisco Tamaño en Kb del disco RAM. El tamaño por defecto es de 64K y el máximo es 32767K (32Mb) si
su ordenador tiene más de 32Mb de memoria.
TamañoSector Tamaño del sector en bytes. Se admiten los valores de 128, 256 y 512 bytes. El tamaño por defecto
es 512 bytes.
NúmEntradas Número de entradas admitidas en el directorio raíz del disco RAM. Los valores válidos son de 2
hasta 1024.
/E La unidad RAM se crea en memoria extendida.
/A La unidad RAM se crea en memoria expandida.
Página 11 de 12Curso de MS-DOS Capítulo 13
55. Para crear un disco RAM de 2Mb en memoria expandida y un número máximo de entradas en el directorio raíz de 20,
introduzca la siguiente línea en el fichero CONFIG.SYS
DEVICE=C:DOSRAMDRIVE.SYS 2048 512 20 /A
Índice · Arriba · Publicaciones · Saulo.Net
13-9 El programa MEMMAKER
Con los conocimientos adquiridos en este capítulo, usted ya es capaz de configurar la memoria de su ordenador de una
forma adecuada. Sin embargo, puede optar por una configuración automática.
En esencia, el programa Memmaker modifica los ficheros CONFIG.SYS y AUTOEXEC.BAT con objeto de liberar la
mayor cantidad de memoria convencional. Para ello habilita la memoria superior y desplaza aquellos programas que lo
permitan desde la memoria convencional a la superior.
Para ejecutar el programa Memmaker, reinicie su ordenador y luego escriba MEMMAKER a continuación del símbolo
del sistema.
Este programa posee una completa ayuda en pantalla que le guiará en cada momento. Si desea más información pulse la
tecla F1. Para completar la optimización de memoria, Memmaker deberá reiniciar su ordenador un par de veces.
Finalmente, el programa presentará una pantalla indicando los cambios efectuados en memoria.
Si por alguna razón, su ordenador se bloquea al arrancar el sistema operativo, debe conocer las siguientes teclas:
F5. Si pulsa la tecla F5 mientras se presenta en pantalla el mensaje "Iniciando MS-DOS...", se le pedirá
confirmación antes de ejecutar cada orden del CONFIG.SYS y del AUTOEXEC.BAT. Así, puede encontrar la
orden que produce el bloqueo.
F8. Si pulsa la tecla F8 mientras aparece el mensaje anterior, se omitirán los ficheros CONFIG.SYS y
AUTOEXEC.BAT.
Para restaurar los cambios efectuados por Memmaker, escriba lo siguiente a continuación del símbolo del sistema (si
pulsa F8 al arrancar el ordenador, la vía de acceso no se define y debe cambiar antes al directorio C:DOS):
C:>cd dos
C:DOS>memmaker /undo
Índice · Arriba · Capítulo 14 · Publicaciones · Saulo.Net
Página 12 de 12Curso de MS-DOS Capítulo 13
56. Capítulo 14
Los discos del DOS
Índice · Capítulo 13 · Capítulo 15 · Publicaciones · Saulo.Net
14-1 Introducción
Este capítulo muestra cómo graba ms-dos la información en los discos. Explica detalladamente cada una de las divisiones físicas
propias de todo disco (caras, pistas, sectores) así como la estructura lógica creada por ms-dos al formatear un disco (sector de
arranque, FAT, directorio raíz, área de datos).
Además, el capítulo es especialmente interesante por las órdenes Chkdsk y Scandisk. Estas órdenes de conocimiento
imprescindible solucionan los errores producidos en un disco. Le conviene aprender a solucionar posibles problemas en su disco
duro, pues se producen a menudo y pueden llegar a inutilizar el disco.
Índice · Subir · Publicaciones · Saulo.Net
14-2 El sistema de disco
El sistema de disco permite leer y grabar información de forma permanente. Esta formado por:
El disco. Dispositivo magnético que almacena la información.
La unidad de disco. Dispositivo mecánico que mueve las cabezas de lectura y escritura para acceder a toda la superfice del
disco.
La controladora de disco. Dispositivo electrónico que transforma las peticiones del sistema operativo en movimiento de la
unidad de disco.
En los discos duros, el disco y la unidad de disco forman un solo cuerpo cerrado herméticamente. No se puede utilizar más de un
disco para la misma unidad de disco duro.
Por el contrario, las unidades de disco flexible y compacto admiten diversos discos para la misma unidad.
Las unidades de disco flexible se corresponden con los tipos de disquetes existentes: 5¼ DD, 5¼ HD, 3½ DD, 3½ HD y 3½ ED.
Cada una de estas unidades admite el disquete indicado en su nombre y los inferiores de su mismo tamaño. Es decir, una disquetera
de 3½ HD trabaja con discos de 3½ HD y 3½ DD. En cambio, una disquetera de 5¼ DD solamente admite discos de 5¼ DD.
Disquetera.— Unidad de disco flexible.
Disquete.— Disco flexible y su funda protectora.
El siguiente cuadro muestra los discos admitidos por cada unidad de disco flexible:
Página 1 de 14Curso de MS-DOS Capítulo 14
57. Las unidades de disco compacto se clasifican según su velocidad de acceso a una información (en milisegundos) y su velocidad de
transferencia. La velocidad de transferencia de datos entre el disco compacto y el ordenador se rige por la siguiente tabla:
Aunque es necesaria una controladora de disco para cada unidad, generalmente se comercializan tarjetas con varias controladoras
integradas. El caso más común son tarjetas controladoras (se conectan a la placa base y unidades de disco) para dos unidades de
disco flexible y dos unidades de disco duro. Sin embargo, la tendencia actual es incorporar las controladoras en la propia placa
base. Las unidades de disco compacto se conectan como segundo disco duro o bien, a una tarjeta controladora propia.
Índice · Subir · Publicaciones · Saulo.Net
14-3 El disco
Es un soporte magnético que almacena información de forma permanente. La memoria, en cambio, es almacenamiento temporal.
Los datos de la memoria se pierden al apagar el ordenador pero los datos de un disco quedan grabados aún sin corriente eléctrica.
La superficie de un disco se puede dividir según su estructura física o lógica.
Según su estructura física, se divide en:
Caras o cabezas.
Pistas o cilindros.
Sectores.
Según su estructura lógica, se divide en:
Sector de arranque.
FAT.
Directorio raíz
Área de datos.
Tipo de unidad Velocidad de transferencia
Simple velocidad 150 Kilobytes cada segundo.
Doble velocidad 300 Kb/seg
Triple velocidad 450 Kb/seg.
Cuádruple velocidad 600 Kb/seg.
Velocidad x 150 · x Kb/seg.
Página 2 de 14Curso de MS-DOS Capítulo 14
58. Estructura física
Cada tipo de disco posee una estructura propia, determinada por el fabricante.
Los valores para los discos flexibles son fijos:
Los valores de los discos duros dependen de su capacidad. Además, discos duros con igual capacidad y diferente fabricante pueden
tener estructura física distinta.
Las caras son las superficies del disco que almacenan datos. Los disquetes actuales poseen dos caras: la superior y la inferior. Para
acceder a cada cara del disco, las unidades poseen una cabeza de lectura/escritura por cada una.
Las pistas son anillos concéntricos en cada una de las caras. En los discos duros se denominan cilindros.
A su vez, las pistas se subdividen en sectores. En la mayoría de los discos un sector almacena 512 bytes de información.
Estructura lógica
Cada sistema operativo crea una estructura lógica distinta en sus discos. En este caso, estudiamos la estructura lógica creada por
ms-dos.
El siguiente gráfico representa el desarrollo de un disco formateado, desde el primer sector hasta el último.
5 1/4 DD 5 1/4 DD 3 1/2 DD 3 1/2 HD 3 1/2 ED
Caras 2 2 2 2 2
Pistas/Cara 40 80 80 80 160
Sectores/Pista 9 15 9 18 36
Página 3 de 14Curso de MS-DOS Capítulo 14
59. El propósito de esta estructura lógica es grabar y leer datos de la forma más eficiente posible. Cada una de las divisiones tiene un
tamaño fijo según el disco y una misión específica para el sistema operativo.
La siguiente tabla muestra el sector de comienzo y cantidad de sectores ocupados por cada área en los cuatro disquetes más
extendidos.
Índice · Subir · Publicaciones · Saulo.Net
14-4 Sector de arranque
Ocupa el primer sector del disco. Este sector dispone de un pequeño programa que busca los ficheros ocultos IO.SYS y
MSDOS.SYS en el directorio raíz. Si los encuentra, carga el sistema operativo y si no, muestra alguna variante del conocido
mensaje "Error, de disco de sistema. Reemplace y presione cualquier tecla".
Nota: Para crear un disquete de arranque utilice la orden Sys o también Format con el modificador /S.
El sector de arranque de cada disco posee, además, las siguientes informaciones:
Nombre y versión del sistema operativo.
Tipo de disco.
Número de caras del disco.
Número de sectores por pista.
5 1/4 DD 5 1/4 DD 3 1/2 DD 3 1/2 HD
Sector comienzo sector de arranque 0 0 0 0
Longitud sector de arranque 1 1 1 1
Sector comienzo primera FAT 1 1 1 1
Sector comienzo segunda FAT 3 8 6 10
Longitud ambas FAT 4 14 10 18
Sector comienzo directorio raíz 5 15 11 19
Longitud directorio raíz 7 14 7 14
Sector comienzo área de datos 12 29 18 33
Longitud área de datos 709 2372 1123 2848
Página 4 de 14Curso de MS-DOS Capítulo 14