Ingeniero Técnico en Informática de Sistemas


MSDOS (Microsoft Disk Operating System)


TEMA V__ D.O.S (SISTEMA OPERATIVO EN DISCO) martes, 09 de enero de 2001

PC-DOS (IBM)

DR-DOS (Digital Research)

MS-DOS 1.0 Abril 1981

1.1

2.0

3.0

3.1

3.2

MS-DOS (Microsoft) ! 3.3

! 4.0

5.0

! 6.0

6.2

7.0 Agosto 1995

Se trata del 1º sistema operativo creado para ordenadores personales en la década de los 80 dado que los sistemas anteriores fueron creados para maquinas grandes en entornos de empresa. A lo largo del tiempo pugnaron tres fabricantes por la hegemonía del mercado hasta que en la década de los 90 con la aparición de las 1as plataformas de Windows 3.0 3.1 y 3.11 Microsoft se queda sola por la retirada de los demás aunque ya IBM lo había dejado mucho tiempo antes.

Se trata de un sistema operativo grabado sobre disco de modo que se ha de encontrar permanentemente activo y residente para poder trabajar con esa maquina.

Esto ahora parece intrascendente ya que todos los sistemas operativos (Windows, Windows9.x, unix, linux, etc..) Están ocupando algunos de los discos duros del ordenador pero al principio los ordenadores no tenían disco duro ya que aun no se habían inventado y por tanto se encontraba en un diskete que debía estar permanentemente introducido con el agravante de que solo había una disquetera.

Entre todas las versiones que salieron al mercado y omitiendo las primeras muy dependientes de la rudimentaria tecnología de entonces son las versiones 3.3,4.0 y 6.2 las que tuvieron un mayor éxito comercial. En la actualidad la versión 7.0 aun siendo la más reciente no es la mas difundida ya que esta muy arraigada la 6.22. Por otro lado estas versiones han dejado paso a aquellas otras que dependen de Windows como sistema mayoritariamente extendido pasando a adoptar la numeración de la versión de Windows.

CARACTERISTICAS DEL SISTEMA

a)Monotarea.- Ya que no dispone de gestores de memoria protegida para ejecutar cada aplicación o proceso en su espacio individual de memoria distribuyendo las zonas del mapa que se han visto según las necesidades del programa para el solo.

b)Monopuesto.- Ya que no permite gestionar espacios de memoria distintos para diferentes usuarios

c)Monoproceso.-Porque no esta diseñado para trabajar con mas de un procesador a la vez y tampoco ninguna de las aplicaciones desarrolladas para ver esto.

d)Entorno de texto.- Con fondo negro y ejecucion en modo carácter por medio de comandos u ordenes y sus parametros cuya sintaxis se ha de respetar.

El arranque de un sistema gobernado por el DOS se produce escalonadamente cargandose en la memoria una serie de modulos de diferentes programas del DOS que se encargaran de todas las operaciones

FASES DEL ARRANQUE

El primer archivo en cargarse es el IO.SYS (chequeo, funcionamiento periféricos) que recibe el testigo de la BIOS tras el chequeo de la maquina.

Este archivo cuyo nombre puede ser distinto según el fabricante y la versión (en versiones primitivas se llamaba IBMBIO.com) contiene una serie de rutinas que controlan el acceso a los distintos elementos físicos del ordenador, permitiendo entre otras cosas el uso de los periféricos básicos como el teclado y la pantalla. Se carga dividido en módulos en distintas zonas de la memoria a las que se accederá por ejemplo cada vez que tecleemos o vayamos al disco duro y de ahí que sea residente (permanente en memoria)

MSDOS.SYS (ejecución de programas, abrir, leer, escribir, borrar, cerrar) también llamado IBMDOS.COM también contiene el kernel o núcleo del DOS q permite q cualquier programa comercial pueda ser ejecutado en esa maquina de modo q se encarga de aplicaciones tales como asignación de memoria en ese programa, apertura escritura y cierre de esos ficheros y manda esos caracteres a la pantalla o la impresora

COMMAND.COM.(interprete, mensajes, ordenes internas, ejecucion de las externas) -Llamado interprete de comandos del DOS que traduce las ordenes escritas a una secuencia binaria ejecutable, esta misma traducción depura posibles errores sintácticos y ortográficos emitiendo un mensaje de error a propósito. Por otro lado el propio archivo, alberga el código de todas las ordenes internas del DOS (DIR, CD, RD, TYPE, DEL, REN, REM,...) pero además es el encargado de ejecutar las ordenes externas ya que busca los ficheros ejecutables de esas instrucciones en el directorio en que se encuentren según las indicaciones de la orden path.

NB: Estos dos ficheros (IO.SYS y MSDOS.SYS siguen existiendo en Windows 9x, y son imprescindibles, si faltan o están dañados no arranca el ordenador además de ser ocultos). El fichero COMMAND.COM, no es imprescindibles Windows (pero si en el DOS) .

CONFIG.SYS.-.Es un fichero q contiene todas las directivas de los perifericos instalados (drivers, zonas de memoria, buffers, etc.) Se encarga por tanto del aspecto fisico de los coponentes instalados. No es imprescindible pero su ausencia impediria el correcto funcionamiento de los perifericos. Es un fichero editable o modificable, pero una vez modificado se ha de reiniciar el equipo.

AUTOEXEC.BAT.-: Es el fichero que contiene las directivas de programas instalados y su competencia es logica (librerias, zonas de memoria en la que se cargan los programas,etc.). Desde el se pueden lanzar otras aplicaciones o ficheros de procesos por lotes. Es prescindible pero su ausencia impide el correcto funcionamiento de los programas. Ambos ficheros no son ocultos.

ORDENES DEL SISTEMA

Las instrucciones vienen dadas por abreviaturas del ingles seguidas de los parametros q modifican el funcionamiento de la orden (no todos los comandos tienen parametros ni son los mismos para todos).

Hay 2 categorias de comandos:

Los internos contenidos en el COMMAND.COM de los q la mayoria son ejecutables desde la linea de comandos (Impronta del sistema) y otros solo desde el fichero CONFIG.SYS o desde procesos por lotes. Algunos de ellos son (cls,vol,ver,ren...)

Comandos externos son el grueso del S.O y todos ellos funcionan pq existe un archivo del mismo nombre del comando y de extension EXE o COM q ha de estar en la ruta especificada por el comando Path para q el COMMAND.COM lo pueda localizar sino por defecto lo buscara en el directorio actual (el q señale la impronta)

Ordenes internas

DOSKEY-Guarda en el buffer de teclado los ultimos comandos, para recuperarlos en el orden deseado pulsaremos flecha arriba o flecha abajo. Si doskey no esta instalado, la tecla F3 recupera la ultima orden escrita y F1 recupera carácter a carácter de la ultima orden. Se desinstala automaticamente al cerrar la ventana del DOS

CLS-Borra pantalla

DATE-Da la fecha del sistema

VER-Da la version del sistema. Es importante porque los comandos de unas versiones no funcionan en otras, y en general los de los fabricantes no son distintos entre si. Para hacer q funcione un comando de una version en otra hay q modificar la version en la tabla de versiones mediante el comando SETVER.

VOL-Etiqueta de volumen. La etiqueta del disco duro es importante porque hay que conocerla para formatear el disco.según la version es un nombre de hasta 11 caracteres pero debemos usar siempre mayusculas ya que el comando FDISK q crea particiones tambien necesita la etiqueta y no permite teclear en minusculas

LABEL.Comando externo q permite cambiar la etiqueta del disco (siempre en mayusculas)

VERIFY-Comando que hace que las copias y lecturas de disco sean verificadas con mas exactitud ocasionando un retardo en la operación.Los comandos de lectura, escritura sobre disco suelen disponer de un parametro /f para que se realicen con verificacion, pero si no disponen de el y se trata de una copia deseguridad importante debemos ejecutar antes Verify On (si no se necesita copia de seguridad, se deja en OFF

PROMPT-Comando que establece la impronta del sistema.Es importante porque la impronta debe indicar siempre en que disco y directorio estamos y para ello escribiremos PROMPT $P$G

Otras combinaciones posibles son:

Prompt mensaje

Prompt $T

Prompt $D

DIR-/p /w /b /s /a (+-s; +-h; +-r;+-a) /o (+-h;+-e;+-s;+-d;+-c;+-g)

Muestra una lista de archivos y directorios en pantalla correspondientes a la ruta especificada por la impronta. Si queremos ver los archivos y o directorios de otra ubicación distinta del Prompt actual habra que añadirlela ruta al comando Dir.

Parametros importantes :

/p Para la pantalla mostrando toda la informacion de los archivos(nombre,extension,tamaño y fecha y hora de modificacion

/w Muestra una lista a 5 columnas con los nombres de los directorios y ficheros sin el resto de la informacion

/B Muestra la lista de nombres sin informacion de cabecera ni pie de pagina

/s Muestra todo cuanto hay en los subdirectorios contenidos en la ruta de la impronta

/a Muetra los archivos del atributo escogido

/o Muestra los archivos ordenados según se haya especificado por nombre fecha , tamaño y extension

dir /a:h Para mostrar los archivos ocultos

dir /a:d Para mostrar los archivos de los directorios

dir /a:r Para mostrar los archivos de solo lectura

dir /a:r Para mostrar los archivos modificados

DIRECTORIOS

Los directorios del Dos son las carpetas de Windows y por tanto espacios reservados dentro del disco a los que se le adjudicó un nombre que en general ha de ser distinto entre todos, pero que puede estar repetido sino se encuentran al mismo nivel sobre el árbol de directorios.

RAIZ

Es aquella parte del disco que permanece fuera de cualquier directorio y que se reconoce por la impronta de la unidad de disco seguido de una barra invertida y punta de flecha(c: \ > ).

NOMENCLATURA

Tanto para los ficheros como para los directorios se observan las siguientes reglas:

Nombre de cómo máximo 8 caracteres y opcionalmente extensión de 3. En general los ficheros disponen de ella y los directorios no, pero pudieran tener. El juego de caracteres válido para nombre y extensión, está formado por letras, números y algunos signos de puntuación(no valen espacios en blanco, comas, puntos, etc.)

NAVEGACIÓN POR LOS DIRECTORIOS:

Creación de directorios: MD- NOMBRE DEL DIRECTORIO

Entrar en un directorio: CD-NOMBRE DEL DIRECTORIO

Eliminación del directorio: RD-NOMBRE DIRECTORIO(es necesario que el directorio que se quiere borrar esté vacío, y por tanto habrá que eliminar antes todos los archivos y subdirectorios contenidos; hay que estar fuera del directorio para que se pueda borrar.

Otras maneras de moverse por ellos son:(comandos)

CD \ BAJA A LA RAÍZ

CD.. BAJA AL DIRECTORIO ANTERIOR

Las combinaciones de los anteriores CD..\..\..(para bajar) o CD NOMBRE\ NOMBRE\ NOMBRE(para subir al directorio que se quiera).

Para borrar archivos podemos usar indistintamente los comandos DEL o ERASE(comandos internos), seguidos de la ruta y nombre del archivo que se quiere borrar.

En versiones de la competencia cabía la posibilidad de recuperar ficheros borrados mediante el comando UNDELETE, similar a la papelera de reciclaje.

Crear las siguientes estructuras de directorios: (Nombres abreviados de 8 caracteres).

{MSDOS}

DELTREE

Elimina un directorio y todos los archivos y subdirectorios que contiene.

Sintaxis

DELTREE [/Y] [unidad:]ruta

Parámetro

unidad:ruta

Especifica el nombre del directorio que desea eliminar. El comando

DELTREE eliminará todos los archivos que contenga el directorio

especificado, así como los subdirectorios y archivos en los

subdirectorios secundarios de este directorio.

Modificador

/Y

Ejecuta el comando DELTREE sin pedir primero que se confirme la

eliminación.

Comandos relacionados

Para obtener información acerca de cómo eliminar un directorio, vea el

comando <RMDIR>.

Para obtener información acerca de cómo eliminar archivos, vea el comando

DEL>.

Errorlevel. Algunos comandos externos devuelven un valor numerico según haya tenid95

o o no éxito la operación.

Generalmente el valor 0 en todos ellos significa q la orden se ha ejecutado bien mientras q los demas valores dependen del significado del comando y de las incidencias durante su ejecucion.

Algunos comandos q devuelven valores de errorlevel son:

Diskcopy, Find, Format, Keyb, Replace, Msav, restore, setver, xcopy, choice, defrag, deltree, diskcomp

El comando deltree no necesita q los directorios esten vacios para ser borrados pidiendonos siempre confirmacion para ello salvo que añadamos el parametro /Y q anula la peticion

TYPE

Orden interna que muestra el contenido de 1 fichero, siempre muestra lo que contiene el archivo aun cuando este sea binario y por tanto ilegible como el caso de *.exe; *.com; *.dll. En general se usa para ficheros de texto en formato ascii y las versiones para MS solo muestra el contenido de 1 fichero de cada vez y por tanto no admite comodines.

Si el contenido es largo podemos parar la pantalla usando el filtro “MORE” (comando externo válido para añadir a cualquier orden q muestra info sobre pantalla, puesto q no admite nigun comodin.

MORE: se trata de una orden más de tipo externo que por si sola no funciona, ya que va incorporada como filtro a cualquier comando que muestre información por pantalla( DIR, TYPE, TREE, CHKDSK,etc).

Ejemplo: type leame.txt |more (barra de filtro en el caracter1, tambien se llama tuberia).

NOTA: para abortar un comando, pulsar combinacion de teclas CONTROL+ C o CONTROL+ PAUSE.

Puede que en alguna instalacion del DOS el comando MORE no funcione porque hay instalaciones reducidas que no copian el fichero externo MORE.COM, en tal caso habrá que copiarlo desde un disquete a la ruta especificada por el pAd

REDIRECCIONAMIENTO: se entiende por tal el envío de la ejecución de una orden a una salida no estandar.

Por ejemplo, todos los comandos de visualización muestrn la información sobre pantalla pero podemos cambiar la salida redireccionandola a otro dispositivo, como por ejemplo un fichero o la impresora.

Ejemplo: DIR > LISTA.TXT

Se observará que el comando DIR no muestra ahora la información en pantalla sino que la lleva al nuevo fichero llamado lista.txt

Lo podemos ver ejecutando : TYPE LISTA.TXT

Cada vez que redireccionemos sobre un mismo fichero perderemos la información que tenía y adoptará la nueva. Si queremos conservar la anterior y añadir más información de nuevos redireccionamientos pondremos dos puntas de flecha >>

Ejemplo: DIR D:\WINDOWS\COMMAND >> D:\LISTA.TXT

Para verlo ahora que es mayor ejecutaremos : TYPE LISTA.TXT |MORE

Ejercicios

  • Crear directorio de salida en c:\

  • Crear fichero raiz.txt salida con lista de ficheros de la raiz d:

  • Crear fichero dir.txt con salida con solo lista de directorios de windows

  • Crear fichero orden.txt(salida) conlista de ficheros ordenados por nombre de windows\command

  • Añadir a orden.txt lista de ficheros ordenados por extension de windows\command

  • Añadir a orden.txt de lista de ficheros ordenados por fecha de windows\command

  • Mostra contenido pagina de orden.txt

  • Renombrar dir.txt por carpeta.txt

  • Crear subdirectorios \uno\dos\tres dentro del directorio salida

  • Copiar en ellos: raiz.txy carpeta.txt orden.txt respectivamente en uno, dos, tres.

  • Borrar los 3 ficheros:*.txt de salida

  • Eliminar directorio salida

  • Attrib: comando externo que muestra y modifica los atributos de los archivos .

    El dos no posee un aconvinacion de atributos tan extensa como otros sistemas operativos caso de unix... que permiten restringir el acceso tanto a archivos com carpetas ; unicamente es posible trabajar con estos cuatro atributos:

    S: archivo de sistema

    H:oculto

    R:protegido

    A:modificado

    El dos no muestra los archivos ocultos a menos que modifiquemos su atributo como el explorador de windows y esta restriccion tiene un mayor alcance por que no solo no aparecen en la lista de dir si no que tampoco se encuentran para copiar cambiar de nombre etc.

    Por otro lado los atributos de un archivo no se respetan cuando se copian en la mayoria de los casos .

    Sintaxis del comando:

    atrib+-atributo archivo(s,n,a comodines) para modificar atributos

    atrib archivo(para mostrar atributos)

    ejercicios:

    1. crear directorio practica

    d:\md

    2. entrar en directorio practica

    d:\cd practica

    3. crear un fichero que se llame mio.txt

    attrib mi fichero > mio.txt

    4. mostrarlos

    attrib*.*

    5. hacer que mio.txt sea de solo lectura

    attrib +r mio.txt

    6. borrar mio.txt

    del mio.txt

    7. cambiar de nombre mio.txt por tuyo.txt

    ren mio.txt tuyo.txt

    8. hacer solo lectura a mio.txt

    attrib +r mio.txt

    9. mostrar atributos de mio

    attrib tuyo.txt

    10. hacer que no sean de solo lectura ni esten modificados

    attrib -r -a tuyo.txt

    11. mostrar atributos de tuyo

    attrib tuyo.txt

    12. insertar el texto ahora me deja modificarlo en tuyo.txt

    echo ahora me deja modificarlo >> tuyo.txt

    Instalacion de comandos externos de otra version o no existentes:

    -expand

    -setver

    devemos comprobar antes de instalar un comando si ya existe el fichero esterno del mismo nombre ien el subdirectorio windows command y sobre todo aunque no exista es conveniente ver que version soporta el actual sistema para ese comando para lo cual ejecutaremos setver|more pudiendo ocurrir que no se encuentre en la lista o bien exista bajo una version distinta la la que vallamos a instalar.(si disponemos del archivo que concuerda con la version de la tabla bastara con copiarlo a la carpeta windows command .

    pasos para la instalacion:

    1- si disponemos del archivo descomprimido procedente de una instalacion en otro equipo procederemos a copiarlo en windows command si no fuera asi habra que descomprimirlo directamente de los disketes de instalacion del dos y para ello haremos lo siguiente:

    copiaremos la orden expand.exe del disco numero1 al subdiretorio de trabajo copiaremos el archivo comprimido que contiene la orden que queremos instalar desde el diskete en el que esta (se identifican con las estensiones com o exe a la que les falta la ultima letra ocupando su lugar un guion de subrrallado ej: para la orden tree encontraremos tree.co_(en el disco numero 2).

    2- Se descomprime el archivo ejecutando directamente expand que nos pedira el nombre del archivo comprimido asi como el nombre definitivo de extension exe ocom

    Hay que actualizar la tabla de versiones para ese comando especificando el numeroo correcto de la version de la que se trata cuya informacion obtendremos del paquete original de instalacion o de otro ordenador en el que la orden este funcionando y el archivo haya sido copiado.

    Para añadir o actualizar esa entrada sobre la tabla mejor sera borrar primero la version existente ejecutando :setver nombre del archivo/d.

    A continuacion escribiremos la version correcta para este comando mediante setver nombre del comado numero de la version ej:setver tree.com 6.2.

    No haremos mucho caso a la mensajeria que nos advierte de que es ilicito instalar comandos de otras versiones .

    3- Añadiremos una linea al archivo config.sys que diga device=d:\windows\command\setver.exe

    Copiaremos el comando setver.exe desde windows a windows command y reiniciaremos el equipo si la orden path esta bien enrrutada del comando deberia funcionar de lo contrario el mensaje dira version incorrecta.

    1- crear directorio mañana en d:\

    2- crear 7 ficheros con la orden echo tales como los siguientes:

    echo lunes>lunes.txt

    echo martes>martes.txt

    .................... .................

    echo domingo>domingo.txt

    3-proteger los de a diario.....

    attrib +r lunes.txt.....

    4-ocultar los del fin de semana.....

    attrib +h sabado.txt......

    5-crear subdirectorios \protege y \oculta

    md protege ,md oculta

    6-crear archivo en \protege con la lista de los protegidos (lunes.txt ,martes.txt,etc).

    Dir /a:r > d:\mañana\protege\protegi.txt

    7-crear archivo en \oculta con la lista de los ocultos (sabado.txt,domingo.txt).

    dir /a:h > d:\mañana\oculta\ocult.txt

    8-añadir a ambos una linea mas que diga en cada caso “estan protegidos” y “estan ocultos”.

    Echo estan protegidos protegi.txt.

    9-cambiar extensiones de los protegidos por *.sem

    ren protegi.txt protegi.sem

    10-mostrar el arbol de estos directorios con y sin ficheros

    11-instalar orden tree como ayer se explico...

    ejercicios:

    1- crear directorio jueves en c:\

    2- crear los archivos siguientes:

    echo lunes,martes,miercoles,jueves,viernes, >semana.txt.

    echo sabado,domingo > festivo.txt

    3-proteger semana.txt

    atttrib +r semana.txt

    4-ocultar festivo.txt

    attrib +h festivo.txt

    5-mostrar los ocultos

    dir /a:h

    6-mostrar los protegidos

    dir /a:r

    7-cambiar semana.txt por diario.txt

    ren semana.txt diario.txt

    8-mostrar sus atributos

    attrib

    9-mostrar contenido de diario.txt

    type diario.txt

    10-crear archivo con la lista de los ficheros de jueves,llamado hoy.txt

    dir c:\jueves > c:\jueves\hoy.txt

    11-añadirle una linea que diga no hay mas

    echo no hay mas hoy.txt

    12-crear subdirectorio mañana

    md mañana

    13copiar los 3 ficheros dentro

    copy *.txt c:\jueves\mañana

    14-borrar los del jueves.

    Deltree jueves

    FOR %% letra IN (ficheros) DO orden %% letra

    Comando interno FOR :que permite ejecutar otra orden del DOS sobre un grupo de ficheros actuando de forma repetitiva. Tiene utilidad cuando queremos aplicar un comando a un cierto numero de ficheros que sin su utilizacion nos obligaria a ejecutar aquella varias veces.

    Su sintaxis varia según se ejecute desde la linea de comandos o desde dentro de un fichero BACTH

    Desde el prompt la sintaxis es como sigue pero solo con un simbolo de %

    Ejemplo:

    For %T IN (*.TXT) DO type % T equivaldria a type*.TXT pero ejecutada sobre todos los archivos txt individualmente.

    La lista de ficheros puede ser mayor (especificando mas de una extension) y la letra puede ser cualquiera pero repitiendose la misma en cada orden.

    Al comando se le pueden añadir filtros y redireccionamientos pero en cualquier caso solo es válido para repeticion de comandos que actuan sobre archivos.

    El %T sustituye a cada fichero de cada vez, es una variable del sistema

    Ejercicios:

    1- en D:\windows mostrar contenido de entre los de extension txt , los que empiezan por “h” y los que tienen solo 4 letras

    for %t in (m*.txt) do type %t >> mostrar.exe

    for %t in (*.txt ????) do type %t >> otro.exe

    2-mostrar archivos *.exe y *.com ordenados por nombre

    3-proteger todos los *.txt y *.log

    crear archivo texto.txt con los *.log

    -sys: comando externo que copia en el disco de arranque los ficheros del sistema:

    el io.sys el msdos.sys y el command.com

    según la version del dos tambien copia el fichero deblspace.bin.en versiones antiguas solamente se copiaban los ocultos y el command com habia que copiarlo a parte.

    No debemos ejecutar esta orden a menos que nuestro ordenador no arranque y ademas debemos disponer de un diskete de arranque del sistema con una version que coincida con la que hay instalada en el disco duro de lo contrario algunos comandos no funcionaran.

    Para hacerlo se arrancara el equipo desde a:\ con un diskete de arranque del dos y cuando nos muestre la impronta teclearemos a:\sys c: y volveremos a arrancar.

    El mismo proceso se puede realizar para preparar un diskete de arranque ejecutando C:\sys a: siempre que el diskete haya sido formateado previamente con el parametro /c o /b.

    Format: orden externa que prepara un disco para ser utilizado creando las pistas y sectores necesarios para ubicar los archivos sobre el dotandolo de un sistema de coordenadas pistas sector que permite localizar a traves de un indice llamado fat que se grava como fichero oculto e inaccesible sobre la pista 0 de tal modo que si esta se daña el disco es inserbible .

    Como consecuencia de lo dicho cada vez que se formatea se borra toda la informacion. En algunas versiones del dos existe un comando llamado unformat que permite recuperar la informacion perdida a partir de un espacio reservado del disco en la que se guarda una imagen de todo lo que hay gravado.

    PARAMETROS DE FORMAT:

    Ademas de los que siguen hay otros varios parametros menos importantes par formateos de discos con numero de caras pistas y sectores que no son los utilizados hoy dia .

    /Q: realiza un formateo rapido que borra solamente la tabla de asignacion o fat dejando la informacion binaria de los archivos gravada sobre las pistas y sectores aunque no se pueda recuperar.

    /U: realiza formateo incondicional de todas las pistas del disco. Es la opcion que siemmpre debenmos usar ya que es la unica que nos ofrece un resumen real de la situacion del disco en cuanto a capacidad y sectores dañados.

    /B: igual que el anterior pero dejando espacio en la pista 0 para los archivos del sistema pensando en que luego se utilizara ese disco como de arranque.

    /S: igual que el anterior pero gravando los archivos de arranque sobre la pista 0.

    Se remite a la ayuda del help para mas informacion.

    Ejercicios sobre los disketes:

    Format A:/u

    Dir a:

    Format a: \s

    Dir a:

    Reset...(con diskete dentro).

    Reset ..(sin diskete)

    Format A:\ /q

    Dir a:

    Format a: /b

    Sys a:

    Reset..(con diskete)

    Reset..(sin diskete)

    Ejercicios:

    1. Crear directorio “clase” en c:\ y dentro de el...

    Md clase

    2. Crear ficheros ayer,txt, hoy .txt ,mañana.txt que contengan una linea de texto con su nombre

    Echo ayer >ayer.txt y asi con todos

    3. Modificar atributos : ayer.txt +r hoy.txt +h mañana.txt +r

    +s -a +h

    attrib +r ayer.txt

    4. mostrar archivos:

    protegidos

    ocultos

    modificar

    dir/a:h

    5. visualizar el contenido de los tres ficheros

    for %t in (*.txt) do type %t >> mostrar.TXT

    6. crear archivo atributo.txt con los atributos de los 3

    C:\clase> attrib >>atributo.txt.

    7. renombrar cada uno con su nombre al reves

    8. crear 3 sudirectorios con los mismos nombres originales de los ficheros

    9. copiar dentro de cada uno el fichero correspondiente

    10. borrarlos de clase pero mantener el atributo.txt

    11. crear en clase archivo dir.txt con la lista de directorios d:

    12. añadir una linea mas a cada fichero de los 3 copiados que diga su nombre actual

    13. eliminar \clase.

    Comando TREE

    Comando externo disponible unicamente para las versiones del DOS y windows 3.x pero no asi para windows 9x.

    Muestra el arbol de directorios y subdirectorios de un disco. Opcionalmente con el parametro /f muestra tambien los archivos contenidos en cada uno.

    En versiones antiguas el arbol grafico no se mostraba en pantalla sino unicamente las rutas para cada subdirectorio.

    Presenta en forma gráfica la estructura de directorios de una ruta de acceso del disquete en una unidad de disco.

    Sintaxis: TREE [unidad:][ruta] [/F] [/A]

    Parámetros

    unidad: Especifica la unidad que contiene el disquete cuya estructura de directorios desee presentar.

    Ruta : Especifica el directorio cuya estructura de directorios desee presentar.

    Modificadores

    /F Presenta los nombres de los archivos que contiene cada directorio.

    /A Indica al comando TREE que utilice caracteres de texto en lugar de

    caracteres gráficos para mostrar las líneas que vinculan los

    subdirectorios. Utilice este modificador con tablas de códigos que no

    reconozcan caracteres gráficos y para enviar información a impresoras

    que no los puedan interpretar adecuadamente.

    Ejercicios

    1.Crear archivo con arbol de directorios de D:, llamado todod.txt

    2.Crear archivo con arbol de directorios de D:\windows, llamado window.txt con los ficheros contenidos

    3.Mostrar ambos ficheros a la vez parando la pantalla... (con FOR..)

    IDENTIFICACION DEL SISTEMA

    Nombre y version de la Bios(al arrancar pulsar Pause y anotar)

    Cantidad de memoria RamDurante el chequeo inicial)

    Cuantos

    -Por Software Discos duros Capacidad (Mi Pc)

    Caracteristicas (1)

    Red-Caracteristicas

    Controladores de disposit. Inst. Video-Caracteristicas Cuadro administrador dispos

    Sonido-Caracteristicas en Mi Pc

    Disquetera (caracteristicas 2)

    BIOS-Localizarla y anotar datos de pegatina

    Cuantos bancos vacios

    Por RAM Cuantos bancos ocupados de q tipo

    Hardware Tipo y caracteristicas de memoria instaladas

    IDE1

    Discos:Puertos IDE2 q disco esta en cada uno

    Tipo de zócalo

    Procesador Tipo de procesador

    Velocidad

    Caracteristicas(3)

    N.B: Capacidad

    1.-Acceder a la bios y anotar los datos de los discos duros Cilindros

    2._Lo mismo en A: Sectores

    3._Obtener info de apuntes Cabezas

    4._Fabricante,interrupcion,direccion de memoria(administrador de disposit,propiedades de cada uno)

    Cuantas

    Tipos

    Ranuras expansion Caracteristicas (3)

    Q tarjeta tiene pinchada si hay

    Individualmenten y en la maquina de cada uno hacer un informe q luego se entregara con nombre y nº de equipo sobre los 2 aspectos tratados. SOFTWARE Y HARDWARE

    FDISK

    comando externo q permite subdividir un hd en 1 o varias unidades logicas nombradas cada una por su letra tambien llamadas particiones.Para q 1 HD se puedad usar, antes de ser formateado ha de ser particionado y establecido cual de las unidades logicas es la de arranque y por tanto la activa.

    Fdisk muestra un menu de 4 opciones por defecto o 5 si hay mas de 1 HD fisico con las siguientes opciones:

    FDISK (Preparar disco fijo)

    Inicia el programa Fdisk, que configura el disco duro para poder utilizarlo

    con MS-DOS.

    Fdisk presenta una serie de menús para ayudarle a efectuar la partición de

    su disco duro para MS-DOS.

    Sintaxis

    Para iniciar el programa Fdisk, utilice la siguiente sintaxis:

    FDISK

    Para presentar información de partición sin iniciar el programa Fdisk,

    utilice la siguiente sintaxis:

    FDISK /STATUS

    Modificador

    /STATUS

    Presenta información general acerca de la partición de los discos duros

    de su PC sin iniciar el programa Fdisk.

    1._Crear particion=unidad logica DOS!Adjudica el % de espacio fisico del HD q queramos a cada particion

    2._Establecer particion activa!establece desde cualquier unidad q se arranca

    (En el aula la unidad c: es la activa y de arranque pues tiene los ficheros de arranque de windows; es pequeña porq solo vale para iniciar y mostrar el menu desde el que se elige con q S.O vamos a trabajar, win98,winNT.Se tuvo q crear porq la unidad D: esta en FAT 32 y win NT no reconoce este formato y por tanto no se mostraria el menu anterior. Si solo hubiera d: Según el tamaño de c: estara bajo fat12 o fat16, ambas reconocibles para WIN NT

    3._Eliminar particion!Destruye fat y por tanto es como si se borrara o formateara esa unidad logica

    4._Mostrar informacion!Muestra las unidades y el espacio de cada una

    (las particiones q no son reconocidas por ewl DOS como pEJ el winNT no aparecen como unidades logicas y por tanto carecen de letra. SE trata de un tipo NTFS propio de winNT..La suma de todos Fat16+fat32+ntfs debe dar el tamaño del HD fisico

    5._Cambiar Disco!Esta opcion solo aparece si hay mas de 1 hd fisico

    (Preestablece el espacio real utilizable,tras el formateo, no coinciden en el tamaño teorico del disco recogido de la bios o de la pegatina, ocurre q del nº total de cilindros fisicos no todos se aprovechan y de ahí el desfase

    Preparacion de discos duros

    -Particionar

    -[establecer Disco arranque]

    -Formatear

    -[Instalar software (SO)]

    Un disco duro cuando sale de fabrica debe ser particionado para que el SO sepa de cuanto espacio dispone sobre el disco para ser usado.Esta operación la podemos realizar nosotros mediante el comando FDISK para establecer si todo el espacio del disco duro fisico se usara como un unico disco logico o por el contrario crearemos varias unidades logicas,cada cual con su porcion de tamaño sobre el mismo disco fisico. Esta operación es muy importante sobre todo si pretendemos usar alguno de los discos logicos para instalar sobre el el SO ya q cada version del SO requiere de una determinada cantidad de espacio minimo para copiar sus archivos. Por otro lado,dado q hay diferentes formatos para el aprovechamiento de los clusters bien bajo FAT16, FAT32 u otras, tb debemos saber de antemano las incompatibilidades que hay entre ellas si queremos por ejemplo instalar dos sistemas operativos sobre el mismo disco fisico.

    En nuestro caso y debido a esta ultima razon se ha dividido el mismo disco fisico en tres porciones o unidades logicas de diferente tamaño para albergar dos SO: W98 y WNT. La incompatibilidad entre FAT32 y el formato caracteristico de NT llamado NTFS nos obligo a crear una unidad de arranque con un tamaño minimo bajo FAT16 (en otros casos bajo FAT12 debido a su tamaño) para q durante el arranque pudieamos escoger con cual de los sistemas queriamos trabajar sin que hubiera incompatilidad entre ellos.Se grabaron exclusivamente los ficheros de arranque necesarios en C: y el grueso del SO W98 en D: junto con el resto de las Aplicacione sinstaladas y para ello hubo que determinar de antemano que fraccion de disco otorgamos a la unidad logica D:

    Si el disco se usa para albergar el SO, tras la particion hay que esrtablecer cual de las unidades logicas sera la activa o de arranque(la C:) si ese disco se va a utilizar para exclusivamente instalacion de programas de aplicación (paquetes ofimaticos,juegos,leng de programacion,etc) omitiremos este paso.

    Tras particionar hay q formatear para crear las pistas y sectores en donde se grabaran los datos. El formaeo se hace sobre elporcentaje de disco determinado anteriormente pudiendo darse el caso de formatear solo una parte y mantener otra sin formatear para decisiones futuras. Tras el formateo comprobaremos si el espacio obtenido concuerda con el porcentaje de disco previsto, ya q algunos fabricantes suelen poner en la etiqueta una determinada capacidad q no se correspnde con la realidad.

    Si usamos el disco para programas habra q instalarlos ya q en otros casos se usan solo como copia para datos y por tanto omitiriamos esta fase.

    FIND “cadena” fichero

    Comando q busca formatos de texto en Ascii, la busqueda del texto respeta mayusculas y minusculas,mostrando las lineas q contienen el texto q van entre comillas, en caso contrario aparece una linea con guiones.

    Parametros:

    /v !Muestra las lineas q no contienen el texto buscado

    /c !Muestra el recuento de lineas q contienen esa cadena

    /n !Muestra el nº de la linea q contiene el texto

    /I !Ignora la distincion entre mayusculas y minusculas (debemos usarlo siempre)

    Ej: Quiero buscar la palabra windows dentro del archivo redes.txt

    FIND “windows” redes.txt

    TUBERIA O PIPE

    Es un encadenamiento de comandos del DOS lo cual supone la ejecucion secuencial ed varios comandos del DOS sobre una misma orden de tal forma que cada comando actua sobre el resultado del comando anterior.

    Ej: Cada vez q usamos more, estamos usando una tuberia dir |more

    Ej: dir *.txt |find “redes” buscara el texto redes sobre todos los .txt

    Ej:Quiero saber cuantos archivos txt hay en \windows dir|find “.txt” /i /c

    Salen mas de la cuenta porque cuenta las lineas y añade las cabeceras

    Para saber realmente cuanto archivos hay se pone dir /b |find ".txt" /i /c /v

    INTERLNK

    Conecta dos PCs mediante puertos en paralelo o en serie y les permite

    compartir discos y puertos de impresora. Por ejemplo, podría conectar un

    equipo portátil a su PC y compartir archivos. Para poder usar este comando,

    primero tendrá que instalar el controlador de dispositivos <INTERLNK.EXE>.

    Sintaxis

    INTERLNK [cliente[:]=[servidor][:]]

    Use la siguiente sintaxis para mostrar el estado actual del programa Interlnk:

    INTERLNK

    Parámetros

    Cliente

    Especifica la letra de la unidad cliente que se redirigirá a una unidad del servidor Interlnk. La unidad deberá ser una que fuera redirigida al iniciarse Interlnk.

    servidor

    Especifica la letra de la unidad del servidor Interlnk que se vaya a redirigir. La unidad debe ser una de las enumeradas en la columna Este equipo (Servidor) de la pantalla del servidor Interlnk. Si no especifica la letra de la unidad, la unidad cliente no será redirigida.

    Comandos relacionados

    Para obtener más información acerca del controlador de dispositivos Interlnk, consulte <INTERLNK.EXE>.

    Para obtener más información acerca de Intersvr, consulte el comando

    Especifica la letra de la unidad cliente que se redirigirá a una unidad del servidor Interlnk. La unidad deberá ser una que fuera redirigida al iniciarse Interlnk.

    servidor

    Especifica la letra de la unidad del servidor Interlnk que se vaya a redirigir. La unidad debe ser una de las enumeradas en la columna Este equipo (Servidor) de la pantalla del servidor Interlnk. Si no especifica la letra de la unidad, la unidad cliente no será redirigida.

    Comandos relacionados

    Para obtener más información acerca del controlador de dispositivos Interlnk, consulte <INTERLNK.EXE>.

    Para obtener más información acerca de Intersvr, consulte el comando

    Modificadores

    /X=unidad:

    Especifica una unidad que no se redirigirá. Por configuración predeterminada, se redirigen todas las unidades.

    /LPT:[n|dirección]

    Especifica el puerto en paralelo a utilizarse. El parámetro n especifica el número del puerto en paralelo. El parámetro dirección especifica la dirección del puerto en paralelo. Si omite n o dirección, el servidor Interlnk utilizará el primer puerto en paralelo que encuentre conectado con el cliente. Si especifica el modificador /LPT y omite el modificador /COM, el servidor buscará solamente los puertos en paralelo. Por configuración predeterminada, se examinan todos los puertos en paralelo

    y en serie.

    /COM:[n|dirección]

    Especifica el puerto en serie a utilizarse. El parámetro n especifica el número del puerto en serie. El parámetro dirección especifica la dirección del puerto en serie. Si omite n o dirección, el servidor

    Interlnk buscará en todos los puertos en serie y utilizará el primero que encuentre conectado con el cliente. Si especifica el modificador /COM y omite el modificador /LPT, el servidor busca solamente los puertos en serie. Por configuración predeterminada, se examinan todos

    los puertos en paralelo y en serie.

    /BAUD:velocidad

    Establece una velocidad de transmisión máxima en baudios para las

    comunicaciones en serie. Los valores válidos para la velocidad de

    transmisión son 9600, 19200, 38400, 57600 y 115200. La velocidad

    predeterminada es 115200.

    /B

    Muestra la pantalla del servidor Interlnk en blanco y negro. Si tiene

    problemas de lectura con su monitor monocromo, utilice este

    modificador.

    /V

    Impide conflictos con el reloj de su PC. Especifique este modificador si

    tiene equipos conectados en serie y uno de ellos se detiene cuando usa

    Interlnk para obtener acceso a una unidad o puerto de impresora.

    /RCOPY

    Copia archivos Interlnk de un equipo a otro, siempre y cuando estén

    conectados por un cable en serie y que el comando <MODE> esté disponible

    en el equipo en que está instalando Interlnk.

    Comandos relacionados

    Para obtener más información acerca de Interlnk, consulte <INTERLNK> e

    <INTERLNK.EXE>.

    Proceso batch o por lotes

    Un proceso batch es un archivo q contiene comandos del DOS y q se ejecutan en forma autonoma por el propio carácter del fichero similiar a un ejecutable de cualquier otro programa.

    Se emplean en la automatizacion de tareas que exigen de crear varios comando con sus parametros y tambien para personalizar un entorno de trabajo bajo DOS.

    Se crean mediante cualquier editor de texto simple o bien con el editor del DOS mediante el comando EDIT (tb se pueden crear pequeños BAT de pocas lineas con la orden COPY CON , pero no admite correccion.

    Admite cualquier comando visto hasta ahora y otra serie de ellos especificos para procesos BAT como son los siguientes:

    CALL, IF, KEYB, LOAD, PATH, PAUSE, PROMPT, SET, GOTO, MENU....

    Cualquier archivo de este tipo para que se pueda ejecutar debe tener extension BAT. Si hubiera otro de mismo nombre pero con extension EXE tiene prioridad sobre el BAT.

    Ejemplos de estos procesos es el fichero AUTOEXEC.BAT

    Ejercicio de ejemplo:

    “arch.bat” !Muestra y crea un archivo con la informacion del disco c:

    @echo off !para q se ejecuten las ordenes siguientes pero q no se vean

    cls

    dir c: /p

    dir c: > raiz.txt

    pause !detiene pantalla hasta pulsar una tecla

    cls

    echo se ha creado archivo raiz.txt con la informacion visualizada!Muestra mensaje en pantalla

    echo! La usamos para dejar una linea intermedia

    dir raiz.txt

    2º ejercicio:

    Crear otro batch llamado chequed.bat q muestre y cree un archivo resumen.txt con la informacion de los discos c: y d:

    @echo off

    dir c:/p

    dir d:/p

    dir c: >resumen.txt

    dir d: >>resumen.txt

    pause

    cls

    dir resumen.txt

    3º ejercicio:

    Crear memoria.bat que muestre en una sola linea la cantidad de memoria convencional disponible (no la que hay sino la que queda)..

    @Echo off

    Cls

    Echo información sobre memoria convencional disponible

    Chkdsk |find "bytes libres"

    !Antes de crear el 4º batch hagase lo siguiente:Crear 3 archivos de texto llamados AYER.TXT, HOY.TXT, MAÑANA.TXT con una frase cada uno que diga su nombre (ej: echo ayer>ayer.txt...) Luego confeccionar batch(TIEMPO.BAT) que reuna los 3 archivos en uno llamado tiempo.txt precedidos de una linea que muestre el nombre del fichero

    @echo off

    cls

    echo ayer > ayer.txt

    echo hoy >hoy.txt

    echo mañana >mañana.txt

    echo ayer.txt >tiempo.txt

    type ayer.txt >>tiempo.txt

    echo hoy.txt >> tiempo.txt

    type hoy.txt >>tiempo.txt

    echo mañana.txt>>tiempo.txt

    type mañana.txt >>tiempo.txt

    !Crear otro batch llamado MEZCLA.BAT que haga las siguientes operaciones

    • Cambie el texto de cada uno por “pasado” “presente” y “futuro”

    • Cambie las extensiones de los tres por “DOC”

    • Los renombre al reves

    • Los protega

    • Muetre sus atributos

    • Cree un directorio \MIO

    • Los copie dentro de el

    @Echo off

    Cls

    echo pasado >ayer.txt

    echo presente >hoy.txt

    echo futuro >mañana.txt

    for %%E in (*.txt) do ren %%E *.doc -Suponiendo q no haya mas txt y asi probarlo porq sino funciona hay que renombrar cada uno por separado ren ayer.txt ayer.doc

    ren ayer.doc reya.doc

    ren hoy.doc yoh.doc

    ren mañana.doc anañam.doc

    for%%P in (*.doc) do attrib +r %%P -Solo si no hay mas ficheros .doc

    for%%A in (*.doc) do attrib %%A -Probar y si no funciona copiar por separado cada uno copy reya.doc D: \MIO

    MD MIO

    For %%D in (*.doc) do copy %%D D: \MIO

    NB:Cada frase debe ir anunciada en pantalla con mensaje alusivo,pause y cls

    4º ejercicio

    rem batch de ejemplo

    pause

    @echo off

    echo se mostrara lista archivos

    pause

    dir/p

    pause

    cls

    echo se chequeara el disco

    chkdsk

    pause

    cls

    ------------------------------------------------------------------------------------------------------------------------------------------------

    6.Hacer un bat (viernes.bat)que cree y muestre un archivo viernes.txt con todos los ficheros creados/modificados el 16/03/01

    Comando CALL:

    Comando interno que se usa dentro de los procesos batch para llamar a otro fichero batch. Una vez que ha concluido con el fichero llamado devuelve el control ala instrucción siguiente despues del call.

    No es lo mismo llamar a un batch por su nombre que mediante call, ya que en el primer caso el batch concluye y no continúa en la instrucción siguiente como en el caso de call.

    Ejemplo de este funcionamiento son los 3 batch siguientes:

    7. llama.bat

    rem programa que llama

    @echo off

    cls

    echo comienza el que llama

    call invoca1.bat {se ejecuta y devuelve el control}

    echo estoy de vuelta

    pause

    invoca2{se ejecuta pero no devuelve el control}

    echo reqresé al que llama

    pause

    8. invoca1.bat

    rem programa invoca1.bat

    @echo off

    cls

    echo soy invoca1

    pause

    9.invoca2.bat

    rem programa invoca2.bat

    @echo off

    cls

    echo soy invoca2

    pause

    Paso de parámetros a un batch

    Cuando se ejecuta un batch bien llamado por su nombre o por la sentencia call, se pueden añadir hasta 9 palabras a continuación del nombre del batch separadas por espacios, interpretándose cada una de ellas como un parámetro y por tanto una información o dato que el batch necesita para ejecutarse. La secuencia de palabras recibe los nombres de %1, %2...%9, reservándose el tanto por ciento(%) 0 para el nombre del propio batch.

    Ejemplo: param.bat

    Rem paso de parámetros

    @echo off

    cls

    echo %1

    type %2

    dir %3

    attrib %4

    md d:\windows\%6

    copy %5 d:\windows\%6

    ren %7 otro.txt

    find “NUEVE” %9

    del %9

    dir %0

    **antes de ejecutar param.bat, situarse en \windows y crear este otro bat llamado:

    previo.bat

    cada vez que lo probemos hay que borrar otro.txt y ver directorio \seis y ejecutar antes previo

    @echo off

    cls

    echo dos > dos.txt{no hay uno}

    echo tres > tres.txt

    echo cuatro > cuatro.txt

    echo cinco > cinco.txt

    {no hay seis}

    echo siete > siete.txt

    echo ocho >ocho.txt

    echo nueve > nueve.txt

    ** Después ejecutar: previo

    param nada dos.txt tres.txt cuatro.txt seis siete.txt ocho.txt nueve.txt

    OJO: SOLO “SEIS” será el nombre del directorio...

    Muestra.bat

    Rem paso para parametros dentro de un bat

    @echo off

    cls

    echo fichero creado >creado.txt

    call copia creado.txt{este valor es %1}

    echo se ha obtenido copia...

    pause

    attrib +r recreado.txt

    dir recreado.txt /a:r

    demuestra.bat

    rem demuestra.bat

    @echo off

    cls

    echo se va a copiar el fichero traspasado...

    pause

    copy d:\windows\%1 recreado.txt

    En este ejemplo solo se ejecuta MUESTRA.BAT y los 2 bat's han de estar creados en d:\windows

    todos los bat se crean en windows

    CALL

    Llama a un programa de procesamiento por lotes desde otro sin detener el funcionamiento del primer programa de procesamiento por lotes.

    Sintaxis

    CALL [unidad:][ruta] nombrearchivo [parámetros-lotes]

    Parámetros

    [unidad:][ruta]nombrearchivo

    Especifica la posición y el nombre del programa de procesamiento por lotes que desee llamar. El nombre del archivo deberá contener una extensión .BAT.

    parámetros-lotes

    Especifica cualquier información para la línea de comandos que el programa de procesamiento por lotes requiera.

    IF (CONDICION)

    Ejecuta un procesamiento condicional en programas de procesamiento por lotes. Si la condición especificada por un comando IF es verdadera, MS-DOS ejecutará el comando que siga a la condición. Si la condición es falsa,MS-DOS hará caso omiso del comando. Podrá utilizar este comando sólo en programas de procesamiento por lotes.

    Sintaxis

    IF [NOT] ERRORLEVEL número comando

    IF [NOT] cadena1==cadena2 comando

    IF [NOT] EXIST nombrearchivo comando

    Parámetros

    NOT

    Especifica que MS-DOS deberá ejecutar el comando solamente si la condición es falsa.

    ERRORLEVEL número

    Especifica una condición verdadera sólo si el programa anterior ejecutado por COMMAND.COM devolvió un código de salida igual o mayor que el número.

    comando

    Especifica el comando que MS-DOS deberá ejecutar si la condición previa se cumplió.

    cadena1==cadena2

    Especifica una condición verdadera solamente si cadena1 y cadena2 son iguales. Estos valores pueden ser cadenas literales, variables de procesamiento por lotes (por ejemplo, %1) o el valor de las variables del entorno (por ejemplo, PATH). Las cadenas literales no necesitan comillas.

    IF (CONDICION)--Ejemplos

    El ejemplo siguiente se utiliza para comprobar la existencia de un directorio determinado. El comando IF no puede utilizarse para averiguar directamente la existencia de un directorio, pero el dispositivo null (NUL) sí existe en cada directorio del disco duro. Por lo tanto, podrá comprobar la existencia de dicho dispositivo para averiguar si existe un directorio en el disco duro.

    if exist c:\midir\nul goto proceso

    El ejemplo siguiente presentará el mensaje "No se encuentra el archivo de datos" si MS-DOS no puede encontrar el archivo PRODUCTO.DAT:

    if not exist producto.dat echo No se encuentra el archivo de datos

    Cuando un programa se detiene, éste devuelve un código de salida a MS-DOS.Por ejemplo, generalmente se usa un valor de 0 para indicar que un programa se ha ejecutado con éxito. El parámetro ERRORLEVEL le permite usar códigos de salida como condiciones.

    El ejemplo siguiente presentará un mensaje si ocurre un error al dar formato a un disquete en la unidad A. Si no se produce un error, el mensaje no aparecerá.

    :comenzar

    echo off

    format a: /s

    if not errorlevel 1 goto fin

    echo Ocurrió un error durante el formato.

    :fin

    echo Fin del programa de procesamiento por lotes.

    CHOICE

    Parámetros de ERRORLEVEL

    La primera tecla que asigne devolverá un valor de 1, la segunda un valor de 2, la tercera un valor de 3 y así sucesivamente. Si el usuario presiona una tecla que no se encuentre entre las teclas asignadas, CHOICE emitirá un sonido de advertencia (es decir, enviará un carácter BEL o 07h a la consola).

    Si CHOICE detecta una condición de error, devolverá un valor ERRORLEVEL de 255. Si el usuario presiona CTRL+INTERRUMPIR o CTRL+C, CHOICE devolverá un valor ERRORLEVEL de 0.

    Cuando utilice parámetros de ERRORLEVEL en un programa de procesamiento por lotes, lístelos en orden decreciente.

    IF: Comando interno empleado dentro de los batch para chequear tres casos concretos:

  • la existencia o no de ficheros directorios y unidades de disco

  • el valor devuelto por determinadas órdenes externas del DOS mediante errorlevel para saber si el comando se ejecutó bien o mal

  • para comparar cadenas, la mayoría de las veces proveniente del paso de parámetros.

  • El comando if sólo se puede usar en estos casos y por tanto su ámbito es mucho más restringido que en la programación.

    Su sintáxis concuerda con alguno de los tres formatos siguientes, de los que se deduce lo siguiente:

    Ej: If exist C:\dos\nul echo existe el directorio DOS

    If not exist F:\nul echo no existe la unidad F

    If exist hymem.sys echo el controlador de memoria extendida está

    Find “sistema” leame.txt if errorlevel 0 echo se ha encontrado la cadena

    If errorlevel 1 echo no se encontró la palabra

    If “%1” == “” echo no hay parámetros

  • Si se pregunta de forma negativa incluiremos la partícula not

  • No tiene else tomándose por tal la línea siguiente

  • Orden es cualquier comando del DOS pero normalmente es una llamada a una etiqueta mediante la orden GOTO.

  • rem ejemplos de IF

    @ echo off

    cls

    echo se quiere pasar el nombre del archivo

    echo pasado como parámetro por nuevo.txt

    pause

    if "%1" == "" goto no_hay

    ren d:\windows\%1 nuevo.txt

    goto fin

    :no_hay

    echo no se dice que archivo es y por tanto no se le cambia el nombre

    :fin

    Para que no de error si no existe el archivo pasado como parámetro

    rem ejemplos de IF

    @ echo off

    cls

    echo se quiere pasar el nombre del archivo

    echo pasado como parámetro por nuevo.txt

    pause

    if "%1" == "" goto no_hay

    if not exist d:\windows\%1 goto fin

    ren d:\windows\%1 nuevo.txt

    goto fin

    :no_hay

    echo no se dice que archivo es y por tanto no se le cambia el nombre

    :fin

    Ejercicios:

    1.Bat que chequee la existencia de las unidades C: D: y F: y muestre los archivos ocultos de la raiz...Buscadisco.bat

    @echo off rem buscadisco.bat

    if exist c:\nul goto uno @echo off

    if not exist c:\nul goto dos cls

    if exist c:\nul goto hay_c

    :uno echo no hay c:

    echo la unidad c: existe pause

    dir c: /a:h :sigue_d

    if existd:\nul goto hay_d

    :dos echo no hay d:

    if exist d:\nul echo la unidad d: existe pause

    dir d: /a:h :sigue_f

    if not exist d:\nul goto tres if existf:\nul goto hay_f

    echo no hay f

    tres: pause

    if exist f:\nul echo la unidad f: existe goto fin

    dir f: /a:h :hay_c

    ......

    2.Bat que haga lo mismo pero reciba como parametros, las letras de las unidades que se quieren chequear..Buscaletras.bat

    Rem chequeo de unidad de disco por parametros

    @echo off

    cls

    if exist %1\ nul goto hay_unidad

    echo no hay tal unidad

    pause

    goto fin

    :hay_unidad

    dir %1 /a:h

    :fin

    Nota: Si queremos mejorarlo

    @echo off

    cls

    if “%1”==” “ goto sin_par

    if exist %1\nul goto hay_uni

    echo no hay tal unidad...

    pause

    goto fin

    :sin_par

    echo no se dice cual unidad...

    echo vuelva a intentarlo...

    pause

    goto fin

    :hay_uni

    dir %1 /a:h

    :fin

    3.Bat que cree subdirectorio \procesos en windows comprobando su existencia y copiando dentro los *.bat ...proceso.bat

    Rem creacion de proceso y copia de lo *.bat

    @echo off

    cls

    if exist d:\windows\proceso\nul goto copia

    md d:\windows\proceso

    :copia

    copy d:\windows\*.bat d:\windows\proceso

    echo se han copiado los *.bat

    4.Bat q modifique autoexec.bat comprobando su existencia y si no lo hay,q lo cree, para añadir una linea `lh doskey' si no la tenia...auto.bat

    Rem BAT q modifica AUTOEXEC.BAT

    @echo off

    cls

    if exist c:\autoexec.bat goto seguir

    echo lh doskey > c:\autoexec.bat

    goto fin

    :seguir

    find “doskey” c:\autoexec.bat

    if errorlevel 0 goto mensaje

    echo lh doskey >>c:\autoexec.bat

    goto fin

    :mensaje

    echo el archivo ya contenia la orden

    :fin

    Ejercicio atrasado del capitulo de FIND

    Rem bat que reune todos los *.txt en un archivo

    @echo off

    cls

    for %%T in (d:\windows\*.txt) do call reune %%T

    REM BAT llamado por union.bat Se ejecuta union

    @echo off

    cls

    dir%1 /b >>union.txt

    type %1 >>union.txt

    echo se copio archivo

    dir%1 /b

    Creacion del bat del examen

    rem comienzo del bat

    @echo off

    cls

    rem comprueba existencia de parametro

    if "%1"=="" goto falta

    rem sigue por aqui si hay parametro

    rem y mete el parametro dentro de ejecuta.bat

    dir %1.* /s/b >ejecuta.bat

    find "%1" d:\ejecuta.bat /I

    if not errorlevel 0 goto mensaje

    ejecuta

    goto fin

    :mensaje

    echo la orden no esta cargada

    pause

    :fin

    Choice [texto] [/c:teclas] [/s /n] [/t :tecla, sq]

    Comando utilizado en procesos bat para la confeccion de menus. Permite elegir alguna de las opciones del menu mediante el valor de errorlevel devuelto

    Parametros:

    Se puede incluir un mensaje referente ala opcion q se escoje.

    Se pueden delimitar las teclas permitidas para elegir la opcion sin distinguir entre mayusculas y minusculas. Si se asume se cogen por defecto las teclas s n

    /s para distinguir entre mayusculas y minusculas

    /n para eliminar el mensaje q aparece por defecto con el comando choice

    /t especifica q tecla se asume por defecto entre las ofrecidas y al cabo de cuanto tiempo en segundos se apuesta por esa opcion automatica.

    CHOICE (Opción)

    En un programa de procesamiento por lotes, solicita del usuario que realice una selección. Realiza una solicitud y aguarda hasta que el usuario elija entre un conjunto de teclas específico. Sólo podrá utilizar este comando en programas de procesamiento por lotes.

    Para obtener más información sobre el parámetro ERRORLEVEL, consulte <CHOICE--Nota> y el comando <IF>.

    Sintaxis

    CHOICE [/C[:]teclas] [/N] [/S] [/T[:]c,nn] [texto]

    Parámetros

    texto

    Especifica el texto que desea presentar antes del símbolo del sistema. Sólo se requieren comillas si incluye un carácter modificador (\) como parte del texto antes del símbolo del sistema. Si no especifica texto,CHOICE sólo presentará un símbolo del sistema.

    Modificadores

    /C[:]teclas

    Especifica las teclas permitidas en el símbolo del sistema. Al mostrarlas, dichas teclas estarán separadas por comas, aparecerán

    entre corchetes ([ ]) y estarán seguidas de un signo de interrogación. Si no especifica el modificador /C, CHOICE usará SN como

    la opción predeterminada. Los dos puntos (:) son opcionales.

    /N

    Evita que CHOICE presente el símbolo del sistema. Sin embargo, aún se presentará el texto especificado. Si especifica el

    modificador /N, las teclas especificadas aún serán válidas.

    /S

    Indica que CHOICE deberá distinguir entre letras mayúsculas y minúsculas. Si no se especifica el modificador /S, CHOICE

    aceptará tanto mayúsculas como minúsculas para las teclas que el usuario especifique.

    /T[:]c,nn

    Causa que CHOICE efectúe una pausa durante el número de segundos especificado antes de conmutar a una tecla

    predeterminada. Los valores del modificador /T son los siguientes:

    c

    Especifica el carácter al cual conmutará después de haber transcurrido nn segundos. El carácter deberá encontrarse entre el

    conjunto de opciones especificado por el modificador /C.

    nn

    Especifica el número de segundos que durará la pausa. Los valores aceptables están entre 0 y 99. Si se especifica 0, no se

    efectuará ninguna pausa antes de conmutar al valor predeterminado.

    CHOICE--Ejemplos

    Lo que el usuario ve al usar CHOICE en un programa de procesamiento por lotes

    Si utiliza la siguiente sintaxis en un programa de procesamiento por lotes, choice /c:snc

    el usuario verá lo siguiente al iniciar CHOICE: [S,N,C]?

    Si le agrega texto a la sintaxis, choice /c:snc Sí, No o Continuar

    el usuario verá lo siguiente al iniciar CHOICE:Sí, No o Continuar [S,N,C]?

    Lo que el usuario ve si se omite el símbolo del sistema

    Si, como se demuestra en el siguiente ejemplo, se utiliza el modificador /N para omitir el símbolo del sistema en un programa de procesamiento por lotes,

    choice /n ¿Sí, No o Continuar? el usuario verá sólo el texto especificado al iniciar CHOICE:

    ¿Sí, No o Continuar?

    Lo que el usuario ve si se usa el modificador /T

    Si utiliza la siguiente sintaxis en un programa de procesamiento por lotes, choice /c:snc /t:n,5

    el usuario verá lo siguiente al iniciar CHOICE: ¿[S,N,C]?

    Si después de 5 segundos el usuario no ha presionado una tecla, CHOICE seleccionará N y devolverá un valor ERRORLEVEL de 2. Si el usuario presionó una tecla antes de los 5 segundos, CHOICE devolverá el valor que corresponda a la selección del usuario.

    Para disponer de la opción de defragmentación de la unidad C cuando inicie su PC, agregue las siguientes líneas a su archivo AUTOEXEC.BAT:

    choice Defrag unidad /ty,5

    if errorlevel 2 goto SkipDefrag

    defrag c:

    :SkipDefrag

    Si presiona N antes de 5 segundos, DEFRAG no se ejecutará y CHOICE devolverá un valor ERRORLEVEL de 2. Si no presiona N antes de 5 segundos o si elige S, DEFRAG se ejecutará en la unidad C.

    Uso de CHOICE en un programa de procesamiento por lotes El siguiente programa de procesamiento por lotes demostrará el uso de la opción CHOICE para seleccionar uno de tres programas: Editor de MS-DOS, Microsoft Anti-Virus o Copia de seguridad.

    Observe que las declaraciones IF ERRORLEVEL aparecen en orden decreciente.

    MS-DOS considerará que la declaración IF es veraz si el parámetro ERRORLEVEL devuelto por CHOICE es mayor o igual que el parámetro especificado en el comando IF.

    @echo off

    cls

    echo.

    echo A Microsoft Editor

    echo B Microsoft Anti-Virus

    echo C Microsoft Copia de seguridad

    echo.

    choice /c:abc Elija una opción

    if errorlevel 3 goto MSBackup

    if errorlevel 2 goto Msav

    if errorlevel 1 goto Edit

    :Edit

    edit

    goto End

    :Msav

    msav

    goto End

    :Msbackup

    msbackup

    goto End

    :End

    Ejercicio

    Confeccionar un menu con las siguientes opciones

    Main.bat

    MENU PRINCIPAL

    1.- Chequeo de disco

    2.- Lista de atributos

    3.- Fecha y hora{sin posibilidad de cambiarlos }

    4.- Salir

    Opcion elegida: {5 seg. Y salir }

    Tras ejecutar opción del submenú vuelve al principal

    1.- CHEQUEO DE DISCOS

    A.- Disquetera dentro del main.bat

    B.- Disco duro

    Elija unidad: {solo letras A y C }

    2.- ATRIBUTOS DE FICHEROS

    0.-Ayuda{muestra fichero} llamado por main

    1.-Sistema{texto atributo.txt}

    2.-Oculto{muestra los ficheros con estos atributos} atributo.bat

    3.-Protegidos{ “}

    4.-Modificados{“}

    {y vulelven a este menu}

    Elegir atributo:

    Ejercicios de repaso para el examen:

    1.Bat que cree directorio COPIA (si no existe) y copie en el todos los bats del disco(si es q no estaban ya copiados)

    @echo off

    cls

    if exist c:\copia\nul goto hay

    md d:\copia

    :hay

    if exist d:\copia*.bat goto fin

    copy c:\*.bat c:\copia

    rem solo se copiaron los bats de la raiz

    :fin

    2.Bat q nos avise tras el arranque de algo concreto(por ejemplo pasar itv) a partir de una fecha q establezcamos(por ejemplo a partit de 1/5 y para probarlo hay q cambiar la fecha y mandar ejecutarlo desde el autoexec.bat

    NOTA:Hacer pruebas directas desde el bat y solo cuando nos funcione lo llamaremos desde autoexec.bat por su nombre en la ultima linea

    @echo off

    cls

    date>hoy.txt

    find “1/5/2001” hoy.txt /I

    if not errorlevel 1 goto mensaje

    goto fin

    :mensaje

    echo tes q pasala itv

    :fin

    MENU PRINCIPAL

    1.-DIRECTORIOS DE C:

    2.-CHEQUEO DE C:

    3.-ACTI VAR DOSKEY

    ELIJA OPCION

    UNION.BAT

    REUNE.BAT

    {MSDOS}




    Descargar
    Enviado por:Watako
    Idioma: castellano
    País: España

    Te va a interesar