Guía Completa de Batch Script
Guía Completa de 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.
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
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
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.
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.
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.
@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"
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.
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
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
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
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.
1 Crear cadena
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.
14 Cadena derecha
Esto se usa para extraer caracteres del final de una cadena.
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]%
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]%
Salida
if defined Arr[%x%] (
call echo %%Arr[%x%]%%
set /a "x+=1"
GOTO :SymLoop
)
echo "The length of the array is" %x%
Salida
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
Salida
1 Si la declaración
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.
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
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
LEQ Comprueba si el objeto izquierdo es menor o igual que 2 LEQ 3 dará verdadero
el 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
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
00 00 00 00 00
00 1 00 1 1
1 1 1 1 00
1 00 00 1 1
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
@echo off
echo/Today is: %year%-%month%-%day%
goto :EOF
setlocal ENABLEEXTENSIONS
set t = 2&if "%date%z" LSS "A" set t = 1
Salida
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
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
Salida
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.
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.
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.
Ejemplo
@ECHO OFF
:Loop
Salida
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.
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
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.
17 Carpetas
En Batch Script, es posible realizar las operaciones normales basadas en
carpetas que se esperarían en cualquier lenguaje de programación.
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.
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
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
Sintaxis
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.
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.
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
Salida
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
2 Agregar al registro
La adición al registro se realiza mediante el comando REG ADD.
1 CUENTAS NETAS
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.
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.
Sintaxis
Ejemplo
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.
Ejemplo
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
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.
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
:DontRun
ECHO Sorry, this batch file was written for Windows XP and
later versions only
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