¿Cómo escribir .bat?
Por ejemplo, escriba un archivo por lotes BAT... Primero puede crear un texto nuevo y cambiar el sufijo a .BAT. Aquí hay algunos comandos de uso común: También hago la copia... @. echo off Echo significa giratorio, aquí significa eco y echo off significa apagar el eco. La @ delante significa eco desactivado. Esta línea no se repetirá. Puede intentar eliminar @ y toda la línea. Otra función de @ es reanudar automáticamente el eco del comando cuando se ejecuta el archivo por lotes. Si la primera oración es ECHO OFF, el símbolo del sistema no se mostrará después de ejecutar el archivo por lotes. Por ejemplo: si primero creamos un 1. .bat file" highlights="true"gt; bat file, ingrese: dir y guárdelo en c:\. Luego ejecutamos cmd, ingresamos al directorio raíz de la unidad c, ingresamos 1.bat, se mostrará: C: gt ;dir
El volumen en la unidad C no tiene etiqueta
El número de serie del volumen es 0C5D-07FFC: directorio 2004-08-25 00:45 lt; /p> p>
2004-08-25 00:51 lt; DIRgt; Documentos y configuraciones.......C: Si cambia el contenido de 1. bat para hacer eco de offdir y luego ingresa 1 en cmd .bat, mostrará C: gt; echo off // Debido a que se ejecuta echo off, el comando dir no se muestra y el resultado se muestra directamente
El volumen en la unidad C no tiene etiqueta.
El número de serie del volumen es 0C5D-07FFC: Directorio 2004-08-25 00:45 lt; WINDOWS
2004-08-25 00:51 lt; DIRgt; Documentos y configuraciones. . C: Si el archivo 1. bat se modifica a: @echo off
dir se mostrará como: C: gt //Diferente al anterior. , el motivo es que se agrega @, por lo que el contenido después de @ no se muestra y debido a que se agrega //echooff, los siguientes comandos no se muestran y los resultados se muestran directamente.
El volumen en la unidad. C no tiene etiqueta.
El número de serie del volumen es 0C5D-07FFC: Directorio de 2004-08-25 00:45 lt;DIRgt;WINDOWS
2004-08-25 00:51 lt; DIRgt; Documentos y Configuraciones. . . . C: A través de la comparación anterior, creo que domina completamente el comando de desactivación de eco. Ya es la 1 en punto. . . ¡Estoy tan cansada de escribir! ! ! Fui a darme una ducha y a acostarme——————————————————————————————Me detuvieron a las 6 en punto la mañana. . . Mi vida es miserable, así que sigamos escribiendo—————————————————————————————————Lo siguiente de lo que hablaré es del comando de llamada: llamar significa llamar, no “oh” Maldita sea, maldita sea :). llamar significa llamar. Supongamos que hay dos archivos por lotes a.bat y b.bat. Si quiero ejecutar b.bat dentro de a.bat. ¿Cómo funciona? De hecho, es muy simple, siempre que ingrese el comando de llamada en el archivo a.bat, puede ejecutar b.bat mientras se ejecuta a.bat. Después de que b.bat termine de ejecutarse, continúe ejecutando a.bat. formato de comando de llamada: CALL [unidad: ][ruta]nombre de archivo [parámetros de lote] parámetros de lote especifica la información de la línea de comando requerida por el programa por lotes. Por ejemplo, de la siguiente manera, creamos un en el directorio raíz de la unidad c. bat, el contenido es: echo este es a.batcall d: b.batecho hecho Luego cree b.bat en el directorio raíz de la unidad d, el contenido es: echo esto es b.bat Después de guardar, abra cmd e ingrese el directorio raíz de la unidad c, luego ingrese 1.bat, la pantalla es la siguiente: C: gt; a.batC: gt; echo este es a.bat
este es a.batC: gt ; llamar a d: b.batC: gt; echo esto es b.bat
esto es b.batC:gt; echo done
done se puede ver fácilmente en el ejemplo. ejecuta el contenido de a.bat primero hasta que encuentre Después de llamar a b.bat, llame a b.bat. Después de ejecutar b.bat, regrese a a.bat y ejecute la declaración echo done después de llamar a b.bat hasta que todos los comandos por lotes de. se ejecutan a.bat. Nota: Hay [parámetros de lote] en él. ¿A qué parámetros se refiere? Si lo sabe, ¿podría decírmelo? El comando PAUSE
pausa la ejecución de un programa por lotes y muestra un mensaje que solicita al usuario que presione cualquier tecla para continuar la ejecución. Este comando sólo se puede utilizar en programas por lotes.
Comando rem: indica que los caracteres después de este comando son líneas de explicación (comentarios) y no se ejecutarán. Son solo para referencia futura (equivalente a comentarios en el programa). También puedes usar dos puntos en lugar de rem. Tales como: :: Equivalente a un rem. Pero hay una diferencia entre ellos, es decir, si usas: como comentario, no se repetirá. Incluso si presionas eco para forzar el eco, no será lo mismo. Al mismo tiempo, rem puede agregar comentarios en config.sys. Sintaxis: parámetros del archivo por lotes rem[commnet]: cualquier persona con algunas habilidades de programación sabe que las funciones tienen parámetros. Los archivos por lotes también tienen parámetros. Estoy usando una analogía con la esperanza de ayudar a las personas sin habilidades lingüísticas a entenderla claramente. Permítanme comenzar con un ejemplo. Primero cree un archivo por lotes en el directorio raíz de la unidad c a. bat, ingrese el contenido echo 1 y luego abra cmd, y luego ingrese el directorio raíz de la unidad c. Ingrese: a "esto es un canshu" y obtenga los siguientes resultados: C: gt; a.bat "esto es una prueba" C: gt; echo "esto es una prueba"
"esto es una prueba" En la entrada a "esto es un canshu", a es el nombre del archivo a del a.bat recién creado (el siguiente .bat puede estar escrito o no), y la oración "esto es un canshu" después de a es el parámetro. Los parámetros escritos aquí se colocarán automáticamente en el programa por lotes cuando el programa se esté ejecutando. Entonces ¿dónde ponerlo? Simplemente ponlo en 1. Después de ver el ejemplo, echemos un vistazo a la definición completa de parámetros: los archivos por lotes también pueden usar parámetros como funciones del lenguaje C (equivalentes a los parámetros de línea de comando de los comandos DOS), lo que requiere el uso de un indicador de parámetro "".
[1-9] representa parámetros. Los parámetros se refieren a cadenas separadas por espacios (o Tabulador) agregados después del nombre del archivo al ejecutar el archivo por lotes. Las variables pueden oscilar entre 0 y 9, 0 representa el comando por lotes en sí y otras cadenas de parámetros se representan en orden del 1 al 9. // En el ejemplo de nuestro último programa, hay %1, que es el parámetro. En la entrada, "esto es una prueba" se coloca directamente en la posición de %1 como parámetro, por lo que el programa se convierte en eco "esto". es una prueba" ". Aquí hay algunos ejemplos más para ayudarlo a comprender: El archivo de procesamiento por lotes en el directorio raíz C: se llama b.bat y el contenido es:
@echo off
type 1 //tipo es El comando de salida en dos se puede utilizar para generar el contenido de un archivo de texto. Por ejemplo, creamos un nuevo 1. archivo txt //Ingrese el contenido y guárdelo. Ingrese cmd, si ingresa 1. El texto no se puede leer 1. contenido del archivo txt, pero ¿qué pasa si // quiero verlo? En este momento, puede usar el comando de tipo, simplemente ingrese tipo en cmd 1. El texto se puede mostrar //1. archivo txt
tipo 2
Luego ejecuta C: gt; b a.txt b.txt
1: significa a.txt
p>2: representa b.txt, por lo que el comando por lotes anterior se convierte en @echo offtype a.txttype b.txt
Entonces el comando anterior mostrará a.txt yb secuencialmente El contenido del .txt archivo.
Las personas que no tienen conocimientos de programación pueden preguntarse: ¿por qué necesitamos establecer parámetros? ¿Qué tan problemático es agregar un parámetro al final? ¿No sería mejor escribir directamente en él? ! De hecho, hay maneras correctas e incorrectas de pensar de esta manera. Pongamos un ejemplo para ilustrar. El primer paso es crear un nuevo archivo por lotes en el directorio raíz de la unidad c. Aún lo llamaremos a.bat. Ingrese el contenido dentro como: ping 1 // El comando ping puede entenderse simplemente como probar si una máquina está encendida o apagada. Si está encendida, le enviará una respuesta. Luego ingrese cmd, queremos probar si el servidor 163 está abierto, luego ingrese www.163.com. Para aquellos que conocen el comando ping, pueden verificar haciendo ping, pero si quieren hacer ping no saben cómo hacerlo. use el comando ping, ¿Qué debemos hacer? En este momento, puede ingresar el comando en el archivo por lotes con anticipación, guardarlo y luego dejar que alguien que no sepa cómo usarlo ingrese cmd y ejecute su archivo por lotes. Simplemente agregue la dirección del sitio web al que desea hacer ping. el nombre del archivo. En otras palabras, si quiere hacer ping a 163, puede agregar directamente la dirección del sitio web de 163, y si quiere hacer ping a Sina, puede agregar directamente la dirección del sitio web de Sina. De esta manera, solo necesita ingresar un parámetro sin cambiar el programa en sí, y la versatilidad de todo el programa mejora enormemente. Esto es para un comando ping simple. Puede pensar que no vale la pena usar parámetros, por lo que es mejor cambiarlos. Pero, ¿qué pasa si hay muchos elementos en el programa y no encuentras dónde cambiarlos a la vez? Entonces, no importa si eres Cai Ge, Cai Brother, Cai Sister, Cai Mei, simplemente ejecútalo, ingresa los parámetros y los resultados aparecerán por sí solos. No tienes que pensar en cómo escribir archivos por lotes como tú. . Siempre que la gente sepa qué ingresar para ejecutar el programa por lotes, la persona que lo escribe piensa en cómo permitir que las personas que no entienden el programa lo ejecuten. Los parámetros de procesamiento por lotes son así de simples. Pero si desea saber más sobre los parámetros de procesamiento por lotes, puede continuar leyendo a continuación. Si no desea saber más al respecto, es suficiente saberlo ahora. El siguiente contenido rosa es información en línea. ================================== Porque los parámetros son sólo 1%-9%, pero cuando nosotros quiero citar Cuando se pasan el décimo o más parámetros, el puntero de inicio del parámetro de DOS debe moverse. El comando shift desempeña el papel de este puntero en movimiento. Mueve el puntero de inicio del parámetro al siguiente parámetro, similar al puntero en lenguaje C. El diagrama de funcionamiento es el siguiente: En el estado inicial, cmd es el nombre del comando y se puede hacer referencia a él con 0
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
. ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
amp;line;amp;line;amp;line;amp;line;amp;line;amp;line;amp;line;amp;line;amp ;line;amp;line;
0 1 2 3 4 5 6 7 8 9 Después de 1 turno, no se hará referencia a cmd
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^
amp línea;
amp; línea; amp; línea; también se descarta, 9 puntos para vaciar y no tiene significado de referencia
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
amp;línea;amp;línea;amp;línea;amp;línea;amp;línea;amp;línea;amp;línea;amp;línea;amp;línea;amp;línea
0 1 2 3 4 5 6 7 8 9 Desafortunadamente, la operación inversa de shift no es compatible con win9x y DOS. Sólo en el entorno de línea de comando del kernel nt, shift admite el parámetro /n, que puede usarse como parámetro. primer parámetro Devuelve el puntero inicial en movimiento como referencia
================== si va a la opción para sintaxis avanzada. Eso es todo por hoy. Empacar mis cosas Listo para salir y volver a la escuela. Tal vez si "ir a" opción "para gramática avanzada solo se puede completar en Shenyang, deséame buena suerte. ====================== El "Cibercafé" de la escuela finalmente ha reabierto. Tómese el tiempo para terminar de escribir el resto. es equivalente a if en nuestra lengua vernácula. Por ejemplo: si a a le gusta b, entonces a se casará con b. Traducido al lenguaje informático, esta oración se convierte en si Si a le gusta b, a se casará con b. Por supuesto, es imposible que una computadora comprenda estas dos oraciones: a le gusta b y a debe casarse con b. Aquí hay solo un ejemplo para que le resulte más fácil de entender. La declaración if tiene tres modos, de la siguiente manera:
IF [NOT] cadena1==cadena2 comando
IF [NOT] EXIST comando de nombre de archivo
IF [NOT ] Comando numérico ERRORLEVEL NO especifica que Windows XP debe ejecutar este comando sólo si la condición es falsa. ERRORLEVEL número La condición especificada es verdadera si la última ejecución del programa devuelve un código de salida igual o mayor que el número especificado. cadena1==cadena2 Si la cadena literal especificada coincide, la condición especificada es verdadera. EXIST nombre de archivo Si el nombre de archivo especificado existe, la condición especificada es verdadera. comando Si se cumplen las condiciones, especifique el comando que se ejecutará. Si la condición especificada es FALSA, el comando puede ir seguido de un comando ELSE que ejecuta el comando que sigue a la palabra clave ELSE.
Primero expliquemos el primero: IF [NOT] cadena1==cadena2 comando El significado de la declaración natural es: si cadena1==cadena2, entonces ejecute el comando Aquí hay una declaración if práctica. Declaración natural: si el parámetro de entrada es 3, se muestra "a=3" Declaración de computadora: @echo off
if "1"=="3" echo "a=3" o escrita como. @echo off
if 1==3 echo "a=3" Nota: cuando desee realizar la prueba, ingrese 1.bat 3 en cmd. Debido a que aquí se utilizan parámetros, consulte la parte anterior del archivo. Para obtener más información, consulte el artículo "Parámetros del archivo por lotes". El segundo tipo: comando IF [NOT] EXIST filename. Si existe, ejecute el comando. Si no existe, no se muestra nada. Por ejemplo: queremos comprobar si hay un archivo llamado 2.txt en el directorio raíz de la unidad e. Si existe, se muestra existir. Si no existe, no se muestra nada. El comando de procesamiento por lotes es el siguiente: @echo off
if existe e: 2.txt echo "exist 2.txt" El tercer tipo: IF [NOT] ERRORLEVEL comando numérico Citaré alguna información sobre esto Creo que otros lo han escrito bien. Con más detalle, la parte de referencia es la parte rosa: si errorlevel lt; número gt, muchos programas de DOS devolverán un valor numérico después de ejecutarse para indicar el resultado (o estado). del programa en ejecución. Puede usar el comando if errorlevel para determinar el valor de retorno del programa y decidir ejecutar diferentes comandos en función de diferentes valores de retorno (los valores de retorno deben ordenarse de mayor a menor). Si el valor de retorno es igual al número especificado, la condición es verdadera y se ejecuta el comando; de lo contrario, se ejecuta la siguiente oración.
Por ejemplo, si el nivel de error 2 va a x2 ==== Nota ===========
No es necesario organizar los valores de retorno en orden descendente, solo cuando el El comando de ejecución es goto. Cuando se usa set como comando de ejecución, generalmente se organiza en orden de pequeño a grande. Por ejemplo, si necesita colocar el código de retorno en una variable de entorno, debe usar el siguiente formulario de pedido. : si el nivel de error 1 establece el=1
si el nivel de error 2 establece el=2
si el nivel de error 3 establece el=3
si el nivel de error 4 establece el=4
si el nivel de error 5 establece el=5
... Por supuesto, también puedes usar el siguiente bucle, el principio es el mismo:
for e in (1 2 3 4 5 6 7 8...) do if errorlevel e set el=e // Este es un bucle for, que se presentará más adelante si no lo comprende, puede omitirlo primero. Si el nivel de error compara el código de retorno, la condición de juicio no es igual a, sino mayor o igual a. Debido al salto de goto Las características, la clasificación de pequeño a grande hará que salte el código de retorno más pequeño y debido a "; función de asignación "repetida" del comando set, ordenar de grande a pequeño hará que el código de retorno más pequeño "cubra" el código de retorno más grande. Además, aunque si errorlevel=lt; number gt; command también es una línea de comando válida, es solo que command.com ignora = como separador de línea de comando al interpretar la línea de comando.
choice comando goto comando for comando for comando es en realidad un comando de bucle. Si queremos repetir una declaración, usamos. se puede utilizar para el comando. A través del comando for, podemos controlar el número de bucles, etc. Sintaxis: FOR variable IN (set) DO comando [comando-parámetros] variable especifica un parámetro reemplazable de una sola letra.
(conjunto) Especifica un archivo o un grupo de archivos. Se pueden utilizar caracteres comodín. El comando
especifica el comando a ejecutar para cada archivo.
command-parameters
Especifique parámetros o modificadores de línea de comandos para un comando específico. Cuando utilice el comando FOR en un archivo por lotes, utilice variable
en lugar de variable al especificar una variable.
Los nombres de las variables distinguen entre mayúsculas y minúsculas, por lo que i es diferente de I. No sé si lo entiendes, pero en realidad es muy fácil de entender. Quiero usar tipo para imprimir todos los archivos bat y txt en el directorio raíz de la unidad c. El comando bajo dos es tipo*. murciélago *.txt. Primero guarde el archivo en el directorio raíz de la unidad c, denominado a.bat. Utilice el comando for de la siguiente manera: para t en (*.bat *.txt), escriba tt en realidad es un parámetro representado y su contenido está en in. () El contenido entre paréntesis. En otras palabras, la t en esta oración se convierte en *.bat *.txt Do significa hacer, ejecutar el comando de tipo, y el tipo va seguido de t, y t es *.bat *.txt. Entonces, el significado original de este comando es: escriba *.bat *.txt Al ejecutar, ingrese cmd, luego ingrese a.bat en el directorio raíz de la unidad c para imprimir todas las extensiones en el directorio raíz de la unidad c. El contenido de los archivos denominados .bat y .txt. Nota aquí: hay un espacio después de in. Bajo parámetros] Este conjunto representa una secuencia de números en incrementos de principio a fin.
Por lo tanto, (1, 1, 5) producirá la secuencia 1 2 3 4 5, y (5, -1, 1) producirá la secuencia
(5 4 3 2 1) El primer 1 está en la posición inicial, que significa la posición inicial, y el segundo 1 está en la posición de paso, que en inglés significa paso, lo que significa que cada incremento es 1. El siguiente 5 está en la posición final. , es decir, el tamaño al final. Lo que significa esta oración es comenzar a aumentar desde 1 (inicio), aumentando en 1 (paso) cada vez, hasta llegar a 5 (final). Siento que estas cosas siguen siendo muy útiles. Para el ejemplo más simple, queremos repetir la frase "soy el mejor" 10 veces. Entonces el comando for es el siguiente: for /L e in (1, 1, 10). ) haga eco de "soy el mejor" En este momento, cmd ingresará repetidamente "soy el mejor" 10 veces ======================= =. =======================¿Has leído el artículo completo? Bueno...no me resulta fácil escribir...No sé qué. Piensa en ello ahora. ¿Qué tipo de comprensión tiene bat? Mi sensación actual es que bat es una combinación de comandos dos. Si escribes todos los comandos dos en el comando bat, siempre que ejecutes bat, los comandos dos lo harán. ejecutarse uno por uno. Esto sin duda proporciona mucha comodidad. Déjame darte más ejemplos. Eliminar el recurso compartido *** predeterminado: No sé cuánto sabes sobre el recurso compartido *** predeterminado. De todos modos, conservarlo es un peligro oculto. Ahora la única forma parece ser hacerlo. un archivo bat para eliminarlo. El comando es el siguiente: net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
<. p>net share d$ /deletenet share e$ /delete... el cde que contiene es la letra de su unidad. Si solo tiene una partición, simplemente escriba hasta que net share c$/delete. Si tiene n particiones, escríbalas una por una.
net share d$ /delete
net share e$ /deletenet share f$ /deletenet share g$ /delete... El acceso directo de la máquina para iniciar sesión en la LAN (la otra máquina tiene una contraseña y está un sistema 2000 o superior) uso neto \192.168.0.1 [contraseña] /usuario: [nombre de usuario]
explorador \192.168.0.1bat copia de seguridad del archivo registro establecer regfile=fecha //Establecer variables, cualquier archivo de registro que aparezca a continuación se reemplazará automáticamente." Fecha de hoy" si existe "regfile" ir al final //Si se encuentra el directorio nombrado por la fecha de hoy, salte al final del archivo.
md temp //Crear directorio temporal
call 1.bat //Llamar 1.bat
del 1.bat
ren 2.bat 1.bat
ren 3.bat 2.bat
ren 4.bat 3.bat
echo mover "regfile" temp gt 4; .bat //Escribe un archivo bat que mueva "el directorio nombrado por la fecha de hoy" a temporal. md "regfile" //Crea un directorio llamado fecha de hoy
cd "regfile" //Ingresa reg export hkcu hkcu.reg //Exporta el registro
reg export hklm hklm.reg
//HKEY_CURRENT_USER abreviatura hkcu. Almacenar los datos personales del usuario actual
//HKEY_LOCAL_MACHINE abreviatura hklm. Los datos centrales del sistema
cd..
deltree /y temp gt;nul ////Regrese al directorio superior y elimine la carpeta temporal
:fin