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).
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
Descargar
Enviado por: | Watako |
Idioma: | castellano |
País: | España |