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

    Te va a interesar