Una forma de simplificar la programación de archivos por lotes es utilizar alias para ocultar detalles innecesarios dentro de un archivo por lotes. Por ejemplo, supongamos que desea que un archivo por lotes compruebe ciertos errores, muestre un mensaje y salga si se encuentra alguno. Este ejemplo muestra una forma de hacerlo:

 

setlocal

unalias *

error de alias `echo. & echo ERROR: %$ & ir a dispmenu`

alias fatalerror `echo. & echo ERROR FATAL: %$ & salir`

alias en `pushd %1 & %2$ & popd`

si no existe setup.btm fatalerror ¡Falta el archivo de instalación!

configuración de llamada.btm

clase

:dispmenu

texto

         1. Procesamiento de textos

         2 Solitario

         3. Internet

         4. Salida

texto final

eco.

inkey Introduce tu elección:  %%userchoice

cambiar %elección de usuario

caso 1

  input Introduzca el nombre del archivo:  %%fname

  si no existe error de fname El archivo no existe

  en d:\letras c:\windows\wordpad.exe

caso 2

  en d:\finanzas c:\windows\sol.exe

caso 3

  en d:\comm c:\windows\iexplore.exe

caso 4

  ir a hacer

tu préstamo estudiantil

 error Elección no válida, inténtalo de nuevo

interruptor final

ir al menú desplegable

: hecho

endlocal

 

La El primer alias, ERROR, simplemente muestra un mensaje de error y salta a la etiqueta DISPMENU para volver a mostrar el menú. El %$ en el segundo ECHO El comando muestra todo el texto pasado a ERROR como contenido del mensaje. El alias FATALERROR similar muestra el mensaje y luego sale del archivo por lotes.

 

El último alias, IN, espera 2 o más parámetros de línea de comando. Utiliza el primero como un nuevo directorio de trabajo y cambia a ese directorio con un Comandos Pushd dominio. El resto de la línea de comando se interpreta como otro comando más posibles parámetros de línea de comando, que ejecuta el alias. Este alias se utiliza aquí para cambiar a un directorio, ejecutar una aplicación y regresar. También podría usarse desde la línea de comando.

 

Las siguientes 9 líneas imprimen un menú en la pantalla y luego obtienen una pulsación de tecla del usuario y almacenan la pulsación de tecla en una variable de entorno llamada elección de usuario. Entonces el SWITCH El comando se utiliza para probar la pulsación de tecla del usuario y decidir qué acción tomar.

 

Hay otra cara de los alias en archivos por lotes. Si va a distribuir sus archivos por lotes a otras personas, debe recordar que es posible que tengan alias definidos para los comandos que va a utilizar. Por ejemplo, si el usuario tiene un alias CD a CDS y no espera esto, es posible que su archivo no funcione como esperaba. Hay dos maneras de abordar este problema.

 

El método más simple es usar SETLOCAL, ENDLOCALy UNALÍAS para borrar los alias antes de que comience el archivo por lotes, y SETDOS para seleccionar los caracteres especiales de los que depende y restaurarlos al final, como hicimos en el ejemplo anterior. Recuerda eso SETLOCAL y ENDLOCAL guardará y restaurará no sólo los alias sino también el entorno, la unidad y el directorio actuales y varios caracteres especiales.

 

Si este método no es apropiado o necesario para el archivo por lotes en el que está trabajando, también puede utilizar un asterisco * antes del nombre de cualquier comando. El asterisco significa que el comando que le sigue no debe interpretarse como un alias. Por ejemplo, el siguiente comando redirige una lista de nombres de archivos al archivo LISTA DE ARCHIVOS:

 

dir /b > lista de archivos

 

Sin embargo, si el usuario ha redefinido DIR con un alias, es posible que este comando no haga lo que desea. Para evitar esto, simplemente use:

 

*dir /b > lista de archivos

 

Se puede hacer lo mismo con cualquier comando en su archivo por lotes. Si usa el asterisco, deshabilitará el procesamiento de alias y el resto del comando se procesará normalmente como un comando interno, un comando externo o un archivo por lotes. El uso de un asterisco antes de un comando funcionará independientemente de que exista o no un alias definido con el mismo nombre que el comando. Si no hay ningún alias con ese nombre, se ignorará el asterisco y el comando se procesará como si el asterisco no estuviera allí.