Ingeniero en Informática
Lenguaje de la programación
Capitulo 1
1
Estructura del DOS
DOS significa sistema operativo en disco y en el se reconocen tres niveles:
BIOS (Basic Input/Output System)
Además del BIOS básico suministrado por el fabricante del hardware, contenido en el ROM, el DOS cuenta con algunas aplicaciones al BIOS básico. Este conjunto de subrutinas se encuentran en un archivo llamado IO.SYS que se alojara en la parte mas baja de la memoria y permanece allí siempre.
Kernel
El kernel o núcleo es el encargado de la gestion de servicios a los programas aplicativos, principalmente en la gestión de archivos y menejo de RAM. Estas rutinas están contenidas en un archivo llamado DOS.SYS que también se carga al inicio y permanece siempre en la memoria.
Shell
El Shell o procesador de comandos es el que contiene los comandos internos y el encargado de cargar otros programas. Estas rutinas están contenidas en un archivo con el nombre de COMMAND.COM y consta de una parte residente, una sección de inicialización y un modulo transitorio.
La parte residente se carga en la parte baja de la memoria, justo encima del kernel y se encarga de la gestión de errores y la finalización de programas.
La sección de inicialización se carga encima del modulo residente y se encarga de la ejecución del AUTOEXEC.BAT si existiera.
Finalmente el modulo transitorio se encarga del prompt, de la lectura y procesamiento de comandos.
Cuando conectamos o reinicializamos nuestra PC, el P procede a ejecutar el programa contenido en la dirección FFFF0 hex donde normalmente hay una instrucción de salto hacia la ROM BIOS que contiene un programa (bootstrap) que realiza una serie de pruebas al hardware y si todo esta en orden le pasa el control al disco del sistema, que si contiene un sistema operativo en su sector de arranque procede a ejecutarlo.
El sector de arranque es DOS, comprueba en la primera entrada del directorio en busca del archivo IO.SYS si existe le cede el control. El IO.SYS esta compuesto por dos módulos, el primero contiene el sistema básico de entrada/salida del sistema operativo, el segundo denominado SYSINIT comprueba la cantidad de memoria del sistema y procede a autoinstalarse en la parte alta de la memoria.
Posteriormente el modulo SYSINIT se encarga de tomar el kernel del DOS y cargarlo en memoria, realizando una llamada al DOS.SYS que inicializa las tablas internas y el area de trabajo, actualiza los vectores de interrupción y genera una lista de las unidades controladoras, inicializando cada una de ellas.
El kernel se encarga de examinar los bloques de parámetros devueltos por las unidades controladoras, a fin de calcular el tamaño de sector usado. Finalmente el kernel se encarga de devolver el mensaje de Copyright y pasar el control nuevamente al SYSINIT.
El SYSINIT realiza entonces una llamada a los servicios de archivo del DOS, para abrir el CONFIG.SYS (si existe) y personalizar el entorno siguiendo las intrucciones en este archivo opcional.
Una vez terminado este proceso se hace una llamada a la función EXEC y se carga el interprete de comandos el COMMAND.COM dejándole el control al procesador de ordenes que finalmente ejecuta los comandos contenidos en el AUTOEXEC.BAT (si existe).
Memoria transitoria y residente:
DOS carga el intérprete de comandos en la memoria en dos partes, la parte residente (que siempre esta en la memoria) y la parte transitoria (al principio de la memoria convencional). Algunos programas escriben sobre la parte transitoria de COMMAND.COM cuando se ejecutan. Cuando esto sucede, la parte residente deber buscar el archivo COMMAND.COM en el disco para volver a cargar la parte transitoria. La variable de ambiente COMSPEC identificar el lugar en el que se encuentre COMMAND.COM en el disco. Si COMSPEC indica una unidad de disquete, es posible que DOS le pida que inserte el disquete que contenga COMMAND.COM.
Si DOS esta cargado en la memoria HMA, una porción de COMMAND.COM residente también se cargar en la memoria HMA, dejando m s memoria convencional disponible para programas.
A COMMAND se le llama intérprete de comandos ya que lee y procesa cualquier comando introducido. COMMAND reconoce y ejecuta algunos comandos. COMMAND considera estos comandos como internos. Otros comandos de DOS son programas por separado localizados en su disco duro, que DOS carga de la misma manera que otros programas.
AUTOEXEC.BAT
AUTOmatically EXECutting BATch, archivo que se existe con ese mismo nombre en el directorio raíz del disco de arranque se ejecuta automáticamente. Sirve para personalizar el sistema operativo a gusto del usuario.
Esquema de memoria del PC
En el diseño de la PC original, los ingenieros de IBM consideraron equipar al PC con 1 MB de RAM. Pronto se noto que esto era muy poco y a partir de las computadoras 386 (de 32 bits) se establecen adiciones de mas RAM.
Memoria base o convencional
Es la comprendida en los primeros 640KB, es la mas importante, debido a que es en esta zona donde deben ejecutarse los programas y mantenerse los datos para que los maneje el P.
En esta zona se encuentra el sistema operativos DOS, los programas residentes (TSR), las aplicaciones y sus datos.
Si esta zona esta muy recargada, pudiera ocurrir que un determinado programa no pueda ejecutarse, debido a insuficiencia de memoria. Es por eso que uno de nuestros objetivos debe ser siempre el de liberar la mayor cantidad posible de esta memoria, ya sea cambiando al DOS hacia el HMA, los TSR (Terminate and Stay Resident) hacia UMB o simplemente no cargándolos.
Bloques de memoria alta UMB (Upper Memory Blocks)
Se trata de 384 KB comprendidos entre 640 y los 1025 KB, fueron destinados originalmente para ejecutar programas de control del BIOS (Basic Input/Output System), control y memoria del vídeo y algún otro dispositivo que necesitase memoria.
Posteriormente con el ingreso del 386 (P de 32 bits) se tubo la idea de aprovechar esta zona de memoria, ya que muchas veces son apenas usadas en el arranque y luego liberadas. A partir del DOS v5 gracias a ciertos programas como EMM386.EXE se puede aprovechar estos huecos disponibles y usarlos para colocar pequeños TSR o de control de dispositivos (Ej MOUSE.SYS) liberando así algo de memoria convencional.
Area de memoria superior HMA (Hight Memory Area)
Son 64 KB ubicados entre 1024 y 1088 KB. Desde DOS v5 y mediante el HIMEM.SYS es posible activar esta zona de memoria y enviar al DOS a esa zona, liberando una importante cantidad de memoria convencional.
Memoria Expandida EMS (Expanded Memory Specification)
Con la finalidad de añadir mas memoria al PC, se juntan tres grandes empresas: Lotus Development (hoy comprada por IBM), Intel y Microsoft Corp acuerdan la especificación LIM 3.2 que permitía hasta 16 MB. Luego en una reunión posterior aprueban la LIM 4.0 que permite manejar hasta 32 MB de RAM.
Esta memoria trabaja por un ingenioso sistema llamado paginado, que consiste en tomas 4 bloques cada uno de 16 KB en el UMB (64 KB en total) llamados marco de pagina al cual es accesible el programa debido a que su dirección esta bajo el primer MB, a la cual se copia, según convenga, una pagina física que esta ubicada sobre el primer MB. Es decir para ser manejada (lectura o escritura) cierta zona de la memoria EMS, esta debía ser transferida primero desde la pagina física al marco de pagina y en ese momento estaba disponible al programa.
Este tipo de memoria es lenta debido a que se pierde mucho tiempo en la paginación, es decir la transferencia de los bloques entre las paginas físicas (EMS) y el marco de pagina (en UMB) y de regreso.
Además el programa debe estar preparado para funcionar bajo las especificaciones LIM. Por ultimo este tipo de memoria es una tarjeta que se conecta a un bus, lo que hace aun mas lento el acceso y congestiona también el bus y requiere un controlador especial llamado DEMS.SYS
Memoria Extendida XMS (eXtended Memoy Standard)
También especificada por los mismos que el LIM solo valida para 386 y superiores (P de 32 bits) y desde DOS 5 con un manejador de nombre HIMEM.SYS permite su acceso.
Lo que hay que aclarar aquí es que para usarla el P debe funcionar en modo protegido y DOS no fue diseñado para hacerlo. El Windows 3.x por ejemplo si lo puede hacer.
Mediante un programa llamado EMM386.EXE (Extended Memory Manager) es posible emular memoria EMS a partir de memoria XMS
Memoria virtual
El Windows 3.x en modo extendido usa el disco duro como una extensión de la memoria interna del PC, moviendo datos a un archivo temporal cuando la memoria disponible no es suficiente. Algo muy parecido al funcionamiento de la EMM.
Capitulo 2
Redirecciones (>,>>,<) y canalización (|):
1. Redireccion de salida (>)
Este redireccionamiento de salida, capta la salida de un comando DOS y lo envía hacia un archivo o dispositivo. Si el archivo no existe se creara y si ya existe es sobrescrito.
Si lo que quiere es añadir algo a un archivo existente sin sobrescribir su contenido simplemente usa >>.
DIR > LIST.TXT
DIR >> LIST.TXT
DIR > PRN
DIR > LPT1
DIR > NUL
2. Redireccionar la entrada (<)
Esto funciona al revés, es decir que es el comando DOS el que recibe su entrada desde un archivo o dispositivo. Esto se usa para automatizar comandos que normalmente requerirían la entrada del usuario.
DATE < CR.DAT
3. Canalización entre comandos (|)
Combina el redireccionamiento de salida y el de entrada dentro de una sola operación capturando la salida de texto de un comando DOS y usándolo como entrada para otro.
ECHO S | DEL *.* >NUL
Primero DOS ejecuta el comando ECHO Y, luego captura su salida, para introducirlo cuando el comando DEL *.* pida una entrada, que es cuando se canaliza el texto de salida a la entrada.
TYPE autoexec.bat | MORE
4. Redireccion de salida de un batch:
Si alguna vez intento usar Redireccion con un archivo batch así:
AUTO *.* > AUTO.SAL
notaras que se creada el archivo AUTO.SAL vacio.
COMMAND /C AUTO *.* > AUTO.SAL
Esto si funciona como esperábamos.
5. Marcas de fecha y hora:
La técnica implica la redireccion de la entrada de una orden DATE y/o TIME desde un archivo que solo contenga un "CR" y la redireccion de la salida al archivo o dispositivo que se requiera fechar.
a.- Crear un archivo CR.DAT así:
COPY CON CR.DAT<Enter>
<F6><Enter>
b.- Desde la línea de comando prueba lo siguiente:
DATE < CR.DAT
La fecha actual es Lun 09-30-1996
Escriba la nueva fecha (mm-dd-aa):
TIME < CR.DAT
La hora actual es 2:48:30.01 p
Escriba la nueva hora:
c.- Ahora si quiere poner la fecha y hora en un archivo que aun no existe debes hacerlo así:
DATE < CR.DAT | FIND "L" > DATA.DAT
d.- Si el archivo ya existe entonces:
TIME < CR.DAT | FIND "L" >> DATA.DAT
Ejemplos:
Ejemplo de un archivo que te dice la hora de inicio y fin de un comando cualquiera:
COPY CON CRONO.BAT
@ECHO OFF
ECHO *** Hora de inicio
TIME < CR.DAT | FIND "L"
%3 %4 %5 %6
ECHO *** Hora de fin
TIME < CR.DAT | FIND "L"
Todos los símbolos de redireccion están prohibidos en algunos comandos de archivos BATCH como: ECHO, REM y etiquetas. La razón es que DOS intenta primero ejecutar la redireccion antes de ocuparse de la orden. Por ejemplo...
ECHO Teclee < para redireccionar la entrada.
En esta línea de BATCH, DOS intentara redireccionar la entrada desde un archivo llamado "PARA". Si no existe tal archivo, el DOS presentara un mensaje de error así: "No se encontró archivo". Si existe un archivo llamado "PARA", la orden emite el error "ECHO Teclee redireccionar la entrada.".
ECHO Teclee > para redireccionar la salida.
En esta línea de BATCH, DOS creara un archivo llamado "PARA" que contendrá la frase "ECHO Teclee redireccionar la salida." Si ya existía un archivo con el nombre "PARA" este será sobrescrito.
ECHO Teclee | para extraer la salida.
En esta línea BATCH, DOS mandara un mensaje "Mandato o nombre de archivo erróneo" si no existe el archivo llamado "PARA".
Suponga que tiene un archivo de nombre VENDEDOR.TXT conteniendo los nombres de los vendedores de una empresa. Cu l es la orden para guardar el archivo vendedor ordenado en forma descendente en otro archivo de nombre LISTADO.TXT
TYPE VENDEDOR.TXT|SORT > LISTADO.TXT
SORT <VENDEDOR.TXT >LISTADO.TXT
Cual es la orden para ver el contenido del archivo BASICO.TXT que se encuentra en el directorio "IDIOMA" en la unidad actual y que haga pausa en cada pantalla
TYPE IDIOMA\BASICO.TXT | MORE
Ordene al computador buscar la frase COMPETENCIA LEGAL en el archivo LEGALES.TXT que reside en la unidad B:
FIND "COMPETENCIA LEGAL" B:\LEGALES.TXT
Ejercicios:
Mostrar en pantalla las líneas que contengan la palabra "sacapuntas" en el archivo de texto LAPIZ.DOC
Obtener una copia de la ayuda del comando FORMAT, en un archivo texto con el nombre "HELP.DOC"
Combinar el contenido de tres archivos creando un cuarto archivo sin modificar los originales. Ejemplo: ARCH1.DOC, ARCH2.DOC y ARCH3.DOC sobre un nuevo archivo TOTAL.DOC
Crear un archivo texto que contenga los datos (nombre, extensión, tamaño, fecha y hora) de todos archivos del disco duro, directorio raíz, ordenados alfabéticamente por nombre.
Buscar entre todos los archivos batch de los directorios: raíz, DOS y PRUEBA del disco C: y mostrar las líneas que contengan la palabra "Ayudante"
Capitulo 3
Proceso por lotes
Un archivo batch o programa de procesamiento por lotes es un archivo de texto sin formato que contiene uno o más comandos DOS validos y que tiene asignada una extensión BAT. Cuando escribes el nombre del programa de procesamiento por lotes en la línea de comandos, los comandos se ejecutan como un grupo.
Los archivos batch aceleran tu trabajo, ya que no tienes que tipear cada comando y sobre todo recordamos, solo tipeas el nombre y se realiza toda la tarea.
Cualquier comando DOS que uses en el símbolo del sistema también podrá incluirse en un programa de procesamiento por lotes. Los siguientes comandos DOS están diseñados especialmente para archivos batch:
Echo | Rem | Pause |
If | For | Goto |
Shift | Call | Choice |
Puede usar el comando COMMAND /Y para repasar un programa de proceso por lotes línea por línea y elegir la ejecución u omisión de comandos individuales. Esto te permite encontrar los problemas en archivos batch.
Se puede agregar espacios verticales a un archivo de procesamiento por lotes usando líneas en blanco. DOS hará caso omiso de las líneas en blanco al ejecutar un programa de procesamiento por lotes.
Nota: Si DOS presenta un mensaje "Error de archivo intermedio durante la interconexión", asegúrate de colocar un <Enter> al final de la ultima línea de tu batch.
Variables de entorno
Con el comando SET podemos consultar sobre las variables de entorno y desde un archivo batch podemos leer variables DOS, simplemente encerrándolas entre % ejemplos:
Ejemplo 1: Consultando una variable
IF "%USER%"=="EGL" GOTO Fin
Ejemplo 2: Para cambiar el PATH se usa
SET OLDPATH=%PATH%
SET PATH=C:\DOS;C:\FOX
...
SET PATH=%OLDPATH%
SET OLDPATH=
Parámetros (%n)
Es posible asignar hasta 9 parámetros a un comando BATCH, simplemente escriba el nombre del archivo y luego los parámetros que quiera transferir a su programa, separados por un espacio.
Estos parámetros se almacenan en variables temporales con los nombres 1 al 9 y para consultarlos (como se hace con cualquier otra variable) se usa %n.
La variable %0 tomara el nombre del archivo BATCH.
Ejemplo:
COPY CON CAMBIO.BAT
IF .%1==. GOTO Help
ECHO Parámetro es valido y vale %1
SET PATH=%PATH%;%1
GOTO End
:Help
ECHO Para usar este batch solo tipea %0
:End
Para usarlo solo tipee CAMBIO C:\DOS
ECHO (Eco)
Muestra u oculta el texto de programas de procesamiento por lotes cuando el programa se esté ejecutando. También indica si la función de repetición de comandos está activada o desactivada.
Al ejecutar un programa de procesamiento por lotes, DOS generalmente presenta los comandos en la pantalla (hace eco) mientras se ejecutan. Es posible activar o desactivar esta característica mediante el comando ECHO.
Sintaxis: ECHO [ON|OFF] o ECHO [mensaje]
ON|OFF
Especifica si será activada (on) o desactivada (off) la característica de presentar los comandos en la pantalla. Si desea ver el estado actual del comando ECHO, utilice dicho comando sin parámetro.
Mensaje
Especifica el texto que desee que DOS presente en la pantalla.
Notas:
El comando ECHO mensaje es útil si ECHO está desactivado. Para presentar un mensaje que consista de varias líneas sin presentar otros comandos, podrá incluir varios comandos de mensaje ECHO después del comando ECHO OFF en su programa de procesamiento por lotes.
Si se usa el comando ECHO OFF en la línea de comandos, el símbolo del sistema no aparecerá en la pantalla. Para volver a presentar el símbolo del sistema, escriba ECHO ON. Ocultara el símbolo del sistema.
Para impedir que DOS presente en la pantalla una línea determinada aun si ECHO esta ON en un batch, inserte el símbolo @ delante del comando.
Para mostrar una línea en blanco en la pantalla, escriba ECHO seguido de un punto (ECHO.) sin espacio entre el comando y el punto.
Nunca use redirecciones, no es posible presentar los caracteres de canalización (|) o de redirección (< o >) usando el comando ECHO.
Ejemplos:
ECHO OFF
ECHO.
ECHO
IF EXIST *.inf ECHO El informe ha llegado.
Para mostrar algo grande en pantalla, mejor que cuchucientas líneas con ECHO es crear un archivo texto con lo que quiero mostrar y desde mi batch uso TYPE.
REM (Comentario)
Permite que se incluyan comentarios (observaciones) o impide la ejecución de comandos en un programa de procesamiento por lotes. (También podrás usar punto y coma (;) para inhabilitar comandos.)
DOS hace caso omiso de cualquier comando o línea de un BATCH que comience con REM o con un punto y coma (;).
Sintaxis: REM [comentario] o ;[comentario]
Notas:
El comando REM no presenta los comentarios en la pantalla. Para presentar comentarios en la pantalla, usa el comando ECHO en el programa de procesamiento por lotes o en el archivo CONFIG.SYS.
Los caracteres de redirección (>, >> o <) o el símbolo de canalización (|) no se pueden usar en un comentario dentro de un archivo de procesamiento por lotes.
PAUSE (Pausa)
Suspende la ejecución del BATCH y muestra un mensaje indicando al usuario que presione cualquier tecla para continuar. Sólo podrá usar este comando dentro de programas de procesamiento por lotes.
Sintaxis: PAUSE
Notas:
Mensaje al usuario para continuar el programa Presione cualquier tecla para continuar.
Si presiona <Ctrl><C> para detener el programa de procesamiento por lotes, DOS presentará el siguiente mensaje:
Terminar el proceso por lotes? (S/N)
Ejemplo 1:
Supongamos que desea que un programa BATCH pida al usuario que cambie el disquete en una de las unidades de disquete.
@ECHO OFF
:Inicio
ECHO Por favor inserte un nuevo disquete en la unidad A
PAUSE
FORMAT A: /U
GOTO inicio
Claro que para terminar la ejecución de este batch deberá hacer <Ctrl><C> o <Ctrl><Break> ya que es un bucle (loop) infinito.
:Etiquetas
En un programa de procesamiento por lotes es una línea usada como marca de llegada para un comando GOTO. Para que sea reconocida una línea como etiqueta, deberá estar precedida por dos puntos (:) en el margen izquierdo y a continuación un nombre, donde solo serán significativos los primeros 8 caracteres.
Si DOS reconoce una línea como etiqueta, no la procesa como un comando, ignorándola.
Valores válidos para la etiqueta:
El parámetro etiqueta puede incluir espacios pero no puede incluir ningún otro separador, como por ejemplo, puntos, comas, signos igual, redirectores (>. >>, o <) o el símbolo de canalización (|).
El DOS siempre busca las etiquetas a partir de la primera línea del archivo batch, por lo que en caso de poner dos etiquetas iguales, nunca se ejecutara la segunda.
GOTO (ir a)
El comando GOTO indica a DOS que vaya a una línea específica, identificada por una etiqueta, dentro de un programa de procesamiento por lotes. Al encontrar la etiqueta, DOS procesa los comandos a partir de la línea siguiente. Este comando solo se podrá usar dentro de archivos batch.
Sintaxis
GOTO etiqueta
etiqueta
Especifica la línea de un programa de procesamiento por lotes a la que debe dirigirse DOS.
Nota:
El comando GOTO sólo usa los primeros ocho caracteres de una etiqueta. Por lo tanto, las etiquetas "saludos01" y "saludos02" equivalen ambas a "saludos0".
Si la etiqueta especificada en el comando GOTO, no coincide con una etiqueta dentro del mismo archivo batch, dicho programa se suspenderá y DOS presentará el siguiente mensaje: 'La etiqueta no se encuentra'
Ejemplo:
El siguiente programa de procesamiento por lotes dará formato a un disquete en la unidad A como un disquete del sistema. Si la operación tiene éxito, el comando GOTO dirigirá DOS a una etiqueta denominada "fin".
@ECHO OFF
FORMAT A: /S
IF NOT ERRORLEVEL 1 GOTO Fin
ECHO Ha ocurrido un error durante el formato.
:Fin
ECHO Fin del programa de procesamiento por lotes.
IF (Condición)
Ejecuta un procesamiento condicional dentro de un batch.
Si la condición especificada por un comando IF es verdadera (o falsa si se incluye NOT), DOS ejecutará el comando que siga a la condición. Si la condición es falsa (o verdadera si se incluye NOT), DOS hará caso omiso del comando. Solo podrá usar este comando en archivos batch.
Sintaxis
IF [NOT] cadena1==cadena2 comando
IF [NOT] EXIST nombrearchivo comando
IF [NOT] ERRORLEVEL número comando
Parámetros:
comando: Especifica el comando que 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 de entorno (por ejemplo, PATH). Las cadenas literales no necesitan comillas.
EXIST nombrearchivo: Especifica una condición verdadera si nombrearchivo existe.
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 número.
Cuando un programa se detiene, éste devuelve un código de salida a DOS, el que se puede consultar con el parámetro ERRORLEVEL.
Por ejemplo, generalmente se usa un valor de 0 para indicar que un programa se ha ejecutado con éxito.
Ejemplo 1:
El siguiente BATCH se usa para comprobar la existencia de un directorio determinado. El parámetro EXIST no puede usarse para averiguar directamente la existencia de un directorio, pero el dispositivo nulo (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
Ejemplo 2:
El siguiente BATCH presentará el mensaje "No se encuentra el archivo de datos" si DOS no puede encontrar el archivo PRODUCTO.DAT
IF NOT EXIST producto.dat ECHO No hay archivo de datos
Ejemplo 3:
El siguiente BATCH 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á.
@ECHO OFF
:Inicio
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.
Nunca ponga:
IF NOT %1==Juan GOTO Fin
ya que si manda ejecutar el batch sin parámetros, el DOS envía el mensaje "Error de sintaxis" y continua en la siguiente línea. Para solucionar esto puedes hacer:
IF NOT "%1"=="Juan" GOTO Fin
O también preguntar si hay parámetros así:
IF "%1"=="" GOTO Help
FOR (para)
Ejecuta un comando especificado para cada archivo dentro de un grupo de archivos. Podrá usar este comando dentro de un programa de procesamiento por lotes o directamente desde el símbolo del sistema.
Sintaxis:
Para usar FOR en un programa de procesamiento por lotes, utilice la siguiente sintaxis:
FOR %%variable IN (conjunto) DO comando [parámetros-del-comando]
Para usar FOR desde el símbolo del sistema, utilice la siguiente sintaxis:
FOR %variable IN (conjunto) DO comando [parámetros-del-comando]
Parámetros:
%%variable o %variable
Representa una variable reemplazable. El comando FOR reemplazará la variable con cada cadena de texto en el conjunto especificado hasta que el comando (especificado en el parámetro comando) haya procesado todos los archivos.
Use %%variable para ejecutar el comando FOR dentro de un programa de procesamiento por lotes.
Use %variable para ejecutar el comando FOR desde el símbolo del sistema.
(conjunto) Especifica uno o más archivos o cadenas de texto que serán procesados con el comando especificado. Se requiere el uso de los paréntesis.
comando: Especifica el comando que será aplicado a cada archivo incluido en el grupo indicado.
parámetros-del-comando: Especifica cualquier parámetro o modificador que desee utilizar con el comando especificado (si el comando especificado utiliza parámetros o modificadores).
Notas:
Las palabras IN y DO IN y DO no son parámetros sino partes del comando FOR. Si omite cualquiera de estas palabras clave, DOS presentará un mensaje de error. Use letras como variables reemplazable para evitar confusión con los parámetros de procesamiento por lotes %0 a %9, podrá utilizar cualquier carácter para variable, excepto los números del 0 al 9.
Para programas de procesamiento por lotes, un solo carácter tal como %%F podría ser suficiente.
Podrá usar valores múltiples para variable en programas de procesamiento por lotes complejos a fin de distinguir entre las distintas variables reemplazables. Sin embargo no podrá anidar (agregar) múltiples comandos FOR en la misma línea de comandos.
Especificación de un grupo de archivos: El parámetro conjunto puede representar un solo grupo de archivos o varios grupos de archivos.
Se pueden utilizar los comodines (* y ?) para especificar un conjunto de archivos. Los siguientes son conjuntos de archivos válidos: (*.DOC) (A*.* *.TXT *.ME?) (ENE*.DOC ENE*.INF FEB*.DOC FEB*.INF) (AR??1991.*) Cuando se use el comando FOR, el primer valor en conjunto reemplazará %%variable (o %variable) y DOS ejecutará el comando especificado a fin de poder procesar este valor. Esta operación continuará hasta que DOS haya procesado todos los archivos (o grupos de archivos) que corresponden al valor (o los valores) en conjunto.
Ejemplos:
Supongamos que desea usar el comando TYPE para presentar el contenido de todos los archivos del directorio actual que tengan la extensión .DOC o TXT. Para hacer esto y usar la variable reemplazable %F, escriba el siguiente comando a continuación del símbolo del sistema: for %f in (*.doc *.txt) do type %f En este ejemplo, todos los archivos que tienen la extensión .DOC o . TXT en el directorio actual serán sustituidos por la variable %F, hasta que se haya presentado el contenido de todos los archivos. Para utilizar este comando en un programa de procesamiento por lotes, simplemente reemplace todas las instancias de %F con %%F. De lo contrario, DOS hará caso omiso de la variable y presentará un mensaje de error.
DOS acepta los modificadores de comandos, símbolos de canalización y símbolos de redirección que desee utilizar con el comando especificado. Por ejemplo, para redirigir la información de salida en el ejemplo anterior a PRN (el puerto de impresora predeterminado), escriba el siguiente comando: FOR %f IN (*.doc *.txt) DO TYPE %f > PRN:
1. Desde la línea de comandos:
FOR %I IN (*.??_) DO C:\DOS\EXTRACT /C A:\%I C:\FOX\%I
2. Desde un archivo batch:
FOR %%I IN (*.??_) DO C:\DOS\EXTRACT /C A:\%%I C:\FOX\%%I
@ECHO OFF
FOR %%P IN (%PATH%) DO ECHO %%P
FOR %%F IN (%PATH%) DO DIR %%F
FOR %%F IN (%PATH%) DO DIR %%F\%1
SHIFT (Cambiar)
Cambia la posición de parámetros reemplazables en un programa de procesamiento por lotes.
El comando SHIFT cambia los valores de los parámetros reemplazables %1 a %9 copiando cada parámetro en el anterior. En otras palabras, el valor de %2 es copiado en %1, el valor de %3 es copiado en %2 y así sucesivamente. Esto es útil para escribir un programa de procesamiento por lotes que realiza la misma operación en cualquier número de parámetros.
El comando SHIFT también se puede usar para crear un programa de procesamiento por lotes que acepte más de 9 parámetros. Si especifica más de 9 parámetros en la línea de comandos, aquellos que aparezcan después del noveno (%9) serán desplazados uno por uno sobre el parámetro %9.
No hay forma de invertir el comando SHIFT. Una vez ejecutado el comando SHIFT, no podrá recuperar el primer parámetro (%1) que existiera antes de realizarse el desplazamiento.
Ejemplo:
El siguiente programa de procesamiento por lotes, MICOPIA.BAT, muestra cómo se utiliza el comando SHIFT con cualquier número de parámetros. Copia una lista de archivos a un directorio específico. Los parámetros constan del nombre del directorio seguido de cualquier número de nombres de archivos.
Ej: COPIA \VENTA\ENE CUCO.TXT SNOOP.TXT VILMA.TXT
@ECHO OFF
SET Ruta=%1
:Inicio
SHIFT
IF "%1"=="" GOTO Fin
COPY %1 %Ruta%
GOTO Inicio
:Fin
SET Ruta=
ECHO Programa terminado
CALL (llamar)
Llama a otro batch como si fuera una subrutina, es decir al terminar le devolverá el control al primer batch.
Sintaxis:
CALL [unidad:][ruta] nombrearchivo [parametros-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.
parametros-lotes
Especifica cualquier información para la línea de comandos que el programa de procesamiento por lotes requiera.
Notas:
Uso de parámetros-lotes: Podrá ser incluir cualquier información que se pueda suministrar a un programa de procesamiento por lotes, incluyendo modificadores, nombres de archivos, los par metros reemplazables %1 a %9 y las variables de entorno tales como %baud%.
No use signos de canalización ("|") o de redirección ("<<","<",">", y ">>") con el comando CALL.
Llamadas recursivas:
Puede crear un programa de procesamiento por lotes que se llame a sí mismo, pero necesitar incluir una condición de salida. De lo contrario, podría crearse una operación de bucle infinita entre el programa de procesamiento por lotes padre y el programa de procesamiento por lotes hijo.
Ejemplos:
Para ejecutar el programa VERIFICA.BAT desde otro programa de procesamiento por lotes, deber incluir el siguiente comando en el programa padre:
CALL verifica
Supongamos que el programa padre acepta dos parámetros reemplazables y quieres que estos parámetros se pasen a VERIFIC.BAT. Podrías incluir el siguiente comando en el programa padre:
CALL verifica %1 %2
CHOICE (Opción)
Con este comando es posible solicitar al usuario que realice una selección y aguardar hasta que el usuario elija entre un conjunto de teclas específicas.
Sintaxis:
CHOICE [/C[:]teclas] [/N] [/S] [/T[:]c,nn] [mensaje]
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.
Notas:
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><Brake> o <Ctrl><C>, CHOICE devolverá un valor ERRORLEVEL de 0.
Cuando use parámetros de ERRORLEVEL en un programa de procesamiento por lotes, siempre lístelos en orden decreciente.
Ejemplos:
Si usa 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 usa 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.
Observa que las declaraciones IF ERRORLEVEL aparecen en orden decreciente. 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 Editor
ECHO B Anti-Virus
ECHO C Copia de seguridad (Backup)
ECHO.
CHOICE /C:ABC Elija una opción
IF ERRORLEVEL 3 GOTO Backup
IF ERRORLEVEL 2 GOTO Antivirus
IF ERRORLEVEL 1 GOTO Edit
:Edit
EDIT
GOTO Fin
:Antivirus
MSAV
GOTO Fin
:Backup
MSBackup
:Fin
ERRORLEVEL
Variable numérica del DOS, que normalmente muestra si existió algún error en la ejecución de un comando. (0= no hay error)
Capitulo 4
Algunos ejemplos desarrollados y comentados...
1. Crear un batch de nombre SAPO que muestre uno tras otro en intervalos de 10 segundos los archivos CUCO.TXT, SNOOP.TXT y CANDADO.TXT, dando la opción de abandonar la operación con la letra S de Salir.
Batch SAPO.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
:Inicio
---> Etiqueta a la que hace referencia un GOTO
CLS
---> Borra la pantalla
TYPE CUCO.TXT
---> Muestra el archivo CUCO.TXT
CHOICE /C:AS /T:A,10 /N Teclea la letra S ahora para salir...
---> Pausa de 10 seg esperando la letra S de salir
IF ERRORLEVEL 2 GOTO Fin
---> Si se tecleo la letra S ir al fin del batch
CLS
---> Borra la pantalla
TYPE SNOOP.TXT
---> Muestra el archivo SNOOP.TXT
CHOICE /C:AS /T:A,10 /N Teclea la letra S ahora para salir...
---> Pausa de 10 seg esperando la letra S de salir
IF ERRORLEVEL 2 GOTO Fin
---> Si se tecleo la letra S ir al fin del batch
CLS
---> Borra la pantalla
TYPE CANDADO.TXT
---> Muestra el archivo CANDADO.TXT
CHOICE /C:AS /T:A,10 /N Teclea la letra S ahora para salir...
---> Pausa de 10 seg esperando la letra S de salir
IF ERRORLEVEL 2 GOTO Fin
---> Si se tecleo la letra S ir al fin del batch
GOTO Inicio
---> Ir a la etiqueta Inicio
:Fin
---> Etiqueta a la que hacen regencia las líneas IF ERRORLEVEL
2. Crear un batch de nombre FORMA que presente un menú para elegir el tipo de disquete a formatear.
Batch FORMA.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
CLS
---> Borra la pantalla
ECHO [1] 1.44MB
ECHO [2] 1.2 MB
ECHO [3] 720 KB
ECHO [4] 360 KB
ECHO.
ECHO [S] Salir
---> Presenta los mensajes en pantalla
CHOICE /C:1234S /N “Cual quieres formatear ?”
---> Espera la respuesta del usuario
IF ERRORLEVEL 5 GOTO Fin
IF ERRORLEVEL 4 GOTO Disco1
IF ERRORLEVEL 3 GOTO Disco2
IF ERRORLEVEL 2 GOTO Disco3
IF ERRORLEVEL 1 GOTO Disco4
---> Bifurca según la respuesta del usuario
:Disco1
---> Etiqueta de llagada desde el IF ERRORLEVEL 4
FORMAT A:
---> Formatea el disquete A a 1.44 MB
GOTO Fin
---> Salta a etiqueta Fin
:Disco2
---> Etiqueta de llagada desde el IF ERRORLEVEL 3
FORMAT B:
---> Formatea el disquete B a 1.2 MB
SET Disco=B:
GOTO Fin
---> Salta a etiqueta Fin
:Disco3
---> Etiqueta de llagada desde el IF ERRORLEVEL 2
FORMAT A: /F:720
---> Formatea el disquete A a 720 KB
GOTO Fin
---> Salta a etiqueta Fin
:Disco4
---> Etiqueta de llagada desde el IF ERRORLEVEL 1
FORMAT B: /F:360
---> Formatea el disquete B a 360 KB
:Fin
3. Crear un batch de nombre MIRA, que muestre el contenido de cada uno de los archivos cuyo nombre serán introducido como parámetro posteriormente en la ejecución del batch introduciendo una pausa entre cada uno de ellos.
Ej: MIRA SNOOP.TXT VILMA.TXT TABLA.TXT CANDADO.TXT
Batch MIRA.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
:Inicio
---> Etiqueta a la que hace referencia un GOTO
CLS
---> Borra la pantalla
IF .%1==. GOTO Fin
---> Pregunta si el segundo parámetro está vacio, en cuyo caso finaliza el loop
TYPE %1
---> Muestra el contenido de cada archivo dado como parámetro
PAUSE
---> Detiene la ejecución hasta que presiones cualquier tecla
SHIFT
---> Desplaza los parámetros una posición
GOTO Inicio
---> Salta a la etiqueta inicio
:Fin
---> Etiqueta a la que hace regencia el GOTO de la línea IF
4. Crear un batch de nombre LLEVA, que copie el archivos cuyo nombre será introducido como el primer parámetro, a cada una de las rutas indicadas como los demás parámetros.
Ej: LLEVA CUCO.TXT /VENTAS /VENTAS/LIMA /VENTAS/ICA
Batch LLEVA.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
SET Archivo=%1
---> Define la variable de entorno ARCHIVO igual al valor del primer parámetro (nombre de un archivo existente), para que este sea conservado a pesar del SHIFT
:Inicio
---> Etiqueta a la que hace referencia un GOTO
IF .%2==. GOTO Fin
---> Pregunta si el segundo parámetro está vacio, en cuyo caso finaliza el loop
MOVE %Archivo% %2
---> Copia el archivo indicado en la variable Archivo hacia la ruta indicada por el segundo parámetro dado al correr el batch
SHIFT
---> Desplaza los parámetros una posición
GOTO Inicio
---> Salta a la etiqueta inicio
loop.
:Fin
---> Etiqueta a la que hace regencia el GOTO de la línea IF
5. Crear un batch de nombre TRAE, que mueva a la ruta especificada los archivos cuyo nombre serán introducido como parámetro posteriormente en la ejecución del batch.
Ej: TRAE /VENTA /CICLO1/*.TXT /VENTA/ENE/A*.*
Batch TRAE.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
SET Ruta=%1
---> Define la variable de entorno RUTA igual al valor del primer parámetro, para que este sea conservado a pesar del SHIFT
:Inicio
---> Etiqueta a la que hace referencia un GOTO
IF .%2==. GOTO Fin
---> Condición de final que salta fuera del loop cuando el segundo parámetro está vacio
MOVE %2 %Ruta%
---> Mueva el archivo identificado por el segundo parámetro hacia la ruta indicada en la variable RUTA
SHIFT
---> Desplaza los parámetros una posición
GOTO Inicio
---> Salta a la etiqueta inicio
:Fin
---> Etiqueta a la que hace regencia el GOTO de la línea IF
6. Crear un batch de nombre CREA, que cree los directorios cuyo nombre serán introducido como parámetro posteriormente en la ejecución del batch y luego muestre el árbol completo previa limpieza total de la pantalla.
Batch CREA.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
:Inicio
---> Etiqueta a la que hace referencia un GOTO
IF .%1==. GOTO Fin
---> Condición de final que salta fuera del loop cuando el primer parámetro está vacio
MD %1
---> Crea el directorio contenido en el primer parámetro
SHIFT
---> Desplaza los parámetros una posición
GOTO Inicio
---> Salta a la etiqueta inicio
:Fin
---> Etiqueta a la que hace regencia el GOTO de la línea IF
CLS
---> Borra la pantalla
TREE
---> Muestra el árbol de directorio
7. Crear un batch de nombre MENU, que según el primer parámetro: copie, mueva, compare o muestre el contenido de los archivos mencionados en los dos parámetros siguientes.
Ej: MENU A GATO.TXT \VENTAS\ENE\PERRO.DAT
Batch MENU.BAT
@ECHO OFF
---> Impide que los comandos sean mostrados en la pantalla.
IF .%3==. GOTO Error
---> Pregunta si existe el tercer parámetro
IF %1==A GOTO Copia
---> Si el primer parámetro es A salta a la etiqueta COPIA
IF %1==B GOTO Mueve
---> Si el primer parámetro es B salta a la etiqueta MUEVE
IF %1==C GOTO Compara
---> Si el primer parámetro es C salta a la etiqueta COMPARA
IF %1==D GOTO Mira
---> Si el primer parámetro es D salta a la etiqueta MIRA
ECHO %1: es una opción no valida, reintenta con A, B, C o D
---> Muestra un mensaje indicando que el parámetro inicial dado no es valido y te recuerda los parámetros validos
GOTO Fin
---> Salta al final del programa
:Copia
---> Etiqueta referenciada por la opción A
COPY %2 %3
---> Copia los archivos desde %2 a %3
GOTO Fin
---> Salta al final del programa
:Mueve
---> Etiqueta referenciada por la opción B
MOVE %2 %3
---> Mueve los archivos desde %2 a %3
GOTO Fin
---> Salta al final del programa
:Compara
---> Etiqueta referenciada por la opción C
FC %2 %3
---> Compara los archivos %2 y %3
GOTO Fin
---> Salta al final del programa
:Mira
---> Etiqueta referenciada por la opción D
TYPE %2
TYPE %3
---> Muestra los archivos %2 y %3
GOTO Fin
---> Salta al final del programa
:Error
---> Etiqueta a la que hace regencia el GOTO de la primera línea IF
ECHO mal numero de parámetros
---> Mensaje de error
:Fin
---> Etiqueta a la que hacen regencia los GOTO ubicados después de cada operación
ECHO Final de programa
---> Mensaje final
Capitulo 5
Algunos ejercicios...
Crear un batch de nombre POCOTON que muestre un menú con las siguientes opciones:
Formatear el disco en A:
Duplicar el disco en A:
Comparar disco en A:
Verificar si el disco en A: esta bien o tiene fallas.
Acelerar el disco en A:
Salir
Crear un batch de nombre PAQUITA que ejecute los siguiente:
Limpie la pantalla
Muestre en pantalla el nombre de tu Universidad, el programa académico y cursos que llevas.
Hacer una pausa por 15 segundos
Muestre la fecha y hora del sistema
Crear un batch de nombre CONE que muestre en la pantalla los archivos que fueron creados hoy día en todo el disco C:
Crear un batch de nombre CHISITO que permita ver todos los archivos que contenga la unidad que se indique como parámetro al ejecutarlo.
Crear un batch de nombre ÑAÑO que busque el archivo EXAMEN.TXT y si lo encuentra que lo copie en el drive A: con el nombre PARCIAL.DAT
Crear un batch con el nombre KIKE que presente en pantalla un menú con las siguientes opciones:
Cambiar de nombre a todos los archivos WP y QPRO a TMP en los directorios WP y QPRO del disco duro. Titulo CAMBIA NOMBRES.
Copiar todos los archivos con extensión WP y WK1 desde los directorios WP y QPRO del disco duro a la primera unidad flexible. Titulo COPIA ARCHIVOS.
Borrar todos los archivos con extensión TMP del disco duro, directorios RAÍZ, WP y QPRO. Titulo BORRA TEMPORALES.
Opción de salir. Titulo SALIR.
Nota: Después de ejecutar las opciones a, b o c y ejecutar la tarea solicitada, se debe volver a presentar el menú principal.
Crear los batch de nombres ALAS y UAP
ALAS debe hacer:
Ocultar la presentación por pantalla de la línea de comandos.
Mostrar la estructura del directorio trabajo que está ubicado en A:
UAP debe hacer:
Ocultar la presentación por pantalla de la línea de comandos.
Limpiar la pantalla.
Presentar el mensaje "Ud. ver la estructura del directorio trabajo"
Hacer una pausa por 15 segundos antes de la ejecución de la orden del párrafo c.
Invoque la ejecución del archivo batch ALAS.
Muestre la hora y la fecha del sistema.
Crear un batch de nombre WANTAN que visualice el directorio de cada una de las unidades que se especifiquen como parametro, con una pausa para que el usuario presione una tecla, previa borrada de pantalla.
Crear un batch de nombre PANCHO que muestre mensajes personalizado correspondientes a la persona cuyo nombre sea ingresado como un parámetro del batch como sigue:
Persona Mensaje
Gerente "Tiene reunión a las 08:00 am"
Secretaria "NO olvidar el Fax a USA"
Contador "Entregar el balance maximo el 24-12-97"
Nota: Cualquier otro nombre no esecificado aquie deberá dar como resultado el mensaje "no hay mensaje para Ud".
Crear un batch de nombre MENU que presente en pantalla un menú con las siguientes opciones:
Borrar todos los archivos con extensión TMP del disco duro, directorios RAÍZ, DOS y WP.
Copiar todos los archivos con extensión TXT y DOC desde los directorios DOS y WP del disco duro a la primera unidad flexible.
Cambiar de nombre a todos los archivos TXT y DOC a TMP en los directorios DOS y WP del disco duro.
Opción de salir Nota: Después de ejecutar las opciones a, b o c y ejecutar la tarea solicitada, se debe volver a presentar el menú principal.
Crear 2 batch
El primero de nombre COMA deberá:
Ocultar la presentación por pantalla de las líneas de comandos
Mostrar la estructura de subdirectorios del directorio "TRABAJO" que está ubicado en A:
El segundo de nombre PUNTO deberá:
Ocultar la presentación por pantalla de las líneas de comandos
Limpiar la pantalla
Presentar el mensaje "USTED VERA LA ESTRUCTURA DEL DIRECTORIO TRABAJO"
Dar una pausa antes de la ejecución de la orden
Invocar al archivo COMA (llamarlo para su ejecución)
Dar la hora y la fecha
Crear un batch llamado DINA que estando en el directorio raíz del disco C: cree automáticamente los directorios llamados CICLO1, CICLO2 y CICLO3. Luego en cada uno de ellos copia desde la raíz los archivos NOTA1.DOC, NOTA2.DOC y NOTA3.DOC respectivamente.
Crear un batch de nombre BUSCA que busque la cadena "Ingeniero de Sistemas" sin hacer diferencia entre mayúsculas y minúsculas en todos los archivos de una rama de subdirectorios variable.
Crear un batch de nombre DIRECTO que debe:
Ocultar la presentación por pantalla de las líneas de comandos
Mostrar el mensaje BIENVENIDO AL DIRECTORIO
Mostrar el directorio actual
Cambiar la etiqueta del disco de la unidad B: por "MI DISCO"
Crear un batch de nombre RAMAL que permita:
Ocultar la presentación por pantalla de la línea de comandos
Introducir un comentario "Creación de un ramal de directorios"
Ubicarse en el directorio raíz
Crear un directorios con el nombre que se indiquen al ejecutar el BATCH. (como parámetro)
Visualizar la estructura de directorios
Crear un batch de nombre PRUEBA que permita:
Ocultar la presentación por pantalla de las líneas de comando
Limpiar pantalla
Mostrar las líneas:
Etiquetar el la unidad A: con etiqueta "SECRETO"
Ver el árbol de directorios de unidad B: con sus archivos
Que envíe el mensaje "ESCOJA UNA OPCIÓN:" esperando durante 15 segundos la elección del usuario, luego de eso elegir de forma automática la opción B.
Hacer que ejecute las opciones señaladas, según elección del usuario.
Crear un batch de nombre UAP que ejecute los siguiente:
Borre la pantalla
Muestre en pantalla el nombre de tu Universidad, el programa académico y cursos que llevas.
Hacer una pausa por 15 segundos
Muestre la fecha y hora del sistema
Presente las opciones: Repetir o Parar.
Crear un batch con el nombre MENU que presente en pantalla un menú con las siguientes opciones:
Borrar todos los archivos con extensión TMP del disco duro, directorios RAÍZ, DOS y WP. Titulo BORRA.
Copiar todos los archivos con extensión TXT y DOC desde los directorios DOS y WP del disco duro a la primera unidad flexible.
Titulo COPIA.
Cambiar de nombre a todos los archivos TXT y DOC a TMP en los directorios DOS y WP del disco duro. Titulo CAMBIA.
Opción de salir. Titulo SALIR.
Nota: Después de ejecutar las opciones a, b o c y ejecutar la tarea solicitada, se debe volver a presentar el menú principal.
Crear un batch de nombre TATO que copie a cada uno de los directorios que seran indicados como parametros, todos los archivos unicados en el directorio C:\VENTA\ENE que tengan la letra G en segundo lugar de su nombre.
Crear un batch de nombre PALO que realice lo siguiente:
Impida la presentacion en pantalla de los comandos
Borre la pantalla
Cambie el PROMPT asi: “Hola que tal...”
Aumente al PATH la ruta C:\DOS
Ejecute el DOSKEY
Crear un batch de nombre DAME, que mueva a la ruta C:\VENTA\DIC cada uno de los archivos cuyo nombre serán introducido como parámetro posteriormente en la ejecución del batch.
Crear un batch de nombre ENANO, que muestre el contenido de los archivos CUCO.TXT, GATO.TXT, SNOOP.TXT, TABLA.TXT y CANDADO.TXT uno tras otro con una pausa de 5 segundos entre ellos, hasta que el usuario presione la letra P.
Crear un batch de nombre PELITO que visualice el directorio de la unidad que se especifique como parametro, con una pausa para que el usuario presione una tecla, previa borrada de pantalla y en caso que el usuario olvide el parametro de la letra de la unidad se lo recuerde via un mensaje de error.
Capitulo 6
PKZIP
Software de PKWare Inc que comprime via un algoritmo especial, uno a mas archivos en un formato especial llamado ZIP, usado para sacar BACKUP y permite almacenar en cualquier medio de almacenamiento magnetico.
Permite almacenar los nombres de los directorios donde estan contenidos los archivos, encritar via una clave, generar un codigo de autenticidad, hacer un ZIP multivolumen, es decir en varios disquetes etc
PKZIP <parametros> <nombre ZIP> <archivos> <desde donde>
Parametros:
-m | Mueve los archivos, es decir despues de empaquetarlos en el ZIP seran borrados los originales |
-r | Buscar archivos tambien en los subdirectorios |
-p | Guardar los nombre de la ruta |
-s<clave> | Encriptar con la clave dada |
-t<fecha> | Empaquetar solo los archivos de fecha posterior a la indicada. |
-T<fecha> | Empaquetar solo los archivos de fecha anterior a la indicada. |
-x<archivo> | Excluir el archivo mencionado |
-& | Preparar un ZIP multivolumen |
Ejemplos:
PKZIP TEST *.TXT -xPIZZA.* -xA*.*
PKZIP BACKUP -rp
PKZIP ABC -t102097
PKUNZIP
Este es el ejecutable usado para desempaquetar los ZIP.
PKUNZIP <parametros> <nombre ZIP> <archivos> <hacia donde>
Parametros:
-d | Crea las rutas almacenadas en el ZIP |
-o | Sobreescribe el archivo si ya existe |
-t | Comprueba los archivos dentro del ZIP |
-v | Muestra el contenido |
-x<archivo> | No desempaquetar el archivo |
Ejemplos:
PKUNZIP -od TEST
PKUNZIP -t A:\*.ZIP
PKUNZIP -v C:\UTIL\TEST
PKUNZIP BACKUP -x*.TXT
ZIP2EXE
Con este ejecutable es posible convertir un archivo ZIP generado via PKZIP en un archivo con la extension EXE, que para ser desempaquetado no requiere tener el programa PKUNZIP ya que al dar su nombre se autodesempaquetara solo.
PKZIPFIX
Con este ejecutable es posible reparar un ZIP que estubiese malogrado, es decir que da un error al desempaquetar o comprobar via el comando PKUNZIP -t *.ZIP
Lenguaje de Programación 1 - Archivos BATCH
- 37 -
Descargar
Enviado por: | Enrique |
Idioma: | castellano |
País: | España |