¿Qué se puede escribir para el procesamiento por lotes?
¿Qué es el procesamiento por lotes?
En cierto sentido, el procesamiento por lotes es un tipo de programación. De hecho, el procesamiento por lotes es solo una macro, pero se usa ampliamente y puede realizar algunas funciones simples que solo pueden realizarse mediante software.
Batch es un lenguaje de scripting simplificado adecuado para sistemas DOS y Windows. Es interpretado y ejecutado por un intérprete de comandos (normalmente COMMAND.COM o CMD.EXE) integrado en un sistema DOS o Windows. Similar a los scripts de shell en Unix. La extensión para archivos por lotes es . Murciélagos todavía. cmd, el ejemplo más simple es escribir los distintos comandos que se utilizarán en la línea de comando línea por línea. En situaciones más complejas, se necesitan comandos como if, for, goto, etc. para controlar el proceso de ejecución del programa, al igual que los lenguajes de alto nivel como C y Basic. Si necesita implementar aplicaciones más complejas, necesita utilizar programas externos, incluidos comandos externos proporcionados por el propio sistema y herramientas o software proporcionados por terceros. Aunque los programas por lotes se ejecutan en un entorno de línea de comandos, no solo se puede utilizar software de línea de comandos, sino que también se puede ejecutar cualquier programa de Windows de 32 bits en un archivo por lotes.
Saltar (puede usarse como bucle) puede ser así:
@Close echo
:a
Copiar c: \ win nt\system32\hacr.bin c:\inetpub\scripts\index.htm
Ir a un
Eco desactivado es ocultar la ejecución de la siguiente declaración; p>
El símbolo @ oculta la declaración echo off
: a es el módulo que define el bucle (puede definir el nombre del módulo y puede haber n declaraciones después);
Ir a salta al módulo de bucle.
Arriba. bat es un bucle infinito. Después de cambiar la página de inicio, a menudo la ejecutaba por la puerta trasera. La puerta trasera no se ha cerrado en un día y hacr.bin no se ha eliminado en un día. De forma predeterminada, index.htm no cambia la página de inicio durante un día, por lo que la página de inicio no debería regresar durante un día.
Para saltar de múltiples saltos, puedes escribir:
@Close echo
Ir a b
:a
copiar c:\winnt\system32\hacr.bin c:\inetpub\scripts\index.htm
ir al final
:b copiar
c :\win nt\system32\hacr.bin c:\inetpub\scripts\index.htm vaya a un
:end
ciclo, puede hacer esto:
Para /L i IN (1, 1, 5), inicie c:\winnt\system32\notepad.exe
Abra notepad.exe cinco veces después de la ejecución. Oye, he estado usando DOS durante 2 años y todavía no recuerdo el juicio de BAT. Parece ser:
El comando si el nombre del archivo existe significa que si hay un nombre de archivo (debe ser un archivo ejecutable), se ejecutará el siguiente comando.
Debería haber otra instrucción para ejecutar el siguiente comando sin un nombre de archivo (debe ser un archivo ejecutable), pero realmente lo olvidé (todos los ejemplos anteriores se descargaron de win2k Pro). Mmm. Que interesante...
Apéndice: Ayuda para declaraciones if y para declaraciones
1. IF [NOT] Comando de número de nivel de error IF [NOT] cadena1==comando cadena2 IF [NOT]
EXIST comando de nombre de archivo NO especifica que Windows 2000 ejecuta el comando sólo cuando la condición es falsa.
Número ERRORLEVEL 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 Especifique una condición verdadera si la cadena de texto especificada coincide.
Especifique una condición verdadera si el nombre de archivo especificado existe.
Comando especifica el comando que se ejecutará si se cumplen las condiciones. El comando ELSE puede ir seguido del comando ELSE si la condición especificada es falsa. El comando ELSE estará en ELSE.
Palabra clave, ejecutar comando.
La cláusula ELSE debe aparecer en la misma línea después de IF. Por ejemplo:
Si el nombre del archivo existe. (del nombre de archivo.) ELSE (echo nombre de archivo. Falta.)
Debido a que el comando del debe terminar en una nueva línea, la siguiente cláusula no tendrá efecto: si existe nombre de archivo .
Debido a que el comando ELSE debe estar en la misma línea que el final del comando IF, la siguiente cláusula no tendrá ningún efecto: if existfilename.del.
Nombre del archivo. Elseechofilename. Si están todos en la misma línea, es válida la siguiente cláusula: SI.
El nombre del archivo existe. (delfilename.) de lo contrario hace eco del nombre del archivo. Si las extensiones de comando están habilitadas, IF cambiará de la siguiente manera:
IF cadena 1 cadena de comparación 2 comando IF CMDEXTVERSION comando numérico IF
Comando de variable definida donde los operadores de comparación pueden Sí: EQU -igual a NEQ-no igual.
LSS - menor que LEQ - menor o igual que GTR - mayor que GEQ - mayor o igual que y opción de comando /I si se especifica esta opción de comando, significa que la comparación de cadenas será; realizado no se divide.
Keith. La opción del comando /I se puede utilizar en el formato cadena1==cadena2 de IF.
Estas comparaciones son universales;
La razón es que si cadena1 y cadena2 están compuestas de números, entonces las cadenas se convertirán en números para comparar. La condición CMDEXTVERSION funciona igual que ERRORLEVEL excepto que se compara con el número de compilación asociado con la extensión del comando. La primera versión es
1. Por cada mejora significativa de una extensión de comando, el número de versión se incrementa en uno.
La condición CMDEXTVERSION no se cumple cuando las extensiones de comando están deshabilitadas.
Si se han definido variables de entorno, la condición definida tiene la misma funcionalidad que EXISTS, excepto que toma la variable de entorno y devuelve verdadero.
Si no hay una variable de entorno llamada ERRORLEVEL, ERRORLEVEL se expande a una expresión de caracteres de cadena del valor actual de ERRORLEVEL. De lo contrario, obtienes
su valor. Después de ejecutar el programa, la siguiente declaración ilustra el uso de ERRORLEVEL:
Vaya a la respuesta ERRORLEVEL
: Respuesta 0
El código de retorno del programa echo es 0
: Respuesta 1
El programa echo devolvió el código 1
También puedes usar la comparación numérica anterior:
Si ERRORLEVEL LEQ 1 va a ok
Si no hay ninguna variable de entorno llamada CMDCMDLINE, CMDCMDLINE se expandirá y pasará a CMD.EXE antes de cualquier procesamiento por parte de CMD.EXE. La línea de comando original de
; de lo contrario, obtienes su valor.
Si no hay una variable de entorno llamada CMDEXTVERSION,
cmtextversion se expandirá a una expresión de caracteres de cadena del valor actual de cmtextversion; de lo contrario, obtendrá su valor;
2. Para la variable en (set)docommand[parámetros de comando], la variable especifica parámetros reemplazables.
(set)Especifica un archivo o un grupo de archivos. Se pueden utilizar caracteres comodín.
Comando especifica el comando que se ejecutará para cada archivo.
Los parámetros de comando son parámetros especificados para un comando específico.
Cuando utilice el comando FOR en un archivo por lotes, utilice variable en lugar de variable para especificar la variable. Los nombres de las variables distinguen entre mayúsculas y minúsculas, por lo que i es diferente de i.
Si las extensiones de comando están habilitadas, se admiten los siguientes formatos de comando FOR adicionales:
Variable FOR/D IN (establecer) comando DO [parámetro-comando]
Si la colección contiene comodines, especifique que coincida con nombres de directorios, no con nombres de archivos.
for/r[drive:]path] variable en(set)docommand[command-parameters]check to
El árbol de directorios con raíz en [drive:]path apunta a cada FOR declaración en un directorio. Si no se especifica ningún directorio después de /R, se utiliza el directorio actual.
Directorio. Si el conjunto es solo un carácter de punto (.), se enumera el árbol de directorios.
Variable FOR/L IN (inicio, paso, fin) comando DO [parámetro-comando]
Este conjunto representa una serie de números que aumentan 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).
FOR/F[" opciones "] variable IN (conjunto de archivos) DO comando [comando-parámetro]
FOR/F[" opciones "] variable IN(" cadena " )DO comando [comando-parámetro]
FOR/F[" opciones "] variable está en (lt| >;commandlt|>)DO comando[comando-parámetro]
O si tiene la opción usebackq:
FOR/F[" opciones "]Variable IN (conjunto de archivos) DO comando[comando-parámetro]
FOR/F[" opciones " ] variable IN(" cadena ")DO comando [comando-parámetro]
FOR/F[" opciones "]Variable IN(lt| >;comandolt|>)DO comando[comando-parámetro] ]
Filenameset es uno o más nombres de archivos. Cada archivo se abre, lee y procesa antes de pasar al siguiente archivo en el conjunto de nombres de archivos.
El procesamiento consiste en leer un archivo, dividirlo en líneas de texto y analizar cada línea en cero o más símbolos. Luego llame al bucle For usando el valor de la variable de la cadena de símbolos encontrada
. De forma predeterminada, /F pasa el primer carácter de espacio en blanco que separa cada línea en cada archivo. Salta líneas vacías. Puede anular la operación de análisis predeterminada especificando el parámetro opcional "opciones". Esta cadena entre comillas contiene una o más palabras clave que especifican diferentes opciones de análisis. Estas palabras clave son:
eol = c - Indica el carácter de comentario de final de línea (solo uno)
skip = n - Indica el número de líneas a ignorar al comienzo de la archivo.
delims = XXX: representa el conjunto de delimitadores.
Este conjunto de delimitadores predeterminado reemplaza los espacios y las tabulaciones.
Tokens=x, y, m-n: se refiere a qué símbolo de cada fila se pasa para sí mismo en cada iteración.
Esto hará que se asignen nombres de variables adicionales. El formato M-n es un rango.
El mésimo se especifica mediante el símbolo enésimo. Si el último carácter de la cadena de símbolos es un asterisco,
entonces se asignan variables adicionales y se acepta el texto reservado de la línea después de que se haya analizado el último símbolo.
usebackq: especifica que la nueva sintaxis se ha utilizado en los siguientes casos:
Ejecutar cadenas con comillas invertidas como comandos, caracteres de comillas simples como comandos de cadenas de texto y permitir archivos. El nombre es ampliado con comillas dobles en el conjunto de nombres de archivo.
Algunos ejemplos pueden ayudar:
FOR/F " eol =; Tokens = 2, 3 * delims =, " i in (myfile.txt) do @ echo i j k analizará.
Para cada línea en myfile.txt, ignore las que comienzan con punto y coma y pase el segundo y tercer símbolo de cada línea al símbolo Para el cuerpo del programa; utilice comas y/o espacios delimitados. Tenga en cuenta que esto es cierto para las declaraciones en el cuerpo del programa que se refieren a la i del segundo símbolo, a la j del tercer símbolo y a la k de todos los símbolos restantes después del tercer símbolo. Para nombres de archivos con espacios
debe encerrar el nombre del archivo entre comillas dobles. Para utilizar comillas dobles de esta manera, también debe utilizar la opción usebackq; de lo contrario, se entenderá que las comillas dobles definen una cadena que se va a analizar.
i se describe específicamente en la declaración for, y j y k se describen específicamente en la opción tokens=. Puede especificar hasta 26 tokens = una fila.
Un símbolo, siempre y cuando no estés intentando interpretar una letra superior a la
Más de una está en uso. También puede utilizar la lógica de análisis FOR /F en cadenas adyacentes; haga esto encerrando el conjunto de nombres de archivo entre comillas simples. De esta manera, la cadena de caracteres
se trata como una única línea de entrada en el archivo.
Finalmente, puedes usar el comando FOR /F para analizar el resultado de este comando. Para hacer esto, convierta el conjunto de nombres de archivos entre paréntesis en una cadena cerrada. Esta cadena se pasará al niño como línea de comando.
CMD.EXE, su salida se capturará en la memoria y se analizará como un archivo. Por lo tanto, aquí hay un ejemplo:
FOR/F " usebackq delims == " I IN(` set `)DO @ echo I
Enumerar las variables de entorno en el nombre del entorno actual .
Además, se ha mejorado la sustitución de referencias de variables. La siguiente sintaxis de opción ahora está disponible:
~ I: elimine las comillas (") y expanda i.
~ fI: expanda I a una ruta de acceso completa
~dI-only I se expande a una letra de unidad
~ pI-only I se expande a una ruta
~nI-only I se expande a un nombre de archivo /p. >
~ Solo I se expandirá a una extensión de archivo
~ sI: expandirá las rutas a nombres cortos únicamente.
~ aI: ampliará I a una extensión de archivo. atributo de archivo del archivo
~ tI - Expande I a la fecha/hora del archivo
~ zI - Expande I al tamaño del archivo
~ $PATH: I: busque el directorio que figura en la variable de entorno PATH y expanda i hasta el primer nombre completo encontrado. Si el nombre de la variable de entorno no está definido o no se encuentra el archivo, esta combinación de teclas se expandirá a .
La cadena vacía se puede combinar con modificadores para obtener múltiples resultados:
~sólo dpI I se expande a una letra de unidad y una ruta.
~nxI-only I se expande al nombre y extensión del archivo.
~ fsI: solo expande I a la ruta completa con el nombre corto.
~DP$PATH:I: localice el directorio que aparece en la variable de entorno PATH y configure
I para que se extienda a la primera letra de unidad y ruta encontrada.
~ ftzaI - Expande I a líneas de salida similares a DIR
En el ejemplo anterior, I y PATH se pueden reemplazar con otros valores válidos. ~Sintaxis
Termina con un nombre de variable FOR válido.
Elija nombres de variables en mayúsculas como I para que sean más fáciles de leer y evitar confusiones con combinaciones de teclas que no distinguen entre mayúsculas y minúsculas.
BAtch también se denomina script por lotes y se traduce al inglés como BATCH. Se toman las primeras tres letras del sufijo bat del archivo por lotes. No existe un formato fijo para su composición, siempre que se siga: cada línea puede considerarse como un comando y cada comando puede contener múltiples subcomandos, ejecutados desde la primera línea hasta la última línea, y la plataforma de ejecución es DOS. El procesamiento por lotes tiene una característica muy distintiva: uso fácil y flexible, alto grado de automatización, pero funcionalidad débil. No quiero que mi tutorial sea aburrido, porque las preguntas relacionadas con el código (el contenido del lote es código, ¿verdad?) son aburridas y pocas personas pueden calmarse cuando se enfrentan a una pantalla llena de código. Por lo tanto, usaré muchos ejemplos simples y prácticos para que los amigos que hayan visto este tutorial experimenten el encanto radiante del procesamiento por lotes, sientan su carácter simple y se enamoren del procesamiento por lotes sin saberlo (Halo, ¿por qué? ¿Es amor? ¿Qué? ¿El procesamiento por lotes tiene que ver con el amor? Respuesta: ¡No! Otra palabra de "chismes": para aprender bien el procesamiento por lotes, debes tener una base sólida en DOS. Por supuesto, la flexibilidad también es un aspecto importante.
La función del procesamiento por lotes depende completamente del comando que utilice. Los comandos de procesamiento por lotes incluyen comandos internos, comandos externos y algunas herramientas de terceros.
El archivo por lotes más utilizado es AUTOEXEC. Archivo BAT, DOS se ejecutará automáticamente cuando el sistema se inicie o reinicie. Este archivo le permite hacer lo siguiente: ingresar la fecha actual, configurar rutas de comando, mensajes del sistema y cargadores sin tener que ingresar cada comando individualmente. AUTOEJEC. El archivo BAT debe estar ubicado en el directorio raíz del disco de arranque de DOS.
Todos. El lote tiene extensión. Murciélagos todavía. CMD, pero no es necesario escribir la extensión en la línea de comando al ejecutar el archivo. Para ejecutar un archivo por lotes, simplemente escriba su nombre de archivo en el indicador del sistema y DOS ejecutará los comandos contenidos en el archivo por lotes en secuencia.
Para dar algunos ejemplos, como instalar una computadora nueva, necesita usar comandos de DOS y escribir comandos para instalar el sistema si puede encadenar todos los comandos y dejar que se ejecuten; automáticamente, entonces la instalación será muy automatizada. Esta serie de comandos se procesa por lotes. De esta manera, muchos comandos se ensamblan en un solo archivo y el archivo ejecutable que completa la tarea de automatización es el archivo por lotes. BAT es una extensión de archivos por lotes. Pongamos otro ejemplo para ilustrar la creación de archivos por lotes y su uso en el entorno Windows. Por ejemplo, necesitamos crear ocho carpetas en una carpeta determinada, y sus nombres son MULU1, MULU2...MULU8, etc. Podemos crear un archivo usando el Bloc de notas. BAT (nota: la extensión es BAT, no TXT) primero se coloca en esta carpeta y luego se edita el archivo. Su contenido es el siguiente:
MD MULU1
MD MULU2<. /p >
......
MD MULU8
Después de editar y guardar la línea 8, solo necesitamos hacer doble clic en el MAKE creado. Archivo BAT, se crearán 8 carpetas automáticamente para nosotros.
Curso de enseñanza por lotes conciso
Ajumail se lanzó de marzo a noviembre de 2005.
Recientemente se ha debatido mucho sobre la tecnología de procesamiento por lotes y se han lanzado muchos buenos programas de procesamiento por lotes, pero no es fácil de leer sin algunos conocimientos relevantes.
Comprenda y comprenda estos documentos por lotes, y mucho menos escríbalos usted mismo, sigue siendo el viejo dicho: "Es mejor enseñar a un hombre a pescar que enseñarle a pescar". Internet