0% encontró este documento útil (0 votos)
986 vistas58 páginas

Guía Completa de Batch Script

El documento describe los scripts por lotes y sus características. Los scripts por lotes se utilizan para automatizar tareas repetitivas mediante la ejecución secuencial de comandos almacenados en archivos de texto. Se describen algunos comandos comunes de scripts por lotes como DIR, COPY, DEL, así como características como variables de entorno y estructuras de control condicionales. Los scripts por lotes se ejecutan en el intérprete de comandos de Windows como cmd.exe.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
986 vistas58 páginas

Guía Completa de Batch Script

El documento describe los scripts por lotes y sus características. Los scripts por lotes se utilizan para automatizar tareas repetitivas mediante la ejecución secuencial de comandos almacenados en archivos de texto. Se describen algunos comandos comunes de scripts por lotes como DIR, COPY, DEL, así como características como variables de entorno y estructuras de control condicionales. Los scripts por lotes se ejecutan en el intérprete de comandos de Windows como cmd.exe.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Contenido

Batch Script - Inicio


Batch Script : descripción general
Batch Script - Medio ambiente
Batch Script - Comandos
Batch Script - Archivos
Batch Script : sintaxis
Batch Script - Variables
Batch Script - Comentarios
Batch Script - Cadenas
Batch Script - Arreglos
Batch Script - Toma de decisiones
Batch Script - Operadores
Script de lote - FECHA Y HORA
Batch Script : entrada / salida
Script de lote - Código de retorno
Batch Script - Funciones
Batch Script - Proceso
Batch Script - Alias
Batch Script - Dispositivos
Batch Script - Registro
Batch Script - Red
Batch Script : impresión
Batch Script : depuración
Batch Script : registro
Batch Script : descripción general
Batch Script se incorpora para automatizar secuencias de comandos que son
de naturaleza repetitiva. La creación de secuencias de comandos es una
forma de aliviar esta necesidad mediante la automatización de estas
secuencias de comandos para que la vida en el shell sea más fácil y
productiva. En la mayoría de las organizaciones, Batch Script se incorpora de
una forma u otra para automatizar cosas.
Algunas de las características de Batch Script son:
 Puede leer las entradas de los usuarios para que pueda procesarse más.
 Tiene estructuras de control como for, if, while, switch para una mejor
automatización y scripting.
 Admite funciones avanzadas como funciones y matrices.
 Soporta expresiones regulares.
 Puede incluir otros códigos de programación como Perl.
Algunos de los usos comunes de Batch Script son:
 Configuración de servidores para diferentes propósitos.
 Automatizar actividades de limpieza como eliminar archivos no deseados o
archivos de registro.
 Automatizar el despliegue de aplicaciones de un entorno a otro.
 Instalar programas en varias máquinas a la vez.
Los scripts por lotes se almacenan en archivos de texto simples que contienen
líneas con comandos que se ejecutan en secuencia, uno tras otro. Estos
archivos tienen la extensión especial BAT o CMD. Los archivos de este tipo se
reconocen y ejecutan a través de una interfaz (a veces llamada shell)
proporcionada por un archivo del sistema llamado intérprete de comandos. En
los sistemas Windows, este intérprete se conoce como cmd.exe.
Ejecutar un archivo por lotes es simplemente cuestión de hacer clic en él. Los
archivos por lotes también se pueden ejecutar en un símbolo del sistema o en
la línea Inicio-Ejecución. En tal caso, se debe usar el nombre completo de la
ruta a menos que la ruta del archivo se encuentre en el entorno de la ruta. El
siguiente es un ejemplo simple de un Batch Script . Este Batch Script cuando
se ejecuta elimina todos los archivos en el directorio actual.
:: Deletes All files in the Current Directory With Prompts
and Warnings
::(Hidden, System, and Read-Only Files are Not Affected)
:: @ECHO OFF
DEL . DR
Batch Script - Medio ambiente
Este capítulo explica el entorno relacionado con Batch Script.

Escritura y Ejecución
Normalmente, para crear un archivo por lotes, se usa el bloc de notas. Esta es
la herramienta más simple para la creación de archivos por lotes. El siguiente
es el entorno de ejecución para los scripts por lotes. En los sistemas Windows,
esto se realiza a través del símbolo del sistema o cmd.exe. Todos los archivos
por lotes se ejecutan en este entorno.
Las siguientes son las diferentes formas de iniciar cmd.exe:
Método 1 : vaya a C: \ Windows \ System32 y haga doble clic en el archivo
cmd.

Método 2 : mediante el comando Ejecutar: la siguiente instantánea muestra


cómo encontrar el símbolo del sistema (cmd.exe) en el servidor de Windows
2012.
Una vez que se inicia cmd.exe, se le presentará la siguiente pantalla. Este
será su entorno para ejecutar sus scripts por lotes.

Variables de entorno
Para ejecutar archivos por lotes desde el símbolo del sistema, debe ir a la
ubicación donde está almacenado el archivo por lotes o, alternativamente,
puede ingresar la ubicación del archivo en la variable de entorno de la
ruta. Por lo tanto, suponiendo que el archivo por lotes esté almacenado en la
ubicación C:\Application\bin, deberá seguir estas instrucciones para la
inclusión de la variable PATH.

OS Salida

Ventanas Añadir la cadena; C:\Application\binhasta el final de la variable de sistema


PATH.

Batch Script - Comandos


En este capítulo, veremos algunos de los comandos por lotes utilizados con
frecuencia.

S.No Comandos y descripción

1 VER

Este comando por lotes muestra la versión de MS-DOS que está utilizando.

2 ASSOC
Este es un comando por lotes que asocia una extensión con un tipo de archivo
(FTYPE), muestra asociaciones existentes o elimina una asociación.

3 discos compactos
Este comando por lotes ayuda a realizar cambios en un directorio diferente o
muestra el directorio actual.

44 CLS
Este comando por lotes borra la pantalla.

55 COPIAR
Este comando por lotes se utiliza para copiar archivos de una ubicación a otra.

66 DEL
Este comando por lotes elimina archivos y no directorios.

77 DIR
Este comando por lotes enumera el contenido de un directorio.

8 FECHA
Este comando por lotes ayuda a encontrar la fecha del sistema.

99 ECO
Este comando por lotes muestra mensajes o activa o desactiva el comando que
hace eco.

10 SALIDA
Este comando por lotes sale de la consola de DOS.
11 Maryland
Este comando por lotes crea un nuevo directorio en la ubicación actual.

12 MOVERSE
Este comando por lotes mueve archivos o directorios entre directorios.

13 CAMINO
Este comando por lotes muestra o establece la variable de ruta.

14 PAUSA
Este comando por lotes solicita al usuario y espera a que se ingrese una línea de
entrada.

15 RÁPIDO
Este comando por lotes se puede usar para cambiar o restablecer el indicador
cmd.exe.

dieciséis RD
Este comando por lotes elimina directorios, pero los directorios deben estar
vacíos para poder eliminarlos.

17 REN
Renombra archivos y directorios

18 años movimiento rápido del ojo


Este comando por lotes se utiliza para comentarios en archivos por lotes, evitando
que se ejecute el contenido del comentario.

19 COMIENZO
Este comando por lotes inicia un programa en una nueva ventana o abre un
documento.

20 HORA
Este comando por lotes establece o muestra la hora.

21 TIPO
Este comando por lotes imprime el contenido de un archivo o archivos en la
salida.

22 VOL
Este comando por lotes muestra las etiquetas de volumen.

23 ATTRIB
Muestra o establece los atributos de los archivos en el directorio curret

24 CHKDSK
Este comando por lotes comprueba el disco en busca de problemas.

25 ELECCIÓN
Este comando por lotes proporciona una lista de opciones para el usuario.

26 CMD
Este comando por lotes invoca otra instancia del símbolo del sistema.

27 COMP
Este comando por lotes compara 2 archivos en función del tamaño del archivo.

28 CONVERTIR
Este comando por lotes convierte un volumen del sistema de archivos FAT16 o
FAT32 a un sistema de archivos NTFS.

29 CONDUCCION
Este comando por lotes muestra todos los controladores de dispositivo instalados
y sus propiedades.

30 EXPANDIR
Este comando por lotes extrae archivos de archivos comprimidos .cab.

31 ENCONTRAR
Este comando por lotes busca una cadena en archivos o entrada, generando
líneas coincidentes.

32 FORMATO
Este comando por lotes formatea un disco para utilizar un sistema de archivos
compatible con Windows como FAT, FAT32 o NTFS, sobrescribiendo así el
contenido anterior del disco.

33 AYUDA
Este comando por lotes muestra la lista de comandos proporcionados por
Windows.

34 IPCONFIG
Este comando por lotes muestra la configuración de IP de Windows. Muestra la
configuración por conexión y el nombre de esa conexión.
35 ETIQUETA
Este comando por lotes agrega, establece o elimina una etiqueta de disco.

36 MÁS
Este comando por lotes muestra el contenido de un archivo o archivos, una
pantalla a la vez.

37 RED
Proporciona varios servicios de red, según el comando utilizado.

38 SILBIDO
Este comando por lotes envía paquetes ICMP / IP "echo" a través de la red a la
dirección designada.

39 APAGAR
Este comando por lotes apaga una computadora o cierra la sesión del usuario
actual.

40 ORDENAR
Este comando por lotes toma la entrada de un archivo fuente y ordena
alfabéticamente su contenido, de la A a la Z o de la Z a la A. Imprime la salida en
la consola.

41 SUST
Este comando por lotes asigna una letra de unidad a una carpeta local, muestra
las asignaciones actuales o elimina una asignación.

42 INFORMACIÓN DEL SISTEMA


Este comando por lotes muestra la configuración de una computadora y su
sistema operativo.

43 TASKKILL
Este comando por lotes finaliza una o más tareas.

44 LISTA DE TAREAS
Este comando por lotes enumera las tareas, incluido el nombre de la tarea y la
identificación del proceso (PID).

45 XCOPY
Este comando por lotes copia archivos y directorios de una manera más
avanzada.

46 ÁRBOL
Este comando por lotes muestra un árbol de todos los subdirectorios del directorio
actual a cualquier nivel de recursión o profundidad.

47 FC
Este comando por lotes enumera las diferencias reales entre dos archivos.

48 DISKPART
Este comando por lotes muestra y configura las propiedades de las particiones de
disco.

49 TÍTULO
Este comando por lotes establece el título que se muestra en la ventana de la
consola.

50 CONJUNTO
Muestra la lista de variables de entorno en el sistema actual.

Batch Script - Archivos


En este capítulo, aprenderemos cómo crear, guardar, ejecutar y modificar
archivos por lotes.

Crear archivos por lotes


Los archivos por lotes normalmente se crean en el bloc de notas. Por lo tanto,
la forma más simple es abrir el bloc de notas e ingresar los comandos
necesarios para el script. Para este ejercicio, abra el bloc de notas e ingrese
las siguientes declaraciones.
:: Deletes All files in the Current Directory With Prompts
and Warnings
::(Hidden, System, and Read-Only Files are Not Affected)
::
@ECHO OFF
DEL .
DR

Guardar archivos por lotes


Después de crear su archivo por lotes, el siguiente paso es guardar su archivo
por lotes. Los archivos por lotes tienen la extensión de .bat o .cmd. Algunas
reglas generales a tener en cuenta al nombrar archivos por lotes:
 Intente evitar espacios al nombrar archivos por lotes, a veces crea problemas
cuando se los llama desde otros scripts.
 No los nombre después de los archivos por lotes comunes que están disponibles
en el sistema, como ping.cmd.
La captura de pantalla anterior muestra cómo guardar el archivo por lotes. Al
guardar su archivo por lotes, tenga en cuenta algunos puntos.

 Recuerde poner el .bat o .cmd al final del nombre del archivo.


 Elija la opción "Guardar como tipo" como "Todos los archivos".
 Ponga el nombre completo del archivo entre comillas "".

Ejecutar archivos por lotes


Los siguientes son los pasos para ejecutar un archivo por lotes:
 Paso 1 : abre el símbolo del sistema (cmd.exe).
 Paso 2 : ve a la ubicación donde está almacenado el archivo .bat o .cmd.
 Paso 3 : escriba el nombre del archivo como se muestra en la siguiente imagen y
presione el botón Enter para ejecutar el archivo por lotes.
Modificación de archivos por lotes
Los siguientes son los pasos para modificar un archivo por lotes existente.
 Paso 1 : abre el explorador de Windows.
 Paso 2 : ve a la ubicación donde está almacenado el archivo .bat o .cmd.
 Paso 3 - Haz clic derecho en el archivo y elige la opción "Editar" en el menú
contextual. El archivo se abrirá en el Bloc de notas para su posterior edición.

Batch Script : sintaxis


Normalmente, la primera línea en un archivo por lotes a menudo consiste en el
siguiente comando.

Comando ECHO
@echo off
Por defecto, un archivo por lotes mostrará su comando mientras se ejecuta. El
propósito de este primer comando es apagar esta pantalla. El comando "echo
off" apaga la pantalla de todo el script, excepto el comando "echo off" en sí. El
signo "at" "@" al frente hace que el comando se aplique a sí mismo también.
Documentación
Muy a menudo, los archivos por lotes también contienen líneas que comienzan
con el comando "Rem". Esta es una forma de ingresar comentarios y
documentación. La computadora ignora cualquier cosa en una línea que sigue
a Rem. Para archivos por lotes con una cantidad creciente de complejidad, a
menudo es una buena idea tener comentarios.

Primer programa de secuencia de comandos por lotes


Construyamos nuestro primer programa simple de Batch Script . Abra el bloc
de notas e ingrese las siguientes líneas de código. Guarde el archivo como
"List.cmd".
El código hace lo siguiente:
 Utiliza el comando echo off para garantizar que los comandos no se muestren
cuando se ejecuta el código.
 El comando Rem se usa para agregar un comentario para decir qué hace
exactamente este archivo por lotes.
 El comando dir se usa para tomar el contenido de la ubicación C: \ Archivos de
programa.
 El comando '>' se usa para redirigir la salida al archivo C: \ lists.txt.
 Finalmente, el comando echo se usa para decirle al usuario que la operación se
ha completado.

@echo off
Rem This is for listing down all the files in the directory
Program files
dir "C:\Program Files" > C:\lists.txt
echo "The program has completed"

Cuando se ejecuta el comando anterior, los nombres de los archivos en C: \


Archivos de programa se enviarán al archivo C: \ Lists.txt y en el símbolo del
sistema se mostrará el mensaje "El programa se ha completado".

Batch Script - Variables


Hay dos tipos de variables en los archivos por lotes. Uno es para parámetros
que se pueden pasar cuando se llama al archivo por lotes y el otro se realiza a
través del comando set.

Argumentos de línea de comando


Las secuencias de comandos por lotes admiten el concepto de argumentos de
línea de comandos en el que los argumentos se pueden pasar al archivo por
lotes cuando se invocan. Los argumentos se pueden invocar desde los
archivos por lotes a través de las variables% 1,% 2,% 3, etc.
El siguiente ejemplo muestra un archivo por lotes que acepta 3 argumentos de
línea de comando y los reproduce en la pantalla de línea de comando.
@echo off
echo %1
echo %2
echo %3

Si el Batch Script anterior se almacena en un archivo llamado test.bat y si


ejecutamos el lote como
Test.bat 1 2 3
A continuación se muestra una captura de pantalla de cómo se vería esto en
el símbolo del sistema cuando se ejecuta el archivo por lotes.

El comando anterior produce el siguiente resultado.


1
2
3
Si tuviéramos que ejecutar el lote como
Example 1 2 3 4
La salida seguirá siendo la misma que la anterior. Sin embargo, el cuarto
parámetro sería ignorado.

Establecer comando
La otra forma en que las variables se pueden inicializar es a través del
comando 'set'. La siguiente es la sintaxis del comando set.

Sintaxis

set /A variable-name=value
dónde,
 nombre-variable es el nombre de la variable que desea establecer.
 valor es el valor que debe establecerse contra la variable.
 / A: este modificador se usa si el valor debe ser de naturaleza numérica.

El siguiente ejemplo muestra una manera simple de usar el comando set.

Ejemplo

@echo off
set message=Hello World
echo %message%
 En el fragmento de código anterior, se define una variable llamada mensaje y se
establece con el valor de "Hola mundo".
 Para mostrar el valor de la variable, tenga en cuenta que la variable debe estar
encerrada en el signo%.

Salida

El comando anterior produce el siguiente resultado.


Hello World

Trabajando con valores numéricos


En el Batch Script , también es posible definir una variable para contener un
valor numérico. Esto se puede hacer usando el modificador / A.
El siguiente código muestra una forma simple en que los valores numéricos se
pueden establecer con el modificador / A.
@echo off
SET /A a = 5
SET /A b = 10
SET /A c = %a% + %b%
echo %c%
 Primero estamos configurando el valor de 2 variables, ayb a 5 y 10
respectivamente.
 Estamos agregando esos valores y almacenando en la variable c.
 Finalmente, estamos mostrando el valor de la variable c.
El resultado del programa anterior sería 15.
Todos los operadores aritméticos trabajan en archivos por lotes. El siguiente
ejemplo muestra que los operadores aritméticos se pueden usar en archivos
por lotes.
@echo off
SET /A a = 5
SET /A b = 10
SET /A c = %a% + %b%
echo %c%
SET /A c = %a% - %b%
echo %c%
SET /A c = %b% / %a%
echo %c%
SET /A c = %b% * %a%
echo %c%

El comando anterior produce el siguiente resultado.


15
-5
2
50

Variables locales vs globales


En cualquier lenguaje de programación, hay una opción para marcar las
variables como que tienen algún tipo de alcance, es decir, la sección de
código en la que se puede acceder. Normalmente, se puede acceder a las
variables que tienen un alcance global desde cualquier lugar desde un
programa, mientras que las variables de ámbito local tienen un límite definido
en el que se puede acceder.
Las secuencias de comandos de DOS también tienen una definición para las
variables de ámbito local y global. Por defecto, las variables son globales para
toda su sesión de símbolo del sistema. Llame al comando SETLOCAL para
hacer que las variables sean locales al alcance de su script. Después de
llamar a SETLOCAL, cualquier asignación de variables se revierte al llamar a
ENDLOCAL, llamar a EXIT o cuando la ejecución alcanza el final del archivo
(EOF) en su script. El siguiente ejemplo muestra la diferencia cuando las
variables locales y globales se configuran en el script.

Ejemplo

@echo off
set globalvar = 5
SETLOCAL
set var = 13145
set /A var = %var% + 5
echo %var%
echo %globalvar%
ENDLOCAL
Pocas cosas importantes a tener en cuenta sobre el programa anterior.
 El 'globalvar' se define con un alcance global y está disponible en todo el script.
 La variable 'var' se define en un ámbito local porque está encerrada entre un
bloque 'SETLOCAL' y 'ENDLOCAL'. Por lo tanto, esta variable se destruirá tan
pronto como se ejecute la instrucción 'ENDLOCAL'.

Salida

El comando anterior produce el siguiente resultado.


13150
5
Notará que el comando echo% var% no producirá nada porque después de la
instrucción ENDLOCAL, la variable 'var' ya no existirá.

Trabajando con variables de entorno


Si tiene variables que se utilizarían en los archivos por lotes, siempre es
preferible utilizar variables de entorno. Una vez que se define la variable de
entorno, se puede acceder a ella mediante el signo%. El siguiente ejemplo
muestra cómo ver JAVA_HOME definido en un sistema. La variable
JAVA_HOME es un componente clave que normalmente utilizan una gran
variedad de aplicaciones.
@echo off
echo %JAVA_HOME%

La salida mostraría el directorio JAVA_HOME que dependería de un sistema a


otro. El siguiente es un ejemplo de una salida.
C:\Atlassian\Bitbucket\4.0.1\jre
Batch Script - Comentarios
Siempre es una buena práctica agregar comentarios o documentación para los
scripts que se crean. Esto es necesario para el mantenimiento de los scripts
para comprender lo que realmente hace el script.
Por ejemplo, considere el siguiente fragmento de código que no tiene forma de
comentarios. Si una persona promedio que no ha desarrollado el siguiente
guión trata de entender el guión, le tomaría mucho tiempo entender qué hace
realmente el guión.
ECHO OFF
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
ECHO.%* | FIND "?" >NUL
IF NOT ERRORLEVEL 1 GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
SETLOCAL
SET WSS=
IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN
('ECHO.%~1') DO SET WSS = %%A
FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I
"\\%WSS%"') DO FOR /F
"tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V
"%%a" ^| FIND "<03>"')
DO ECHO.%%a %%A
ENDLOCAL
GOTO:EOF
ECHO Display logged on users and their workstations.
ECHO Usage: ACTUSR [ filter ]
IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part
of the computer name^(s^) to be displayed
Comentarios utilizando la declaración Rem
Hay dos formas de crear comentarios en Batch Script; uno es a través del
comando Rem. Cualquier texto que siga a la declaración Rem se tratará como
comentarios y no se ejecutará. La siguiente es la sintaxis general de esta
declaración.

Sintaxis

Rem Remarks
donde 'Comentarios' son los comentarios que deben agregarse.
El siguiente ejemplo muestra una manera simple de usar el comando Rem .

Ejemplo

@echo off
Rem This program just displays Hello World
set message=Hello World
echo %message%

Salida

El comando anterior produce el siguiente resultado. Notará que la línea con la


instrucción Rem no se ejecutará.
Hello World

Comentarios utilizando la :: Declaración


La otra forma de crear comentarios en Batch Script es a través del comando
::. Cualquier texto que siga a la declaración :: se tratará como comentarios y
no se ejecutará. La siguiente es la sintaxis general de esta declaración.

Sintaxis

:: Remarks
donde 'Comentarios' es el comentario que debe agregarse.
El siguiente ejemplo muestra una manera simple de usar el comando Rem.

Ejemplo

@echo off
:: This program just displays Hello World
set message = Hello World
echo %message%

Salida
El comando anterior produce el siguiente resultado. Notará que la línea con la
instrucción :: no se ejecutará.
Hello World
Nota : si tiene demasiadas líneas de Rem, podría ralentizar el código, porque
al final cada línea de código en el archivo por lotes aún debe ejecutarse.
Veamos el ejemplo del script grande que vimos al comienzo de este tema y
veamos cómo se ve cuando se le agrega documentación.
::===========================================================
====
:: The below example is used to find computer and logged on
users
::
::===========================================================
====
ECHO OFF
:: Windows version check
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
ECHO.%* | FIND "?" >NUL
:: Command line parameter check
IF NOT ERRORLEVEL 1 GOTO Syntax
IF NOT [%2]==[] GOTO Syntax
:: Keep variable local
SETLOCAL
:: Initialize variable
SET WSS=
:: Parse command line parameter
IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN
('ECHO.%~1') DO SET WSS = %%A
:: Use NET VIEW and NBTSTAT to find computers and logged on
users
FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I
"\\%WSS%"') DO FOR /F
"tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V
"%%a" ^| FIND
"<03>"') DO ECHO.%%a %%A
:: Done
ENDLOCAL
GOTO:EOF
:Syntax
ECHO Display logged on users and their workstations.
ECHO Usage: ACTUSR [ filter ]
IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part
of the
computer name^(s^) to be displayed
Ahora puede ver que el código se ha vuelto más comprensible para los
usuarios que no lo han desarrollado y, por lo tanto, es más fácil de mantener.

Batch Script - Cadenas


En DOS, una cadena es una colección ordenada de caracteres, como "¡Hola,
mundo!".

S.No Cadenas y Descripción

1 Crear cadena

Se puede crear una cadena en DOS de la siguiente manera.

2 Cuerda vacía
Cuerda vacía

3 Interpolación de cuerdas
La interpolación de cadenas es una forma de construir un nuevo valor de cadena a
partir de una combinación de constantes, variables, literales y expresiones mediante
la inclusión de sus valores dentro de un literal de cadena.

44 Concatenación de cuerdas
Puede usar el operador set para concatenar dos cadenas o una cadena y un
carácter, o dos caracteres. El siguiente es un ejemplo simple que muestra cómo usar
la concatenación de cadenas.

55 Longitud de la cuerda
En los scripts de DOS, no hay una función de longitud definida para encontrar la
longitud de una cadena. Hay funciones personalizadas que se pueden usar para lo
mismo. A continuación se muestra un ejemplo de una función personalizada para ver
la longitud de una cadena.

66 toInt
Una variable que se ha establecido como una cadena usando la variable establecida
se puede convertir a un entero usando el modificador / A que está usando la variable
establecida. El siguiente ejemplo muestra cómo se puede lograr esto.

77 Alinear a la derecha
Esto solía alinear el texto a la derecha, que normalmente se usa para mejorar la
legibilidad de las columnas numéricas.

8 Cadena izquierda
Esto se utiliza para extraer caracteres desde el comienzo de una cadena.

99 Cuerda media
Esto se utiliza para extraer una subcadena a través de la posición de los caracteres
en la cadena.

10 Eliminar
La función de sustitución de cadenas también se puede usar para eliminar una
subcadena de otra cadena.

11 Eliminar ambos extremos


Esto se usa para eliminar el primer y el último carácter de una cadena.

12 Eliminar todos los espacios


Esto se utiliza para eliminar todos los espacios en una cadena mediante sustitución.

13 Reemplazar una cadena


Para reemplazar una subcadena con otra cadena, use la función de sustitución de
cadenas.

14 Cadena derecha
Esto se usa para extraer caracteres del final de una cadena.

Batch Script - Arreglos


Las matrices no se definen específicamente como un tipo en Batch Script,
pero se pueden implementar. Las siguientes cosas deben tenerse en cuenta
cuando las matrices se implementan en Batch Script.

 Cada elemento de la matriz debe definirse con el comando set.


 Se requeriría el ciclo 'for' para recorrer en iteración los valores de la matriz.

Crear una matriz


Se crea una matriz utilizando el siguiente comando set.
set a[0]=1
Donde 0 es el índice de la matriz y 1 es el valor asignado al primer elemento
de la matriz.
Otra forma de implementar matrices es definir una lista de valores e iterar a
través de la lista de valores. El siguiente ejemplo muestra cómo se puede
implementar esto.

Ejemplo

@echo off
set list = 1 2 3 4
(for %%a in (%list%) do (
echo %%a
))

Salida
El comando anterior produce el siguiente resultado.
1
2
3
4

Acceso a matrices
Puede recuperar un valor de la matriz utilizando la sintaxis del subíndice,
pasando el índice del valor que desea recuperar entre corchetes
inmediatamente después del nombre de la matriz.

Ejemplo

@echo off
set a[0]=1
echo %a[0]%

En este ejemplo, el índice comienza desde 0, lo que significa que se puede


acceder al primer elemento usando el índice como 0, se puede acceder al
segundo elemento usando el índice como 1 y así sucesivamente. Veamos el
siguiente ejemplo para crear, inicializar y acceder a matrices:
@echo off
set a[0] = 1
set a[1] = 2
set a[2] = 3
echo The first element of the array is %a[0]%
echo The second element of the array is %a[1]%
echo The third element of the array is %a[2]%

El comando anterior produce el siguiente resultado.


The first element of the array is 1
The second element of the array is 2
The third element of the array is 3

Modificar una matriz


Para agregar un elemento al final de la matriz, puede usar el elemento
establecido junto con el último índice del elemento de la matriz.

Ejemplo

@echo off
set a[0] = 1
set a[1] = 2
set a[2] = 3
Rem Adding an element at the end of an array
Set a[3] = 4
echo The last element of the array is %a[3]%
El comando anterior produce el siguiente resultado.
The last element of the array is 4
Puede modificar un elemento existente de una matriz asignando un nuevo
valor a un índice dado como se muestra en el siguiente ejemplo:
@echo off
set a[0] = 1
set a[1] = 2
set a[2] = 3
Rem Setting the new value for the second element of the array
Set a[1] = 5
echo The new value of the second element of the array is
%a[1]%

El comando anterior produce el siguiente resultado.


The new value of the second element of the array is 5

Iterando sobre una matriz


La iteración sobre una matriz se logra utilizando el ciclo 'for' y recorriendo cada
elemento de la matriz. El siguiente ejemplo muestra una manera simple de
implementar una matriz.
@echo off
setlocal enabledelayedexpansion
set topic[0] = comments
set topic[1] = variables
set topic[2] = Arrays
set topic[3] = Decision making
set topic[4] = Time and date
set topic[5] = Operators

for /l %%n in (0,1,5) do (


echo !topic[%%n]!
)
Es necesario tener en cuenta lo siguiente sobre el programa anterior:
 Cada elemento de la matriz debe definirse específicamente con el comando set.
 El bucle 'for' con el parámetro / L para moverse a través de los rangos se usa para
iterar a través de la matriz.

Salida

El comando anterior produce el siguiente resultado.


Comments
variables
Arrays
Decision making
Time and date
Operators
Longitud de una matriz
La longitud de una matriz se realiza iterando sobre la lista de valores en la
matriz, ya que no hay una función directa para determinar el número de
elementos en una matriz.
@echo off
set Arr[0] = 1
set Arr[1] = 2
set Arr[2] = 3
set Arr[3] = 4
set "x = 0"
:SymLoop

if defined Arr[%x%] (
call echo %%Arr[%x%]%%
set /a "x+=1"
GOTO :SymLoop
)
echo "The length of the array is" %x%

Salida

Salida El comando anterior produce la siguiente salida.


The length of the array is 4

Crear estructuras en matrices


Las estructuras también se pueden implementar en archivos por lotes
utilizando una pequeña codificación adicional para la implementación. El
siguiente ejemplo muestra cómo se puede lograr esto.

Ejemplo

@echo off
set len = 3
set obj[0].Name = Joe
set obj[0].ID = 1
set obj[1].Name = Mark
set obj[1].ID = 2
set obj[2].Name = Mohan
set obj[2].ID = 3
set i = 0
:loop

if %i% equ %len% goto :eof


set cur.Name=
set cur.ID=
for /f "usebackq delims==.tokens=1-3" %%j in (`set obj[%i%]`)
do (
set cur.%%k=%%l
)
echo Name = %cur.Name%
echo Value = %cur.ID%
set /a i = %i%+1
goto loop
Las siguientes cosas clave deben tenerse en cuenta sobre el código anterior.
 Cada variable definida con el comando set tiene 2 valores asociados con cada
índice de la matriz.
 La variable i se establece en 0 para que podamos recorrer la estructura con la
longitud de la matriz que es 3.
 Siempre verificamos la condición de si el valor de i es igual al valor de len y, de lo
contrario, recorremos el código.
 Podemos acceder a cada elemento de la estructura utilizando la notación obj [%
i%].

Salida

El comando anterior produce el siguiente resultado.


Name = Joe
Value = 1
Name = Mark
Value = 2
Name = Mohan
Value = 3
Batch Script - Toma de decisiones
Las estructuras de toma de decisiones requieren que el programador
especifique una o más condiciones para ser evaluadas o probadas por el
programa, junto con una declaración o declaraciones que se ejecutarán si se
determina que la condición es verdadera y, opcionalmente, otras
declaraciones que se ejecutarán si el se determina que la condición es falsa .

S.No Cadenas y Descripción

1 Si la declaración

La primera declaración de toma de decisiones es la declaración 'si'.

2 Declaración If / else
La siguiente declaración de toma de decisiones es la declaración If / else. A
continuación se presenta la forma general de esta declaración.

3 Declaraciones anidadas si
A veces, existe el requisito de tener múltiples declaraciones 'if' incrustadas entre sí. A
continuación se presenta la forma general de esta declaración.

Batch Script - Operadores


Un operador es un símbolo que le dice al compilador que realice
manipulaciones matemáticas o lógicas específicas.
En el Batch Script , son posibles los siguientes tipos de operadores.

 Operadores aritméticos
 Operadores relacionales
 Operadores logicos
 Operadores de Asignación
 Operadores bit a bit

Operadores aritméticos
El lenguaje de secuencia de comandos por lotes admite los operadores
aritméticos normales como cualquier idioma. Los siguientes son los
operadores aritméticos disponibles.
Mostrar ejemplo

Operador Descripción Ejemplo

+ Adición de dos operandos. 1 + 2 dará 3

- Resta el segundo operando del primero 2 - 1 dará 1

** Multiplicación de ambos operandos. 2 * 2 dará 4

// División del numerador por el denominador. 3/2 dará 1.5

% Operador de módulo y resto después de una división entera 3% 2 dará 1


/ flotante

Operadores relacionales
Los operadores relacionales permiten la comparación de objetos. A
continuación se encuentran los operadores relacionales disponibles.
Mostrar ejemplo
Operador Descripción Ejemplo

EQU Comprueba la igualdad entre dos objetos. 2 EQU 2 dará verdadero

NEQ Comprueba la diferencia entre dos objetos. 3 NEQ 2 dará verdadero

LSS Comprueba si el objeto izquierdo es menor que el 2 LSS 3 dará verdadero


operando derecho

LEQ Comprueba si el objeto izquierdo es menor o igual que 2 LEQ 3 dará verdadero
el operando derecho

GTR Comprueba si el objeto izquierdo es mayor que el 3 GTR 2 dará verdadero


operando derecho

GEQ Comprueba si el objeto izquierdo es mayor o igual que 3 GEQ 2 dará verdadero
el operando derecho

Operadores logicos
Los operadores lógicos se utilizan para evaluar expresiones booleanas. Los
siguientes son los operadores lógicos disponibles.
El lenguaje por lotes está equipado con un conjunto completo de operadores
lógicos booleanos como AND, OR, XOR, pero solo para números
binarios. Tampoco hay valores para VERDADERO o FALSO. El único
operador lógico disponible para las condiciones es el operador NOT.
Mostrar ejemplo

Operador Descripción

Y Este es el operador lógico "y"

O Este es el operador lógico "o"

NO Este es el operador lógico "no"

Operadores de Asignación
El lenguaje Batch Script también proporciona operadores de asignación. Los
siguientes son los operadores de asignación disponibles.
Mostrar ejemplo

Operador Descripción Ejemplo

Esto agrega el operando derecho al operando izquierdo y


Conjunto / A a =
asigna el resultado al operando izquierdo
5
+=
a+=3
La salida será de
8

Esto resta el operando derecho del operando izquierdo y


Conjunto / A a =
asigna el resultado al operando izquierdo
5
-=
a-=3
La salida será 2

Esto multiplica el operando derecho con el operando


Conjunto / A a =
izquierdo y asigna el resultado al operando izquierdo
5
*= a*=3
La salida será de
15

Esto divide el operando izquierdo con el operando derecho


Conjunto / A a =
y asigna el resultado al operando izquierdo
6
/=
a/=3
La salida será 2

Esto toma el módulo usando dos operandos y asigna el


Conjunto / A a =
resultado al operando izquierdo
5
%= a% = 3
La salida será 2

Operadores bit a bit


Los operadores bit a bit también son posibles en el Batch Script . Los
siguientes son los operadores disponibles.
Mostrar ejemplo
Operador Descripción

Y Este es el operador "y" bit a bit

El | Este es el operador bit o "bit"

^ Este es el bit xor o exclusivo u operador

A continuación se muestra la tabla de verdad que muestra estos operadores.

pag q p&q p|q p^q

00 00 00 00 00

00 1 00 1 1

1 1 1 1 00

1 00 00 1 1

Script de lote - FECHA y HORA


La fecha y la hora en las secuencias de comandos de DOS tienen los
siguientes dos comandos básicos para recuperar la fecha y la hora del
sistema.

FECHA
Este comando obtiene la fecha del sistema.

Sintaxis

DATE

Ejemplo

@echo off
echo %DATE%

Salida
La fecha actual se mostrará en el símbolo del sistema. Por ejemplo,
Mon 12/28/2015

HORA
Este comando establece o muestra la hora.

Sintaxis
TIME

Ejemplo

@echo off
echo %TIME%

Salida

Se mostrará la hora actual del sistema. Por ejemplo,


22:06:52.87
Las siguientes son algunas implementaciones que se pueden usar para
obtener la fecha y la hora en diferentes formatos.

Fecha en formato Año-Mes-Día


Ejemplo

@echo off
echo/Today is: %year%-%month%-%day%
goto :EOF
setlocal ENABLEEXTENSIONS
set t = 2&if "%date%z" LSS "A" set t = 1

for /f "skip=1 tokens = 2-4 delims = (-)" %%a in


('echo/^|date') do (
for /f "tokens = %t%-4 delims=.-/ " %%d in ('date/t') do (
set %%a=%%d&set %%b=%%e&set %%c=%%f))
endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :EOF

Salida

El comando anterior produce el siguiente resultado.


Today is: 2015-12-30
Batch Script : entrada / salida
Hay tres "archivos" universales para la entrada del teclado, impresión de texto
en la pantalla y errores de impresión en la pantalla. El archivo "Standard In",
conocido como stdin , contiene la entrada al programa / script. El archivo
"Salida estándar", conocido como stdout , se utiliza para escribir la salida para
mostrarla en la pantalla. Finalmente, el archivo "Err estándar", conocido
como stderr , contiene cualquier mensaje de error para mostrar en la pantalla.
Se hace referencia a cada uno de estos tres archivos estándar, también
conocidos como secuencias estándar, utilizando los números 0, 1 y 2. Stdin es
el archivo 0, stdout es el archivo 1 y stderr es el archivo 2.

Salida de redireccionamiento (Stdout y Stderr)


Una práctica común en los archivos por lotes es enviar la salida de un
programa a un archivo de registro. El operador> envía, o redirige, stdout o
stderr a otro archivo. El siguiente ejemplo muestra cómo se puede hacer esto.
Dir C:\ > list.txt
En el ejemplo anterior, la salida estándar del comando Dir C: \ se redirige al
archivo list.txt.
Si agrega el número 2 al filtro de redireccionamiento, redirigirá el stderr al
archivo lists.txt.
Dir C:\ 2> list.txt
Incluso se pueden combinar las secuencias stdout y stderr utilizando el
número de archivo y el prefijo '&'. El siguiente es un ejemplo.
DIR C:\ > lists.txt 2>&1

Supresión de la salida del programa


El pseudo archivo NUL se usa para descartar cualquier salida de un
programa. El siguiente ejemplo muestra que la salida del comando DIR se
descarta enviando la salida a NUL.
Dir C:\ > NUL

Stdin

Para trabajar con el Stdin, debe usar una solución alternativa para lograr
esto. Esto se puede hacer redirigiendo el stdin propio del símbolo del sistema,
llamado CON.
El siguiente ejemplo muestra cómo puede redirigir la salida a un archivo
llamado lists.txt. Después de ejecutar el siguiente comando, el símbolo del
sistema tomará todas las entradas ingresadas por el usuario hasta que
obtenga un carácter EOF. Más tarde, envía todas las entradas al archivo
lists.txt.
TYPE CON > lists.txt
Script de lote - Código de retorno
Por defecto, cuando se completa la ejecución de una línea de comando, debe
devolver cero cuando la ejecución tiene éxito o no cero cuando la ejecución
falla. Cuando un Batch Script devuelve un valor distinto de cero después de
que falla la ejecución, el valor distinto de cero indicará cuál es el número de
error. Luego usaremos el número de error para determinar de qué se trata el
error y resolverlo en consecuencia.
Los siguientes son el código de salida común y su descripción.

Código de Descripción
error

00 Programa completado con éxito.

1 Función incorrecta. Indica que Action ha intentado ejecutar un comando no


reconocido en el símbolo del sistema de Windows cmd.exe.

2 El sistema no puede encontrar el archivo especificado. Indica que el archivo


no se puede encontrar en la ubicación especificada.

3 El sistema no puede encontrar la ruta especificada. Indica que no se puede


encontrar la ruta especificada.

55 Acceso denegado. Indica que el usuario no tiene derecho de acceso al


recurso especificado.

El programa no se reconoce como un comando interno o externo, un


9009
programa operable o un archivo por lotes. Indica que el comando, el nombre
0x2331 de la aplicación o la ruta se han escrito incorrectamente al configurar la
Acción.

221225495 No hay suficiente memoria virtual disponible.


0xC0000017 Indica que Windows se ha quedado sin memoria.
-1073741801

La aplicación finalizó como resultado de un CTRL + C. Indica que la


3221225786
aplicación ha sido finalizada por la entrada de teclado del usuario CTRL + C
0xC000013A o CTRL + Interrupción o cierre de la ventana del símbolo del sistema.
-1073741510

La aplicación falló en iniciarse apropiadamente. Indica que la aplicación se


3221225794
ha iniciado en un escritorio para el que el usuario actual no tiene derechos
0xC0000142 de acceso. Otra posible causa es que gdi32.dll o user32.dll no se han podido
inicializar.
-1073741502

Nivel de error
La variable de entorno% ERRORLEVEL% contiene el código de retorno del
último programa o script ejecutado.
Por defecto, la forma de verificar el ERRORLEVEL es a través del siguiente
código.

Sintaxis

IF %ERRORLEVEL% NEQ 0 (
DO_Something
)
Es común usar el comando EXIT / B% ERRORLEVEL% al final del archivo por
lotes para devolver los códigos de error del archivo por lotes.
EXIT / B al final del archivo por lotes detendrá la ejecución de un archivo por
lotes.
Use EXIT / B <códigos de salida> al final del archivo por lotes para devolver
códigos de retorno personalizados.
La variable de entorno% ERRORLEVEL% contiene el último nivel de error en
el archivo por lotes, que son los últimos códigos de error del último comando
ejecutado. En el archivo por lotes, siempre es una buena práctica usar
variables de entorno en lugar de valores constantes, ya que la misma variable
se expande a diferentes valores en diferentes computadoras.
Veamos un ejemplo rápido sobre cómo verificar los códigos de error de un
archivo por lotes.

Ejemplo

Supongamos que tenemos un archivo por lotes llamado Find.cmd que tiene el
siguiente código. En el código, hemos mencionado claramente que si no
encontramos el archivo llamado lists.txt, deberíamos establecer el nivel de
error en 7. De forma similar, si vemos que la variable userprofile no está
definida, deberíamos establecer el código de nivel de error en 9)
if not exist c:\lists.txt exit 7
if not defined userprofile exit 9
exit 0
Supongamos que tenemos otro archivo llamado App.cmd que llama primero a
Find.cmd. Ahora, si Find.cmd devuelve un error en el que establece el nivel de
error en mayor que 0, saldría del programa. En el siguiente archivo por lotes,
después de llamar a Find.cnd find, en realidad verifica si el nivel de error es
mayor que 0.
Call Find.cmd

if errorlevel gtr 0 exit


echo “Successful completion”

Salida

En el programa anterior, podemos tener los siguientes escenarios como


salida:
 Si el archivo c: \ lists.txt no existe, no se mostrará nada en la salida de la consola.
 Si la variable userprofile no existe, no se mostrará nada en la salida de la consola.
 Si se cumplen las dos condiciones anteriores, se mostrará la cadena "Finalización
exitosa" en el símbolo del sistema.

Bucles
En el capítulo de toma de decisiones, hemos visto declaraciones que se han
ejecutado una tras otra de manera secuencial. Además, las implementaciones
también se pueden hacer en Batch Script para alterar el flujo de control en la
lógica de un programa. Luego se clasifican en declaraciones de flujo de
control.

S.No Bucles y descripción

1 Mientras que la implementación de la declaración

No hay una instrucción while directa disponible en Batch Script, pero podemos hacer
una implementación de este ciclo muy fácilmente usando la instrucción if y las
etiquetas.

2 Para declaración - Implementaciones de listas


La construcción "FOR" ofrece capacidades de bucle para archivos por lotes. La
siguiente es la construcción común de la declaración 'for' para trabajar con una lista
de valores.

3 Recorriendo rangos
La declaración 'para' también tiene la capacidad de moverse a través de un rango de
valores. A continuación se presenta la forma general de la declaración.

44 Clásico para la implementación de bucles


A continuación se presenta la clásica declaración 'para' que está disponible en la
mayoría de los lenguajes de programación.

Recorriendo los argumentos de la línea de comando


La instrucción 'for' también se puede usar para verificar los argumentos de la
línea de comandos. El siguiente ejemplo muestra cómo se puede usar la
instrucción 'for' para recorrer los argumentos de la línea de comando.

Ejemplo

@ECHO OFF
:Loop

IF "%1"=="" GOTO completed


FOR %%F IN (%1) DO echo %%F
SHIFT
GOTO Loop
:completed

Salida

Supongamos que nuestro código anterior se almacena en un archivo llamado


Test.bat. El comando anterior producirá el siguiente resultado si el archivo por
lotes pasa los argumentos de la línea de comando de 1,2 y 3 como Test.bat 1
2 3.
1
2
3
S.No Bucles y descripción

1 Implementación de la declaración de ruptura

La instrucción break se usa para alterar el flujo de control dentro de los bucles dentro
de cualquier lenguaje de programación. La declaración de interrupción se usa
normalmente en construcciones de bucle y se usa para causar la terminación
inmediata del bucle más interno.

Batch Script - Funciones


Una función es un conjunto de declaraciones organizadas juntas para realizar
una tarea específica. En los scripts por lotes, se adopta un enfoque similar
para agrupar enunciados lógicos para formar una función.
Como cualquier otro lenguaje, las funciones en Batch Script siguen el mismo
procedimiento:
 Declaración de función : le informa al compilador sobre el nombre, el tipo de
retorno y los parámetros de una función.
 Definición de función : proporciona el cuerpo real de la función.

Definición de función
En Batch Script, una función se define mediante el uso de la declaración de
etiqueta. Cuando una función se define nuevamente, puede tomar uno o
varios valores como "parámetros" de entrada para la función, procesar las
funciones en el cuerpo principal y devolver los valores a las funciones como
"tipos de retorno" de salida.
Cada función tiene un nombre de función, que describe la tarea que realiza la
función. Para usar una función, "llama" a esa función con su nombre y pasa
sus valores de entrada (conocidos como argumentos) que coinciden con los
tipos de los parámetros de la función.
La siguiente es la sintaxis de una función simple.
:function_name
Do_something
EXIT /B 0
 El nombre_función es el nombre dado a la función que debería tener algún
significado para que coincida con lo que realmente hace la función.
 La instrucción EXIT se usa para garantizar que la función salga correctamente.
El siguiente es un ejemplo de una función simple.

Ejemplo

:Display
SET /A index=2
echo The value of index is %index%
EXIT /B 0
S.No Funciones y descripción

1 Llamar a una función

Se llama a una función en Batch Script utilizando el comando de llamada.

2 Funciones con parámetros


Las funciones pueden trabajar con parámetros simplemente pasándolos cuando
se realiza una llamada a la función.

3 Funciones con valores de retorno


Las funciones pueden funcionar con valores de retorno simplemente pasando
nombres de variables

44 Variables locales en funciones


Las variables locales en las funciones se pueden usar para evitar conflictos de
nombres y mantener los cambios de variables locales a la función.

55 Funciones recursivas
La capacidad de encapsular completamente el cuerpo de una función
manteniendo los cambios variables locales a la función e invisibles para la
persona que llama.

66 E / S de archivo
En Batch Script, es posible realizar las operaciones normales de E / S de archivo
que se esperarían en cualquier lenguaje de programación.

77 Crear archivos
La creación de un nuevo archivo se realiza con la ayuda del filtro de
redirección>. Este filtro se puede usar para redirigir cualquier salida a un archivo.

8 Escribir en archivos
La escritura de contenido en archivos también se realiza con la ayuda del filtro de
redirección>. Este filtro se puede usar para redirigir cualquier salida a un archivo.

99 Anexar a archivos
La escritura de contenido en archivos también se realiza con la ayuda del filtro de
doble redirección >>. Este filtro se puede usar para agregar cualquier salida a un
archivo.

10 Leer de archivos
La lectura de archivos en un Batch Script se realiza mediante el uso del comando
de bucle FOR para recorrer cada línea que se define en el archivo que debe
leerse.

11 Eliminar archivos
Para eliminar archivos, Batch Script proporciona el comando DEL.

12 Renombrar archivos
Para renombrar archivos, Batch Script proporciona el comando REN o RENAME.

13 Moviendo archivos
Para mover archivos, Batch Script proporciona el comando MOVE.

14 Archivos por lotes: tuberías


El operador de canalización (|) toma la salida (por defecto, STDOUT) de un
comando y la dirige a la entrada (por defecto, STDIN) de otro comando.

15 Archivos por lotes: entradas


Cuando se ejecuta un archivo por lotes, le da la opción de pasar los parámetros
de la línea de comandos que luego se pueden leer dentro del programa para su
posterior procesamiento.

dieciséis Usando el operador SHIFT


Una de las limitaciones de los argumentos de la línea de comandos es que solo
puede aceptar argumentos hasta% 9. Tomemos un ejemplo de esta limitación.

17 Carpetas
En Batch Script, es posible realizar las operaciones normales basadas en
carpetas que se esperarían en cualquier lenguaje de programación.

18 años Crear carpetas


La creación de una carpeta se realiza con la ayuda del comando MD (Crear
directorio).

19 Listado de contenidos de carpeta


La lista del contenido de la carpeta se puede hacer con el comando dir. Este
comando le permite ver los archivos y directorios disponibles en el directorio
actual.

20 Eliminar carpetas
Para eliminar carpetas, Batch Scripting proporciona el comando DEL.

21 Renombrar carpetas
Para renombrar carpetas, Batch Script proporciona el comando REN o RENAME.

22 Mover carpetas
Para mover carpetas, Batch Script proporciona el comando MOVE.

Batch Script - Proceso


En este capítulo, discutiremos los diversos procesos involucrados en Batch
Script.

Ver la lista de procesos en ejecución


En Batch Script, el comando TASKLIST se puede usar para obtener la lista de
procesos que se ejecutan actualmente en un sistema.

Sintaxis
TASKLIST [/S system [/U username [/P [password]]]] [/M
[module] | /SVC | /V] [/FI filter]
[/FO format] [/NH]
A continuación se encuentra la descripción de las opciones que se pueden presentar al
comando TASKLIST.
S.No. Opciones y descripción
1)
/ S system
Especifica el sistema remoto al que conectarse

2)
/U
usuario [dominio \]
Especifica el contexto del usuario en el que se debe ejecutar el comando.

3)
/ P [contraseña]
Especifica la contraseña para el contexto de usuario dado. Solicita entrada si se
omite.

4)
/ M [módulo]
Enumera todas las tareas que actualmente usan el nombre exe / dll dado. Si no se
especifica el nombre del módulo, se muestran todos los módulos cargados.

5)
/ SVC
Muestra los servicios alojados en cada proceso.

6)
/V
Muestra información detallada de la tarea.

7)
/ Filtro FI
Muestra un conjunto de tareas que coinciden con un criterio determinado
especificado por el filtro.

8)
/ Formato FO
Especifica el formato de salida. Valores válidos: "TABLE", "LIST", "CSV".

9)
/NUEVA HAMPSHIRE
Especifica que el "Encabezado de columna" no debe mostrarse en la
salida. Válido solo para los formatos "TABLE" y "CSV".

Ejemplos

TASKLIST
El comando anterior obtendrá la lista de todos los procesos que se ejecutan en
su sistema local. A continuación se muestra una instantánea de la salida que
se representa cuando el comando anterior se ejecuta tal como está. Como
puede ver en el siguiente resultado, no solo obtiene los diversos procesos
ejecutándose en su sistema, sino que también obtiene el uso de memoria de
cada proceso.
Image Name PID Session Name
Session# Mem Usage
========================= ======== ================
=========== ============
System Idle Process 0 Services
0 4 K
System 4 Services
0 272 K
smss.exe 344 Services
0 1,040 K
csrss.exe 528 Services
0 3,892 K
csrss.exe 612 Console
1 41,788 K
wininit.exe 620 Services
0 3,528 K
winlogon.exe 648 Console
1 5,884 K
services.exe 712 Services
0 6,224 K
lsass.exe 720 Services
0 9,712 K
svchost.exe 788 Services
0 10,048 K
svchost.exe 832 Services
0 7,696 K
dwm.exe 916 Console
1 117,440 K
nvvsvc.exe 932 Services
0 6,692 K
nvxdsync.exe 968 Console
1 16,328 K
nvvsvc.exe 976 Console
1 12,756 K
svchost.exe 1012 Services
0 21,648 K
svchost.exe 236 Services
0 33,864 K
svchost.exe 480 Services
0 11,152 K
svchost.exe 1028 Services
0 11,104 K
svchost.exe 1048 Services
0 16,108 K
wlanext.exe 1220 Services
0 12,560 K
conhost.exe 1228 Services
0 2,588 K
svchost.exe 1276 Services
0 13,888 K
svchost.exe 1420 Services
0 13,488 K
spoolsv.exe 1556 Services
0 9,340 K
tasklist > process.txt
El comando anterior toma el resultado que muestra la lista de tareas y lo
guarda en el archivo process.txt.
tasklist /fi "memusage gt 40000"
El comando anterior solo buscará aquellos procesos cuya memoria sea
superior a 40 MB. A continuación se muestra una salida de muestra que se
puede representar.
Image Name PID Session Name
Session# Mem Usage
========================= ======== ================
=========== ============
dwm.exe 916 Console 1
127,912 K
explorer.exe 2904 Console 1
125,868 K
ServerManager.exe 1836 Console 1
59,796 K
WINWORD.EXE 2456 Console 1
144,504 K
chrome.exe 4892 Console 1
123,232 K
chrome.exe 4976 Console 1
69,412 K
chrome.exe 1724 Console 1
76,416 K
chrome.exe 3992 Console 1
56,156 K
chrome.exe 1168 Console 1
233,628 K
chrome.exe 816 Console 1
66,808 K

Matar un proceso particular


Permite que un usuario que ejecuta Microsoft Windows XP Professional,
Windows 2003 o posterior elimine una tarea desde una línea de comandos de
Windows por ID de proceso (PID) o nombre de imagen. El comando utilizado
para este propósito es el comando TASKILL.

Sintaxis
TASKKILL [/S system [/U username [/P [password]]]] { [/FI
filter]
[/PID processid | /IM imagename] } [/T] [/F]
A continuación se encuentra la descripción de las opciones que se pueden presentar al
comando TASKKILL.
S.No. Opciones y descripción

1)
/ S system
Especifica el sistema remoto al que conectarse

2)
/U
usuario [dominio \]
Especifica el contexto del usuario en el que se debe ejecutar el comando.

3)
/ P [contraseña]
Especifica la contraseña para el contexto de usuario dado. Solicita entrada si se
omite.

4)
/ FI
FilterName
Aplica un filtro para seleccionar un conjunto de tareas. Permite utilizar
"*". ex. imagename eq acme * Consulte los filtros a continuación para obtener
información adicional y ejemplos.

5)
/ PID
identificacion de proceso
Especifica el PID del proceso que se terminará. Use TaskList para obtener el PID.

6)
/SOY
Nombre de la imágen
Especifica el nombre de la imagen del proceso que se terminará. El comodín '*' se
puede usar para especificar todas las tareas o nombres de imágenes.

7)
/T
Termina el proceso especificado y los procesos secundarios que inició.
8)
/F
Especifica la finalización forzosa de los procesos.

Ejemplos

taskkill /f /im notepad.exe


El comando anterior elimina la tarea de abrir el bloc de notas, si está abierto.
taskill /pid 9214
El comando anterior mata un proceso que tiene un proceso de 9214.

Comenzando un nuevo proceso


Las secuencias de comandos de DOS también tienen la disponibilidad para
comenzar un nuevo proceso por completo. Esto se logra utilizando el comando
START.

Sintaxis

START "title" [/D path] [options] "command" [parameters]


Donde
 title : texto de la barra de título de la ventana CMD (obligatorio).
 ruta : directorio de inicio.
 comando : el comando, archivo por lotes o programa ejecutable para ejecutar.
 Parámetros : los parámetros pasados al comando.
A continuación se encuentra la descripción de las opciones que se pueden presentar al
comando START.
S.No. Opciones y descripción

1)
/ MIN
Ventana de inicio minimizada

2)
/ MAX
Ventana de inicio maximizada.

3)
/BAJO
Use la clase de prioridad IDLE.
4)
/NORMAL
Utilice la clase de prioridad NORMAL.

5)
/POR ENCIMA DE LO NORMAL
Utilice la clase de prioridad ABOVENORMAL.

6)
/DEBAJO DE LO NORMAL
Utilice la clase de prioridad BELOWNORMAL.

7)
/ALTO
Utilice la clase de alta prioridad.

8)
/TIEMPO REAL
Use la clase de prioridad REALTIME.

Ejemplos
START "Test Batch Script" /Min test.bat
El comando anterior ejecutará el Batch Script test.bat en una nueva
ventana. Las ventanas comenzarán en el modo minimizado y también tendrán
el título de "Prueba de secuencia de comandos por lotes".
START "" "C:\Program Files\Microsoft Office\Winword.exe"
"D:\test\TESTA.txt"
El comando anterior ejecutará Microsoft Word en otro proceso y luego abrirá el
archivo TESTA.txt en MS Word.

Batch Script - Alias


Alias significa crear accesos directos o palabras clave para los comandos
existentes. Supongamos que si quisiéramos ejecutar el siguiente comando
que no es más que el comando de listado de directorio con la opción / w para
no mostrar todos los detalles necesarios en un listado de directorio.
Dir /w
Supongamos que creáramos un acceso directo a este comando de la
siguiente manera.
dw = dir /w
Cuando queremos ejecutar el comando dir / w , simplemente podemos
escribir la palabra dw . La palabra 'dw' ahora se ha convertido en un alias del
comando Dir / w.
Crear un alias
Los alias se gestionan mediante el comando doskey .

Sintaxis
DOSKEY [options] [macroname=[text]]
Donde
 macroname : un nombre corto para la macro.
 texto : los comandos que desea recuperar.
A continuación se encuentra la descripción de las opciones que se pueden
presentar al comando DOSKEY.

S.No. Opciones y descripción

1)
/REINSTALAR
Instala una nueva copia de Doskey

2)
/ LISTSIZE = tamaño
Establece el tamaño del búfer del historial de comandos.

3)
/ MACROS
Muestra todas las macros de Doskey.

4)
/ MACROS: TODOS
Muestra todas las macros de Doskey para todos los ejecutables que tienen macros
de Doskey.

5)
/ MACROS: exename
Muestra todas las macros de Doskey para el ejecutable dado.

6)
/HISTORIA
Muestra todos los comandos almacenados en la memoria.

7)
/INSERTAR
Especifica que el nuevo texto que escribe se inserta en el texto antiguo.

8)
/ OVERSTRIKE
Especifica que el texto nuevo sobrescribe el texto antiguo.

9)
/ EXENAME = exename
Especifica el ejecutable.

10)
/ MACROFILE = nombre de archivo
Especifica un archivo de macros para instalar.

11)
macroname
Especifica un nombre para una macro que cree.

12)
texto
Especifica los comandos que desea grabar.

Ejemplo

Cree un nuevo archivo llamado keys.bat e ingrese los siguientes comandos en


el archivo. Los siguientes comandos crean dos alias, uno para el comando cd,
que va automáticamente al directorio llamado test. Y el otro es para el
comando dir.
@echo off
doskey cd = cd/test
doskey d = dir
Una vez que ejecute el comando, podrá ejecutar estos alias en el símbolo del
sistema.

Salida

La siguiente captura de pantalla muestra que después de ejecutar el archivo


por lotes creado anteriormente, puede ingresar libremente el comando 'd' y le
dará la lista del directorio, lo que significa que su alias ha sido creado.
Eliminar un alias
Se puede eliminar un alias o macro estableciendo el valor de la macro en
NULL.

Ejemplo

@echo off
doskey cd = cd/test
doskey d = dir
d=
En el ejemplo anterior, primero estamos configurando la macro d a d =
dir. Después de lo cual lo establecemos en NULL. Como hemos establecido el
valor de d en NULL, la macro d se eliminará.

Reemplazar un alias
Se puede reemplazar un alias o macro estableciendo el valor de la macro en
el nuevo valor deseado.

Ejemplo
@echo off
doskey cd = cd/test
doskey d = dir

d = dir /w
En el ejemplo anterior, primero estamos configurando la macro d a d =
dir. Después de lo cual lo estamos configurando a dir / w. Como hemos
establecido el valor de d en un nuevo valor, el alias 'd' ahora tomará el nuevo
valor.
Batch Script - Dispositivos
Windows ahora tiene una biblioteca mejorada que se puede usar en Batch
Script para trabajar con dispositivos conectados al sistema. Esto se conoce
como la consola del dispositivo: DevCon.exe.
Los desarrolladores y evaluadores de controladores de Windows pueden usar
DevCon para verificar que un controlador esté instalado y configurado
correctamente, incluidos los archivos INF adecuados, la pila de controladores,
los archivos de controlador y el paquete de controladores. También puede
usar los comandos DevCon (habilitar, deshabilitar, instalar, iniciar, detener y
continuar) en los scripts para probar el controlador. DevCon es una
herramienta de línea de comandos que realiza funciones de administración de
dispositivos en computadoras locales y computadoras remotas.
Mostrar información de dispositivo y controlador DevCon puede mostrar las
siguientes propiedades de controladores y dispositivos en computadoras
locales y computadoras remotas (con Windows XP y versiones anteriores):
 ID de hardware, ID compatibles e ID de instancia de dispositivo. Estos
identificadores se describen en detalle en las cadenas de identificación del
dispositivo.
 Clases de configuración del dispositivo.
 Los dispositivos en una clase de configuración de dispositivo.
 Archivos INF y archivos de controlador de dispositivo.
 Detalles de los paquetes de controladores.
 Recursos de hardware.
 Estado del dispositivo.
 Pila de controladores esperada.
 Paquetes de controladores de terceros en la tienda de controladores.
 Buscar dispositivos DevCon puede buscar dispositivos instalados y desinstalados
en una computadora local o remota por ID de hardware, ID de instancia de
dispositivo o clase de configuración de dispositivo.
 Cambiar la configuración del dispositivo DevCon puede cambiar el estado o la
configuración de los dispositivos Plug and Play (PnP) en la computadora local de
las siguientes maneras:
o Habilitar un dispositivo.
o Deshabilitar un dispositivo.
o Actualizar controladores (interactivos y no interactivos).
o Instale un dispositivo (cree un devnode e instale software).
o Elimine un dispositivo del árbol de dispositivos y elimine su pila de
dispositivos.
o Vuelva a buscar dispositivos Plug and Play.
o Agregue, elimine y reordene las ID de hardware de los dispositivos
enumerados en la raíz.
o Cambie los controladores de filtro superior e inferior para una clase de
configuración de dispositivo.
o Agregue y elimine paquetes de controladores de terceros de la tienda de
controladores.
DevCon (DevCon.exe) se incluye cuando instala WDK, Visual Studio y
Windows SDK para aplicaciones de escritorio. El kit DevCon.exe está
disponible en las siguientes ubicaciones cuando está instalado.
%WindowsSdkDir%\tools\x64\devcon.exe
%WindowsSdkDir%\tools\x86\devcon.exe
%WindowsSdkDir%\tools\arm\devcon.exe

Sintaxis
devcon [/m:\\computer] [/r] command [arguments]
donde
 / m: \\ computer : ejecuta el comando en la computadora remota especificada. Se
requieren las barras invertidas.
 / r : reinicio condicional. Reinicia el sistema después de completar una operación
solo si se requiere un reinicio para que un cambio sea efectivo.
 comando : especifica un comando DevCon.
 Para enumerar y mostrar información sobre dispositivos en la computadora, use
los siguientes comandos:
o DevCon HwIDs
o Clases DevCon
o DevCon ListClass
o DevCon DriverFiles
o DevCon DriverNodes
o Recursos DevCon
o Pila DevCon
o Estado de DevCon
o DevCon Dp_enum
 Para buscar información sobre dispositivos en la computadora, use los siguientes
comandos:
o DevCon Find
o DevCon FindAll
 Para manipular el dispositivo o cambiar su configuración, use los siguientes
comandos:
o DevCon Enable
o Deshabilitar DevCon
o Actualización de DevCon
o DevCon UpdateNI
o Instalar DevCon
o DevCon Eliminar
o DevCon Rescan
o Reinicio de DevCon
o Reinicio de DevCon
o DevCon SetHwID
o DevCon ClassFilter
o DevCon Dp_add
o DevCon Dp_delete

Ejemplos

Los siguientes son algunos ejemplos de cómo se usa el comando DevCon.


List all driver files
El siguiente comando usa la operación DevCon DriverFiles para enumerar los
nombres de archivo de los controladores que usan los dispositivos en el
sistema. El comando usa el carácter comodín (*) para indicar todos los
dispositivos en el sistema. Debido a que la salida es extensa, el comando usa
el carácter de redirección (>) para redirigir la salida a un archivo de referencia,
driverfiles.txt.
devcon driverfiles * > driverfiles.txt
El siguiente comando usa la operación de estado DevCon para encontrar el
estado de todos los dispositivos en la computadora local. Luego guarda el
estado en el archivo status.txt para iniciar sesión o para una revisión
posterior. El comando utiliza el carácter comodín (*) para representar todos los
dispositivos y el carácter de redireccionamiento (>) para redirigir la salida al
archivo status.txt.
devcon status * > status.txt
El siguiente comando habilita todos los dispositivos de la impresora en la
computadora especificando la clase de configuración de la Impresora en un
comando DevCon Enable. El comando incluye el parámetro / r, que reinicia el
sistema si es necesario para que la habilitación sea efectiva.
devcon /r enable = Printer
El siguiente comando utiliza la operación de instalación de DevCon para
instalar un dispositivo de teclado en la computadora local. El comando incluye
la ruta completa al archivo INF para el dispositivo (keyboard.inf) y una ID de
hardware (* PNP030b).
devcon /r install c:\windows\inf\keyboard.inf *PNP030b
El siguiente comando escaneará la computadora en busca de nuevos
dispositivos.
devcon scan
El siguiente comando volverá a escanear la computadora en busca de nuevos
dispositivos.
devcon rescan
Batch Script - Registro
El registro es uno de los elementos clave en un sistema Windows. Contiene
mucha información sobre varios aspectos del sistema operativo. Casi todas las
aplicaciones instaladas en un sistema Windows interactúan con el registro de
una forma u otra.
El Registro contiene dos elementos básicos: claves y valores. Las claves de
registro son objetos contenedores similares a las carpetas. Los valores del
registro son objetos que no son contenedores similares a los archivos. Las
claves pueden contener valores u otras claves. Se hace referencia a las claves
con una sintaxis similar a los nombres de ruta de Windows, utilizando barras
diagonales inversas para indicar niveles de jerarquía.
Este capítulo analiza varias funciones, como consultar valores, agregar,
eliminar y editar valores del registro.

S.No Tipos de registro y descripción

1 Lectura del registro

La lectura del registro se realiza mediante el comando REG QUERY.

2 Agregar al registro
La adición al registro se realiza mediante el comando REG ADD.

3 Eliminar del registro


La eliminación del registro se realiza mediante el comando REG DEL.

44 Copiando claves de registro


La copia del registro se realiza mediante el comando REG COPY.

55 Comparación de claves de registro


La comparación de las claves de registro se realiza mediante el comando REG
COMPARE.

Batch Script - Red


El Batch Script tiene la facilidad de trabajar con la configuración de red. El
comando NET se utiliza para actualizar, corregir o ver la red o la configuración
de red. Este capítulo analiza las diferentes opciones disponibles para el
comando net.
S.No Comandos NET y descripción

1 CUENTAS NETAS

Ver la contraseña actual y las restricciones de inicio de sesión para la computadora.

2 CONFIG. NETO
Muestra la configuración actual de su servidor o grupo de trabajo.

3 ORDENADOR NETO
Agrega o elimina una computadora conectada al controlador de dominio de Windows.

44 USUARIO DE RED
Este comando se puede usar para lo siguiente
Ver los detalles de una cuenta de usuario en particular.

55 NET STOP / START


Este comando se usa para detener e iniciar un servicio en particular.

66 ESTADÍSTICAS NETAS
Mostrar estadísticas de red de la estación de trabajo o servidor.

77 USO NETO
Conecta o desconecta su computadora de un recurso compartido o muestra
información sobre sus conexiones.

Batch Script : impresión


La impresión también se puede controlar desde Batch Script a través del
comando NET PRINT.

Sintaxis

PRINT [/D:device] [[drive:][path]filename[...]]


Donde / D: dispositivo: especifica un dispositivo de impresión.

Ejemplo

print c:\example.txt /c /d:lpt1


El comando anterior imprimirá el archivo example.txt en el puerto paralelo lpt1.

Control de impresora de línea de comando


A partir de Windows 2000, muchas, pero no todas, las configuraciones de la
impresora se pueden configurar desde la línea de comandos de Windows
utilizando PRINTUI.DLL y RUNDLL32.EXE

Sintaxis
RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry [ options ] [
@commandfile ]
Donde algunas de las opciones disponibles son las siguientes:
 / dl : elimina la impresora local.
 / dn : elimina la conexión de la impresora de red.
 / dd : elimina el controlador de impresora.
 / e : muestra las preferencias de impresión.
 / f [archivo] : archivo inf o archivo de salida.
 / F [archivo] : ubicación de un archivo INF del que puede depender el archivo INF
especificado con / f.
 / ia : instala el controlador de la impresora usando el archivo inf.
 / id : instala el controlador de la impresora utilizando el asistente para agregar
controlador de impresora.
 / if : instala la impresora usando el archivo inf.
 / ii - Instala la impresora usando el asistente para agregar impresora con un
archivo inf.
 / il : instala la impresora con el asistente para agregar impresoras.
 / in : agrega una conexión de impresora de red.
 / ip : instala la impresora utilizando el asistente de instalación de la impresora de
red.
 / k : imprime la página de prueba en la impresora especificada, no se puede
combinar con el comando al instalar una impresora.
 / l [ruta] : ruta de origen del controlador de impresora.
 / m [modelo] : nombre del modelo del controlador de impresora.
 / n [nombre] : nombre de la impresora.
 / o - Muestra la vista de la cola de la impresora.
 / p : muestra las propiedades de la impresora.
 / Ss : almacena la configuración de la impresora en un archivo.
 / Sr - Restaura la configuración de la impresora desde un archivo.
 / y : configura la impresora como predeterminada.
 / Xg : obtiene la configuración de la impresora.
 / Xs : establece la configuración de la impresora.

Prueba si existe una impresora


Puede haber casos en los que podría estar conectado a una impresora de red
en lugar de una impresora local. En tales casos, siempre es beneficioso
verificar si existe una impresora en primer lugar antes de imprimir.
La existencia de una impresora se puede evaluar con la ayuda de
RUNDLL32.EXE PRINTUI.DLL, que se utiliza para controlar la mayoría de las
configuraciones de la impresora.

Ejemplo

SET PrinterName = Test Printer


SET file=%TEMP%\Prt.txt
RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Xg /n "%PrinterName%"
/f "%file%" /q

IF EXIST "%file%" (
ECHO %PrinterName% printer exists
) ELSE (
ECHO %PrinterName% printer does NOT exists
)
El comando anterior hará lo siguiente:
 Primero establecerá el nombre de la impresora y un nombre de archivo que
contendrá la configuración de la impresora.
 Los comandos RUNDLL32.EXE PRINTUI.DLL se usarán para verificar si la
impresora realmente existe enviando los ajustes de configuración del archivo al
archivo Prt.txt

Batch Script : depuración


Muy a menudo, puede tener problemas al ejecutar archivos por lotes y la
mayoría de las veces necesitaría depurar sus archivos por lotes de una forma
u otra para determinar el problema con el archivo por lotes. Las siguientes son
algunas de las técnicas que pueden ayudar en la depuración de archivos
Batch Script.

Error de mensajes
Para descubrir la fuente del mensaje, siga estos pasos:
Paso 1 - REM fuera de la línea @ECHO OFF, es decir REM @ECHO OFF o ::
@ECHO OFF.
Paso 2 : ejecute el archivo por lotes con los parámetros de línea de comandos
necesarios, redirigiendo toda la salida a un archivo de registro para una
comparación posterior.
test.bat > batch.log 2>&1
Paso 3 : busca en el archivo batch.log los mensajes de error
Paso 4 - Verifique la línea anterior para cualquier comando inesperado o
inválido, interruptor (es) de línea de comando o valor (es); preste especial
atención a los valores de cualquier variable de entorno utilizada en el
comando.
Paso 5 : corrija el error y repita este proceso hasta que todos los mensajes de
error hayan desaparecido.

Líneas de comando complejas


Otra fuente común de errores son los comandos redirigidos incorrectamente,
como por ejemplo los comandos FIND o FINDSTR "anidados" con cadenas de
búsqueda incorrectas, a veces dentro de un bucle FOR / F.
Para verificar la validez de estos comandos complejos, siga estos pasos:
Paso 1 : inserte "líneas de verificación de comandos" justo antes de una línea
que utiliza el conjunto de comandos complejo.
El siguiente es un ejemplo en el que el comando ECHO se inserta para marcar
dónde termina la salida del primer comando TYPE y comienza el siguiente.
TYPE %Temp%.\apipaorg.reg
ECHO.================================================ TYPE
%Temp%.\apipaorg.reg
| FIND
"[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\
Parameters\Interfaces\"
Paso 2 : siga el procedimiento para buscar las fuentes de mensajes de error
descritas anteriormente.
Paso 3 - Presta especial atención a la salida de las líneas de comando
"simplificadas": ¿Es la salida del formato esperado? ¿El valor o la posición del
"token" es el esperado?

Subrutinas
Las subrutinas que generan mensajes de error plantean un "desafío" adicional
para encontrar la causa del error, ya que pueden llamarse varias veces en el
mismo archivo por lotes.
Para ayudar a descubrir qué causa la llamada incorrecta a la subrutina, siga
estos pasos:
Paso 1 : agregue y restablezca una variable de contador al comienzo del
script:
SET Counter = 0
Paso 2 : incremente el contador cada vez que se llame a la subrutina,
insertando la siguiente línea al comienzo de la subrutina
SET /A Counter+=1
Paso 3 : inserte otra línea justo después del incremento del contador, que
contenga solo el comando SET; Esto enumerará todas las variables de
entorno y sus valores.
Paso 4 : siga el procedimiento para buscar las fuentes de mensajes de error
descritas anteriormente.

Versiones de Windows
Si tiene la intención de distribuir sus archivos por lotes a otras computadoras
que pueden o no ejecutar la misma versión de Windows, deberá probar sus
archivos por lotes en tantas versiones de Windows como sea posible.
El siguiente ejemplo muestra cómo verificar varias versiones del sistema
operativo para verificar las versiones relevantes de Windows.
@ECHO OFF
:: Check for Windows NT 4 and later

IF NOT "%OS%"=="Windows_NT" GOTO DontRun


:: Check for Windows NT 4
VER | FIND "Windows NT" >NUL && GOTO DontRun
:: Check for Windows 2000
VER | FIND "Windows 2000" >NUL && GOTO DontRun
:: Place actual code here . . .
:: End of actual code . . .
EXIT

:DontRun
ECHO Sorry, this batch file was written for Windows XP and
later versions only

Batch Script : registro


Es posible iniciar sesión en Batch Script utilizando el comando de redirección.

Sintaxis
test.bat > testlog.txt 2> testerrors.txt

Ejemplo
Cree un archivo llamado test.bat e ingrese el siguiente comando en el archivo.
net statistics /Server
El comando anterior tiene un error porque la opción del comando de
estadísticas de red se da de manera incorrecta.

Salida
Si el comando con el archivo test.bat anterior se ejecuta como
test.bat > testlog.txt 2> testerrors.txt
Y abre el archivo testerrors.txt, verá el siguiente error.
The option /SERVER is unknown.
La sintaxis de este comando es:
NET STATISTICS
[WORKSTATION | SERVER]
Hay más ayuda disponible escribiendo NET HELPMSG 3506.
Si abre el archivo llamado testlog.txt, le mostrará un registro de los comandos
que se ejecutaron.
C:\tp>net statistics /Server

También podría gustarte