Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo escribir un archivo bat, cuál es la sintaxis y algunas plantillas

Cómo escribir un archivo bat, cuál es la sintaxis y algunas plantillas

comando echo

Activa el eco o desactiva la función de solicitud de eco, o muestra un mensaje. Sin ningún parámetro, el comando echo muestra la configuración de eco actual.

Sintaxis

echo [{on|off}] [mensaje]

Ejemplo: @echo off / echo hola mundo

in En aplicaciones reales, combinaremos este comando con símbolos de redirección (también llamados símbolos de canalización, generalmente gt; gt; gt; ^) para ingresar algunos comandos en archivos específicos.

comando rem

comando de comentario, similar a /*--------*/ en lenguaje C, no se ejecutará, solo crea un comentario. será más fácil de leer para otros

y para que usted pueda modificarlo en el futuro.

:: también tiene la función de rem

Pero todavía hay una diferencia entre :: y rem Cuando el eco está desactivado, el contenido después de rem y :: no será. desplegado. Pero cuando se activa el eco, se mostrará el contenido después de rem y rem

, pero el contenido después de:: aún no se mostrará.

Mensaje Rem

Ejemplo: @Rem Aquí está la descripción.

comando de pausa

comando de pausa. Al ejecutar el comando Pausa, se muestra el siguiente mensaje:

Presione cualquier tecla para continuar (o: Presione cualquier tecla para continuar...)

Ejemplo:<. /p >

@echo off

:begin

copiar G:*.* d:\back

echo Por favor inserte otro CD...

pausa

ir a comenzar

En este ejemplo, todos los archivos del disco en la unidad G se copian en d:\back. Aparece un comentario solicitándole que coloque otro disco en la unidad G. El comando de pausa hace que el programa se suspenda para que pueda reemplazar el disco y presionar cualquier tecla para continuar con el procesamiento.

comando de llamada

Llama a un programa por lotes desde otro programa por lotes sin finalizar el programa por lotes principal. El comando de llamada acepta una etiqueta

como destino de la llamada. Si utiliza Llamar fuera de un script o archivo por lotes, no funcionará desde la línea de comando.

Sintaxis

call [[Unidad:][Ruta] NombreDeArchivo] [:etiqueta [argumentos]]

Parámetros

[Unidad :}[Ruta] NombreDeArchivo

Especifica la ubicación y el nombre del programa por lotes que se llamará.

comando de inicio

Llamar a programas externos Todos los comandos de DOS y programas de línea de comandos se pueden llamar mediante el comando de inicio.

Por ejemplo: inicie calc.exe para abrir la calculadora de Windows.

Parámetros comunes:

MIN minimiza la ventana al iniciar

SEPARADO inicia un programa de Windows de 16 bits en un espacio separado

ALTO en la clase de prioridad ALTA inicia la aplicación

REALTIME inicia la aplicación en la clase de prioridad REALTIME

WAIT inicia la aplicación y espera a que finalice

parámetros Estos son los parámetros pasados ​​a Parámetros de comando/programa

Cuando la aplicación en ejecución es una aplicación GUI de 32 bits, CMD.EXE no espera a que la aplicación finalice antes de regresar al símbolo del sistema. Este nuevo comportamiento no ocurrirá si se ejecuta dentro de un script de comando

.

comando ir a

comando saltar. El puntero del programa salta a la etiqueta especificada y la ejecución del programa por lotes continúa desde el primer comando después de la etiqueta.

Sintaxis: ir a etiqueta (la etiqueta es un parámetro que especifica la línea en el programa por lotes que se redirigirá).

Ejemplo:

if {1}= = {} goto noparms

if {2}=={} goto noparms (si no entiendes si, 1 y 2 aquí, salta primero, habrá una explicación detallada más adelante

.)

@Rem comprueba los parámetros si es nulo y muestra el uso

: noparms

uso de echo: monitor.bat Número de puerto IP del servidor

goto end

El nombre de la etiqueta se puede elegir de manera informal, pero es mejor usar letras significativas. Agregue ":" antes de la letra para indicar que la letra es una etiqueta. El comando /p>

se basa en esto: busque el siguiente paso y salte allí. Es mejor tener alguna explicación para que otros puedan entender su intención.

comando set

Muestra, establece o elimina variables.

Mostrar variables: set o set s. El primero muestra todas las variables y sus valores actualmente definidos por el proceso por lotes, y el segundo muestra todas las variables y valores que comienzan con s.

Establecer variable: set aa=abcd Este comando puede asignar abcd a la variable aa. Si se ha definido la variable aa, el valor de aa se modifica a abcd; si no se ha definido aa, este comando puede definir una nueva variable aa y asignar el valor inicial abcd a la variable aa.

Eliminar variable: set aa= Este comando puede eliminar la variable aa. Si se ha definido la variable aa, elimine la variable aa; si no se ha definido aa, este comando tiene un significado sustancial.

Cabe señalar que las variables en el procesamiento por lotes no son sensibles al tipo y no es necesario distinguir entre int, float, char, etc., como las variables en el lenguaje C. Por ejemplo, después de ejecutar set aa=345, el valor de la variable aa puede considerarse como el número 345 o la cadena 345.

El comando set tiene funciones ampliadas, como entrada interactiva, procesamiento de cadenas, cálculo numérico, etc., y pertenece a la categoría de comandos avanzados.

[Editar este párrafo] Introducción a los símbolos de procesamiento por lotes

Máscara de eco @

Indica que el comando después de @ no se muestra durante el proceso de intrusión (como. como usar procesamiento por lotes para formatear el disco duro del enemigo) Naturalmente, no puedes permitir que la otra parte vea los comandos que usas.

Ejemplo de uso de @: puede comprender el efecto de @ ejecutando un archivo por lotes para comparar los comandos de pausa y @pause.

Redirigir 1 gt;>gt;

Redirigir la información de salida al dispositivo o archivo especificado. El sistema envía por defecto al monitor.

Por ejemplo: echo aaaaagt; a.txt puede enviar la información aaaaa mostrada en el monitor al archivo a.txt, sin ninguna visualización en la pantalla. Si el archivo a.txt ya existe, este comando primero borrará toda la información en a.txt y luego escribirá la información aaaaa; si a.txt no existe, este comando creará un nuevo archivo a.txt y escribirá el mensaje; aaaa.

echo aaaaagt;gt;a.txt es similar a echo aaaaagt;a.txt. La diferencia es: si a.txt ya existe, gt; a.txt borrará el contenido original en a.txt, pero gt; a.txt no borrará el contenido original, solo en el archivo a.txt. aaaa al final. Cuando un.txt no existe, no hay diferencia entre los dos.

Redireccionar 2 lt;

Redirigir la fuente de información de entrada al dispositivo o archivo especificado. El sistema lee la información de entrada de la pantalla de forma predeterminada.

Ejemplos de uso de la redirección:

================================ == ==========

@echo off

echo abcdefg——Esta es la información en el archivo a.txt a.txt

echo Por favor ingrese cualquier carácter y termine con Enter:

set /p ifo=

cls

echo Ingrese la información obtenida de la pantalla

echo ifo

set /p ifo=lt; a.txt

echo la información de entrada obtenida del archivo a.txt

echo ifo

pausagt;nul

================================= ==== =======

Los lectores pueden apreciar la función y el efecto de la redirección observando los comandos y la salida.

Símbolo de tubería |

Redirige la salida del comando antes del símbolo de tubería al comando después del símbolo de tubería como entrada del comando posterior. El formato de uso es: comando_1|comando_2

Ejemplo de uso del símbolo de canalización:

======================= == =================

@echo off

echo aaaagt a.txt

del; /p a.txt

pausa

=============================== == =========

@echo off

echo aaaagt

echo y|del /p a.txt;

pausa

==================================== == ====

Al comparar los dos resultados de ejecución del procesamiento por lotes anteriores, los lectores pueden comprender el uso y el efecto del carácter de tubería.

Cabe señalar que el modificador /p agregado al comando del anterior es solo para que los lectores comprendan cómo usar el símbolo de tubería. Al eliminar el archivo, el modificador /p se puede eliminar directamente sin. incitación.

Carácter de escape ^

Convierte símbolos especiales en símbolos generales, es decir, elimina el estado especial de los símbolos especiales. Los símbolos especiales se refieren a: | amp gt; lt;

Por ejemplo, si queremos generar el símbolo "gt;", usar directamente el comando echo gt; eco ^gt;. Varios otros símbolos especiales son similares y requieren el mismo tratamiento.

Ejemplos de uso de caracteres de escape:

=============================== == ===========

@echo off

echo aaaagt;txt

echo La primera oración de eco ha sido ejecutado

p>

echo aaaa^gt; a.txt

echo La segunda oración de eco ha sido ejecutada

pausa

== ====== =================================

Compara los dos ecos oraciones anteriores, la primera oración Echo envía la información aaaa al archivo a.txt, y la segunda oración de eco muestra aaaagt en la pantalla directa a.txt

Símbolos de comando lógicos

Los símbolos de comando lógicos incluyen: amp;, amp; amp;, ||

amp - Su función es conectar n comandos de DOS y ejecutar estos comandos en orden, independientemente de si algún comando falla;

p>

amp; cuando el comando anterior amp; se ejecuta correctamente, se ejecutará el siguiente comando; de lo contrario, no se ejecutará; || - cuando el comando anterior || Cuando el comando falla, se ejecuta el siguiente comando ||; de lo contrario, no se ejecuta.

==========================================

@echo desactivado

echo ^|^|

reg agregar HKCU /v try /f||echo **éxito**

reg agregar HKCU1 /v try /f||echo **fallido**

echo ^amp;^amp;

reg eliminar HKCU /v try /famp;amp;echo * *Éxito**

reg eliminar HKCU /v try /famp;amp;echo **Error**

echo ^amp;

reg eliminar HKCU / v intentar /famp; echo **éxito**

reg eliminar HKCU /v intentar /famp;echo **fallido**

pausa

== =======================================

Ejecutar reg add o Después de eliminar el registro, el sistema dará el resultado de la ejecución; también damos el "resultado de la ejecución" a través del comando echo. Comparando los resultados dados por el sistema y nosotros mismos podemos verificar el mecanismo de juicio del comando lógico.

[Editar este párrafo] Definiciones de comandos comunes de DOS

Administración de carpetas

cd muestra el nombre del directorio actual o cambia el directorio actual.

md crea un directorio.

rd elimina un directorio.

dir muestra una lista de archivos y subdirectorios en un directorio.

árbol Muestra gráficamente la estructura de carpetas de una unidad o ruta.

ruta muestra o establece una ruta de búsqueda para archivos ejecutables.

xcopy copia archivos y árboles de directorios.

El tipo de gestión de archivos

muestra el contenido de un archivo de texto.

copiar Copia uno o más archivos a otra ubicación.

del elimina uno o varios archivos.

mover mueve archivos y cambia el nombre de archivos y directorios. (No disponible en Windows XP Home Edition)

ren Cambiar el nombre de los archivos.

reemplazar reemplaza el archivo.

attrib muestra o cambia los atributos del archivo.

encontrar cadena de búsqueda.

fc compara dos archivos o dos conjuntos de archivos y muestra las diferencias entre ellos

Comandos de red

ping realiza pruebas de conexión de red y resolución de nombres

p>

transferencia de archivos ftp

conjunto de comandos de red net y administración de usuarios

inicio de sesión remoto por telnet

ipconfig muestra y modifica la configuración de TCP/IP

msg Enviar un mensaje al usuario

arp Mostrar y modificar la lista de asignación de direcciones IP-direcciones físicas de la LAN

Gestión del sistema

en Programar en una fecha específica Ejecutar comandos y programas con tiempo

apagar apagar o reiniciar inmediatamente o programar

tskill finaliza el proceso

taskkill finaliza el proceso (más avanzado que tskill, pero no disponible en la versión WinXP Home) Este comando)

lista de tareas muestra la lista de procesos (no disponible en Windows XP Home Edition)

configuración del servicio del sistema sc y control

herramienta de consola de registro reg

p>

Configuración de energía en el sistema de control powercfg

Para todos los comandos enumerados anteriormente, ingrese el comando /? en cmd para ver la información de ayuda para el comando. Por ejemplo, busque /?

[Editar este párrafo] Explicación de la estructura de la declaración

Similar al lenguaje C, el procesamiento por lotes también tiene su estructura de declaración. Las estructuras de declaración del procesamiento por lotes incluyen principalmente estructura de selección (declaración if), estructura de bucle (declaración for), etc.

declaración if (estructura de selección)

La declaración if implementa juicios condicionales, incluida la comparación de cadenas, juicio de existencia, juicio de definición, etc. Mediante juicio condicional, la declaración if puede realizar la función de selección.

1. Comparación de cadenas

La declaración if solo puede juzgar si dos caracteres (cadenas) son iguales y el orden. El formato del comando es:

IF [not] string1 compare-op string2 command1 [else command2]

Entre ellos, el operador de comparación compare-op tiene las siguientes categorías:

== - igual a

EQU - igual a

NEQ - no igual a

LSS - menor que

LEQ - menor o igual a

GTR - mayor que

GEQ - mayor o igual a

Si se selecciona el modificador /i, la cadena se cambiará entre mayúsculas y minúsculas. no se distinguirá; si se selecciona la opción no, el resultado del juicio será No lógico.

Ejemplo de comparación de cadenas:

================================= = ================

@echo apagado

establecer str1=abcd1233

establecer str2=ABCD1234< / p>

if str1==str2 (¡las cadenas de eco son iguales!) else (¡las cadenas de eco no son iguales!)

if /i str1 LSS str2 (echo str1^lt; str2) else (echo str1^gt;=str2)

echo.

set /p Choice=¿Quieres mostrar la hora actual? (y/n)

if /i not option EQU n echo La hora actual es: fecha hora

pausagt

====== = ========================================

Para el último Si juzgamos, cuando ingresamos n o N, el efecto es el mismo y no se mostrará la hora. Si cancelamos el cambio /i, la hora aún se mostrará cuando se ingrese N.

Preste atención también a algunos detalles: 1-echo str1^lt; str2 y echo str1^gt = str2;

2. Juicio de existencia

La función del juicio de existencia es juzgar si un archivo o carpeta existe. El formato del comando es:

IF [NOT] EXIST nombre de archivo comando1 [else comando2]

==================== ===========================

@echo off

si existe 0 archivo de eco 0 ¡Existe!

si no existe ~df0 (

¡la carpeta de eco ~df0 no existe!

) ¡de lo contrario, la carpeta de eco ~df0 existe!

pausagt;nul

================================== ==============

Preste atención a algunas cosas aquí:

1-El juicio de existencia puede juzgar tanto archivos como carpetas;

p>

2-0 representa el nombre completo del lote (incluida la letra de la unidad, la ruta, el nombre del archivo y el tipo de extensión).

3-~df0 es una corrección a 0; conservando solo la otra letra de unidad y la ruta, consulte /? para obtener más detalles, que pertenece a la categoría de procesamiento por lotes avanzado

4-Preste atención a la escritura de varias líneas de la declaración if; La escritura de varias líneas requiere que el corchete izquierdo de comando1 debe estar en la misma línea que if, else debe ir con el corchete derecho de comando1 y el corchete izquierdo de comando2 debe ir con else. Tanto comando1 como comando2 pueden tener cualquier número de. líneas, es decir, el comando puede ser un conjunto de comandos.

3. Juicio de definición

La función del juicio de definición es juzgar si la variable existe, es decir, si ha sido definida.

El formato del comando es:

IF [no] variable DEFINED comando1 [else comando2]

Ejemplo de juicio de existencia:

========= ======================================

@echo apagado

establece var=111

si está definido var (echo var=var) ¡de lo contrario, echo var aún no está definido!

set var=

si está definido var (echo var=var) ¡de lo contrario, echo var aún no está definido!

pausagt;nul

================================== ==============

A partir de la comparación, "set var=" puede cancelar la variable y recuperar el espacio de memoria ocupado por la variable.

4. Juicio del resultado

masm 1.asm

si el nivel de error 1 pausa amp editar 1.asm

enlace 1.obj;

Primero ensambla el código fuente. Si falla, pausará el mensaje de error y ingresará automáticamente a la interfaz de edición después de presionar cualquier tecla; de lo contrario, use el programa de enlace para conectar el archivo obj generado. Para juzgar primero, el código de retorno después de ejecutar un comando (también llamado código de error, los programas de DOS tienen códigos de retorno después de ejecutarse), si coincide con el código de error definido (el código de error definido aquí es 1), entonces la operación correspondiente es. realizado (el correspondiente aquí La operación es pausar y editar la sección 1.asm).

Además, al igual que los otros dos usos, este uso también puede significar negación. Para seguir expresando el significado de las tres oraciones anteriores en forma negativa, el código se convierte en:

masm 1.asm

si no errorlevel 1 link 1.obj

pausar amp; editar 1.asm

declaración for (estructura de bucle)

La declaración for puede implementar una estructura de bucle similar a la del lenguaje C. Por supuesto, la función del. para la declaración es más potente. Diferentes interruptores pueden lograr más funciones. La declaración for tiene múltiples modificadores y diferentes modificadores implementarán diferentes funciones.

1. Sin interruptor

La declaración for sin interruptor puede repetirse dentro del rango establecido y es la declaración de bucle for más básica. El formato del comando es:

FOR variable IN (set) DO comando

Entre ellos, variable es el formato de escritura en el programa por lotes. Está escrito como variable en DOS, es decir. , solo hay cien. El punto y coma (); set es el rango del bucle que necesitamos configurar, similar a la variable de bucle en lenguaje C; el comando después de do es el comando ejecutado por el bucle, es decir, el cuerpo del bucle.

Ejemplo de una declaración for sin un modificador:

============================ ===== =================

@echo off

para i en (a, "b c", d ) hacer eco i

pausagt;nul

============================== ======= =============

2. Cambiar /L

La declaración for que contiene el interruptor /L puede repetirse según los ajustes del conjunto, logrando así un control directo sobre el número de bucles. El formato del comando es:

FOR /L variable IN (inicio, paso, fin) DO comando

Entre ellos, inicio es el valor inicial para comenzar a contar y paso es el valor de cada incremento, end es el valor final. Cuando el final es menor que el inicio, el paso debe establecerse en un número negativo.

Ejemplo de declaración for con modificador /L (crear 5 carpetas):

===================== == =========================

@echo off

para /l i en (1, 2 , 10) hacer md i

pausa

============================ == ==================

El ejemplo anterior creará 5 carpetas nuevas y los nombres de las carpetas son 1, 3, 5, 7 y 9. . Se puede encontrar que el valor final de i no es el valor de final, 10, sino un número no mayor que final.

3. Switch /F

La declaración for que contiene el switch /F tiene la función más poderosa. Puede operar en cadenas y el valor de retorno del comando, también puede acceder. Archivos de código ASCII en el disco duro, como documentos txt, etc. El formato del comando es:

FOR /F ["opciones"] variable IN (set) DO comando

Entre ellos, set es ("string", 'command', file- set ); opciones es una o una combinación de uno o más de (eol=c, skip=n, delims=xxx, tokens=x, y, m-n, usebackq). Consulte /f para conocer el significado de cada opción. En términos generales, se utilizan comúnmente las tres opciones de omisión, tokens y delimitaciones.

Ejemplo de declaración for con modificador /F:

============================ ====================

@echo off

echo **Sin opciones:

para /f a in ("1, 2, 10") haz echo a=a

echo **Tokens de opciones ^amp; delims:

for /f "tokens=1- 3 delims=," a in ("1,2,10") hacer eco a=a b=b c=c

pausa

========== =====================================

@echo apagado

echo Los archivos en esta carpeta son:

for /f "skip=5 tokens=3* delims= " a in ('dir') do (

if no "a"=="lt;DIRgt;" si no "b"=="bytes" si no "b"=="bytes disponibles" echo b

)

pausa

========================================== = =======

@echo off

echo Los archivos en esta carpeta son:

dirgt;c:\file.txt

for /f "skip=5 tokens=3* delims= " a in (c:\file.txt) do (

if not "a"=="lt; DIRgt ;" si no "b"=="bytes" si no "b"=="bytes disponibles" echo b

)

del c:\file.txt

pausa

===================================== ==== =======

Para los siguientes dos ejemplos, las opciones delims= in se pueden eliminar, porque siempre que se agregue el modificador /F, el sistema establecerá de forma predeterminada que el valor de delims sea un espacio. .

El último carácter de la cadena de símbolos es un asterisco,

entonces la variable adicional se asignará después de que se haya resuelto el último símbolo

y acepte la reservada. texto de la línea. En este ejemplo, también se puede cambiar a 4, pero para archivos con espacios en el nombre del archivo, solo se puede mostrar la parte antes de los espacios

Al mismo tiempo, también hemos visto que el comando después del do de la declaración for también se puede bifurcar, siempre y cuando solo asegúrese de que el corchete izquierdo del comando y do estén en la misma línea.

4. Cambiar /D o /R

La instrucción for que contiene cambiar /D o /R es un comando relacionado con un directorio o archivo, y rara vez se usa en general. Los comandos con el modificador /R a veces se usan para buscar un archivo o carpeta atravesando carpetas, por eso se proporciona este ejemplo.

Ejemplo de declaración for con modificador /R (recorrido de carpeta):

======================= = ========================

@echo off

setlocal enableelayeexpansion

FOR /R d: i IN (.) DO (

set dd=i

set "dd=!dd:~0,-1!"

echo !dd!

)

pausa

salir

============= = =================================

El ejemplo anterior puede enumerar todas las carpetas de la unidad D. bajo el comando son mucho más lentos que el comando "árbol d:", pero la practicidad de los resultados devueltos supera con creces la del comando de árbol.

Generalmente no recomendamos recorrer carpetas para buscar archivos, especialmente cuando buscamos la ubicación de ciertos programas (como QQ.exe). Se recomienda buscar en el registro mediante el comando reg para encontrar la ruta de QQ para garantizar la eficiencia de la búsqueda.

También aparecieron varias caras nuevas en el ejemplo anterior, como setlocal, signo de exclamación, etc. Entre ellos, el signo de exclamación es en realidad una versión mejorada del signo de porcentaje variable (). La razón por la que deberías usar! en lugar de not es porque en el bucle for, cuando se asigna una variable varias veces, lo que obtiene dd es solo el valor asignado a dd por primera vez, si desea actualizar el valor de dd, primero debe pasar el comando "setlocal enableelayeexpansion" para activar el interruptor de la variable de retardo y luego usar !dd para obtener el valor de dd.

La declaración for es el conjunto de comandos más poderoso y comúnmente utilizado en el procesamiento por lotes, pero el más difícil de dominar. Esta es también la línea divisoria más obvia entre los principiantes y los expertos en procesamiento por lotes. Si establece el comando, no estará lejos de ser un experto en procesamiento por lotes.

Referencia/vista/80110.htm?fr=ala0_1_1#3_2