Comandos de archivos bat (Windows). Escribir archivos bat: ejemplos de archivos por lotes

En este artículo veremos algo tan útil como " archivo por lotes" Primero definamos qué es un archivo bat. Los archivos por lotes o por lotes son archivos de texto simples que contienen conjuntos de comandos ( instrucciones) intérprete y tener la extensión bat o cmd ( cmd sólo funciona en sistemas operativos de la familia NT). Puede crear y editar dichos archivos utilizando un bloc de notas normal o cualquier otro editor de texto.

Ahora te preguntarás, ¿por qué necesitas poder escribir dichos archivos bat? ¿Y por qué son necesarios? Intentaré explicarlo.

En primer lugar, se utilizan para facilitar el trabajo, es decir. por ejemplo, necesita realizar constantemente alguna operación todos los días ( por ejemplo, crear un archivo de ciertos documentos), con la ayuda de un archivo corporal, esto se puede automatizar y usted ya no participará en él.

En segundo lugar, estos archivos por lotes son muy potentes ( si por supuesto sabes escribirlas), es decir. Incluso puedes escribir un buen programa ( Me refiero en términos de funcionalidad.). Personalmente me ayudan mucho en mi trabajo, y simplemente me olvidé de algunas cosas cuando lo hice manualmente.

Ahora pasemos directamente a los conceptos básicos de estos archivos por lotes. ¿Cómo se crean? Sólo necesitas crear un documento de texto simple, abrirlo e inmediatamente ir a la pestaña “ Archivo->guardar como", ingrese en lugar de la extensión " Documento de texto.txt", Por ejemplo " Documento de texto.bat" y guardar, por lo que obtenemos un archivo por lotes con la extensión .bat, pero aún no hace nada.

Para empezar, daré un ejemplo de un archivo por lotes que utilizo en mi trabajo para archivar documentos.

"C:\Archivos de programa\WinRAR\winrar.exe" a -r -dh -ed -agAAAA-mm-dd E:\arhaccounts\ d:\accounts\*.doc "C:\Archivos de programa\WinRAR\winrar. exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.xls "C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY -mm-dd E:\arhaccounts\ d:\accounts\*.txt

Ahora les contaré un poco sobre lo que hace este archivo por lotes. WinRar se inicia, luego siguen los comandos de Winrar:

  • a - esto es para agregar al archivo;
  • -r - subcarpetas de proceso;
  • -dh - abre archivos compartidos;
  • -ed: no agrega carpetas vacías;
  • AAAA-mm-dd: agrega la fecha actual al nombre del archivo ( formato de fecha);
  • E:\arhaccounts\ - ruta donde se ubicará el archivo final;
  • d:\accounts\*.doc: ruta y máscara de los archivos que deben archivarse.

En este caso archivamos todos los archivos de Word, Excel y de texto, no necesitamos archivar el resto. Nuestro archivo va a otro disco y también copiamos el archivo resultante a otra computadora, para que los archivos se almacenen en otra oficina. La copia se realiza a través de la red, por lo que la computadora en la que se copia el archivo debe estar encendida. Para hacer esto puedes usar el siguiente comando:

Copiar E:\arhaccounts\*.rar \\namecomp\arhiv\

Ejemplos de comandos para archivos bat

Ahora veamos los comandos básicos que puedes usar.

Si necesita eliminar un archivo, escriba lo siguiente:

Del d:\archivo\prueba.doc


Para eliminar todo el directorio, escriba:

Rd d:\archivo\

Si necesita eliminar todo de algún directorio cada vez, utilice esto:

Eco Y| del d:\archivo\

  • del d:\file\ - esto es precisamente la eliminación de todos los archivos;
  • eco Y| - el comando confirma la eliminación porque Si no ingresa este comando, verá un mensaje confirmando la eliminación: "Continuar", y deberá responder esta pregunta cada vez.

Ahora veamos un ejemplo más complicado, en el que ya se cumple la condición:

@echo off "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\test.rar d:\test SI no EXISTE d:\test\123.rar GOTO 1 SI EXISTE d: \test\123.rar GOTO 2:2 "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\123.rar c:\ del d:\test\123.rar:1 del d:\test\test.rar fin

Ahora lo explicaré, digamos que necesita descomprimir el archivo test.rar, que contendrá muchos archivos, pero si hay un archivo 123.rar allí, deberá descomprimirlo en la raíz de la unidad C, y el El resto de los archivos permanecerán intactos en el mismo directorio.

En orden, se necesita el comando @echo off para que no se refleje nada en la pantalla ( Básicamente, si no es necesario, puedes omitir escribir esta línea.). A continuación, iniciamos Winrar y descomprimimos el archivo test.rar en la carpeta de prueba. Luego viene la condición si en la carpeta de prueba ( después de desempaquetar test.rar) no tenemos el archivo 123.rar, entonces simplemente ejecutamos el archivo por lotes y vamos a la línea: 1 y luego simplemente eliminamos el archivo test.rar ya que no es necesario porque Ya hemos desempaquetado todo lo que necesitamos. Pero si hay un archivo 123.rar allí, entonces la ejecución del archivo por lotes va a la línea: 2, después de lo cual el archivo 123.rar ya está descomprimido en la raíz de la unidad C. En otras palabras, tenemos la condición cumplida. , si hay un archivo, haga esto, si no hay ningún archivo, haga esto. Digamos que si no especificamos la condición en este ejemplo, nuestro archivo por lotes dará un error cuando no tengamos el archivo 123.rar en esta carpeta.

Ahora veamos este ejemplo, digamos que necesita mover archivos desde un directorio ubicado en la unidad D a una unidad flash cada vez. Cada vez tendrás que ir a la unidad D de mi computadora, seleccionar la carpeta deseada, seleccionar todos los archivos y cortarlos, y luego simplemente ir a la unidad flash y pegarla. Con la ayuda de un archivo de cuerpo, esto se hace con un solo clic ( con la condición de que cada vez la unidad flash sea, por ejemplo, el disco G o lo que tengas). A continuación se muestra un ejemplo de un archivo por lotes de este tipo:

Mover "D:\catalog\*.doc" G:\catalognaflehe\

Y todos los archivos con la extensión doc que se encuentran en el directorio D:\catalog se moverán a la unidad flash. Ahora quiero decir que puedes usar scripts en archivos por lotes ( guiones) utilizando Windows Scripting Host y, si es necesario, por ejemplo, para mostrar un mensaje después de que se hayan copiado los archivos ( ejemplo anterior) pega esto:

Echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Archivos copiados"); >> %temp%\mes.js inicio %temp%\mes.js deltree /y %temp%\mes.js

De hecho, se puede hablar mucho sobre escribir archivos por lotes y, por supuesto, esto no se puede incluir en un solo artículo. Aquí solo mostré los principios que se utilizan al escribir archivos bat, la base, por así decirlo; Si desea conocer más comandos para escribir archivos por lotes, puede verlos fácilmente escribiendo ( Inicio - Ejecutar - cmd) el comando de ayuda, pero, por supuesto, no existen todos los comandos que se pueden usar en archivos por lotes. Buena suerte escribiendo archivos BAT ( camisas de cuerpo).

Continuación del tema en el artículo -

1. Archivo de comando S.BAT, que muestra página por página el contenido de un archivo de texto determinado (con una pausa después de llenar cada pantalla):

IF /%1==/ GOTO ERR1 si no se proporciona ningún argumento (nombre de archivo), entonces ERR1

SI NO EXISTE %1 GOTO ERR2 – si falta el archivo especificado

:ERR1 No se ha dado ningún argumento

ECHO Especificar nombre de archivo

:ERR2 Falta el archivo

Falta el archivo ECHO %1

El comando Más proporciona una visualización página por página (pantalla completa) del contenido de un archivo de texto.

Sintaxis:

El filtro MÁS lee un archivo de texto del dispositivo de E/S estándar y muestra su contenido, deteniéndose cada vez que se llena la pantalla. En este caso, el mensaje –MÁS- se muestra en la última línea (inferior) de la pantalla. Para mostrar la página siguiente, simplemente presione cualquier tecla del teclado.

2. Archivo de comando S.BAT, que permite agregar rutas de búsqueda de archivos ejecutables a los existentes y mostrar todas las rutas instaladas:

SI /%1==/ IR AL FINAL

ESTABLECER RUTA=%RUTA%;%1

El comando PATH se utiliza para configurar y mostrar rutas de búsqueda de archivos ejecutables.

CAMINO...]

CAMINO; -cancela todas las rutas de búsqueda.

El archivo ejecutable se busca primero en el directorio asignado según su especificación y luego en cada directorio especificado.

Si solo se ingresa el nombre del comando, se muestran las rutas de búsqueda actuales.

Ejemplo de uso:

S C:\EDITAR\TEXTO\ME C:\DOS

El archivo por lotes anterior solo funciona bien si el valor de la variable PATH global cabe en una línea de la pantalla.

3. Archivo de comando DEL.BAT para eliminar archivos BAC del directorio especificado, si se especifica, o del directorio de trabajo, si no se especifica el argumento.

SI NO /%1==/ ESTABLECER #DIR=%1\

SI EXISTE %#DIR%*.VAK GOTO DEL

ECHO No hay archivos VAC para eliminar

DIR%#DIR%*.VAK

ECHO Para rechazar la eliminación,

ECHO presione Ctrl-Break, de lo contrario -

ECHO cualquier tecla para continuar

DEL %#DIR%*.VAK

ECHO *** Archivos eliminados ***

Este archivo utiliza una variable global con un nombre único #DIR. Primero, su valor se restablece mediante el comando SET. Esto es para garantizar que esté vacío y que no se deje configurado después de la llamada anterior al archivo DEL.BAT. Luego, si se proporciona el argumento, se agrega \ a la derecha y el resultado se almacena como el valor de la variable global #DIR. En comandos posteriores, se utiliza como prefijo de los nombres completos de los archivos .vac.

Al especificar d: como argumento, se eliminarán los archivos .vac no en el directorio actual, sino en el directorio raíz de la unidad d. Por lo tanto, si necesita configurar el directorio actual, debe utilizar la construcción d:..

4. Archivo de comando LEX.BAT para llamar al editor de texto LEXICON con carga automática del último archivo de texto utilizado anteriormente para el mismo propósito:

SI /%1==/ IR A N

Si, en respuesta al mensaje de DOS, ingresa

LEX C:\TXT\M.TXT

luego, la especificación del archivo especificado se almacenará en la variable global #DOC y el archivo en sí se cargará en el editor. El valor #DOC se utilizará cuando LEXICON.EXE se ejecute mediante la línea de comando LEX sin un argumento, asegurando que el último archivo especificado se cargue en el editor.

5. Para responder automáticamente a un comando del sistema operativo o a una solicitud de programa en un archivo por lotes, puede utilizar el siguiente esquema:

proceso

El comando ECHO produce un archivo de texto YES con la respuesta Y. Luego, el contenido del archivo YES se envía a la entrada estándar del proceso. Esto simula ingresar la respuesta Y desde el teclado. Una vez que se completa el proceso, se elimina el archivo YES. Naturalmente, puedes establecer las respuestas requeridas de manera similar.

La desventaja del método descrito es la necesidad de crear y eliminar el archivo, lo que lleva mucho tiempo. Este inconveniente se puede eliminar creando archivos de texto permanentes con varias opciones de respuesta y usándolos en todos los archivos por lotes.

Otra forma de ingresar automáticamente una respuesta en un proceso es usar una línea como

ECO Y| proceso

6. Archivos por lotes para guardar el directorio de trabajo en un punto determinado y restaurarlo después de configurar un nuevo directorio de trabajo. Para hacer esto, puede crear, por ejemplo, los siguientes archivos por lotes en el directorio C:\BAT

CD>C:\BAT\CURDIR

COPIAR C:\BAT\CDFILE+C:\BAT\CUR C:\BAT\RETURN.BAT

El archivo de texto CDFILE contiene el "principio" del comando CD. Debe formarse con un espacio después del CD y sin el marcador EOF. El archivo de comando SAV.BAT registra la especificación del directorio de trabajo en un archivo de texto CUR y genera un archivo de comando RETURN.BAT para restaurar ese directorio.

Para facilitar su uso, una de las rutas de búsqueda de archivos ejecutables debe ser C:\BAT.

Deje que el directorio de trabajo sea C\EDIT\TEXT\LEX. Si llama al archivo de comando SAV (sin argumentos), se generará un archivo de comando RETURN que contiene el comando

CD C\EDITAR\TEXTO\LEX

Después de esto, puede cambiar los directorios de trabajo con el comando CD (pero no con el comando d:). Para regresar a LEX bastará con ingresar RETURN desde el teclado.

Cada ejecución posterior del archivo SAV cancela la anterior sin posibilidad de recuperación.

La técnica descrita facilita el trabajo si hay una estructura de archivos ramificada en el disco duro.

7. Archivo de comando F.BAT para realizar una copia de seguridad del contenido del disco duro en la unidad A:.

ATTRIB +A C:\*.* /S archivo comprimido

ECHO Coloque el disco formateado en la unidad A.

ECHO y luego presione cualquier tecla

XCOPIAR C:\*.* A: /S /M /E /V

SI ERROR NIVEL 4 IR A BUCLE

Reserva ECHO completada

El comando ATTRIB establece el atributo A en todos los archivos. XCOPY copia la estructura de archivos del disco duro al disco en la unidad A. Para todos los archivos copiados, se restablece el atributo A. El comando XCOPY falla cuando ocurre una de las siguientes situaciones:

1) el disquete está lleno, pero aún no se ha realizado una copia de seguridad de todos los archivos (código de retorno 4);

2) todos los archivos están reservados, no se encontraron archivos para copiar o la ejecución del comando fue interrumpida por Ctrl-Break (códigos de retorno 0, 1 y 2, respectivamente);

3) se produjo un error crítico de E/S (código de retorno 5).

En los casos 1 y 3, el comando IF transferirá el control a la etiqueta LOOP para continuar (reanudar) la copia de seguridad en el siguiente disquete. En este caso, no se realiza una copia de seguridad de los archivos ya copiados, ya que se restablecen sus atributos A.

Si se produce el caso 2, se completa la reserva y se emite el mensaje correspondiente.

Por supuesto, puede introducir un análisis adicional del código de retorno 5.

8. Hacer una copia de seguridad de todo el contenido de un disco duro requiere mucho tiempo y una gran cantidad de discos. Por lo tanto, al realizar una copia de seguridad nuevamente, es mejor usar el modificador /D en el comando XCOPY para copiar solo aquellos archivos que se crearon y actualizaron después de la fecha de la última copia de seguridad. Al mismo tiempo, para poder seleccionar archivos correctamente es necesario asegurarse de que DOS esté ejecutándose en todo momento con la fecha correcta.

Además, el usuario debe recordar o anotar la fecha en la que se realizó la última copia de seguridad de los archivos para indicarlo en el modificador /D. Para deshacerse de esto, puede crear los siguientes archivos por lotes:

ECO |MÁS|FECHA|BUSCAR /V "Entrar" >B.BAT

ATRIBUTO +A C:\*.* /S

ECHO Coloque el disco en la unidad A.

XCOPIAR C\*.* A: /S /M /E /V /D:%4

SI ERROR NIVEL 4 IR A BUCLE

Reserva ECHO completada

Para utilizar estos archivos, debe generar el archivo BAT una vez usando el comando

ECO|MÁS|FECHA|BUSCAR /V "Entrar" >B.BAT

Este archivo sólo contendrá una línea similar a la siguiente:

La fecha actual es el sábado 26/01/2009.

(La fecha actual es el sábado 26/01/2009)

El comando MÁS, cuando no hay texto para mostrar (del comando ECHO), genera un marcador EOL y, por lo tanto, simula presionar la tecla Intro en respuesta a una solicitud de la fecha actual con el comando FECHA. El comando ENCONTRAR corta la segunda línea de la salida del comando FECHA (Ingrese una nueva fecha (dd-mm-aa):).

Puede crear un archivo B.BAT por cualquier otro medio, pero su contenido debe tener el formato especificado.

Para realizar una copia de seguridad de archivos nuevos (creados el día de la última copia de seguridad o más tarde), ahora es suficiente iniciar la ejecución del archivo de comando D. Llama al archivo B.BAT, que se interpreta como un archivo de comando. Esto ejecuta el archivo por lotes C.BAT con cuatro argumentos (fecha, es, día de la semana y fecha).

El cuarto argumento (fecha) anula la opción %4 en el modificador /D del comando XCOPY.

Una vez que se completa la copia de seguridad, el control regresa al archivo D.BAT y se ejecuta el comando DATE, actualizando el archivo B.BAT con la fecha actual, es decir. fecha de la última reserva. Por lo tanto, después de ejecutar DATECOPY después de un cierto período de tiempo, la copia de seguridad se realizará como se esperaba (todos los archivos se copiarán según la fecha en B.BAT).

Los archivos bat de Windows son una forma conveniente de realizar diversas tareas en una PC, que los expertos en informática utilizan activamente. Le permiten automatizar las tareas cotidianas, reducir el tiempo de finalización y convertir un proceso complejo en algo factible para el usuario promedio. Este artículo presenta las capacidades básicas de los archivos por lotes y recomendaciones para escribirlos usted mismo.

Automatización simplificada

¿Cómo crear un archivo bat? Para hacer esto necesitas hacer lo siguiente:

  1. En cualquier editor de texto, por ejemplo, Bloc de notas o WordPad, cree un documento de texto.
  2. Escriba sus comandos en él, comenzando con @echo y luego (cada vez en una nueva línea) título [nombre del script por lotes], eco [mensaje que se mostrará en la pantalla] y pausa.
  3. Guarde el texto en un documento electrónico con la extensión .bat (por ejemplo, test.bat).
  4. Para ejecutar, haga doble clic en el archivo por lotes recién creado.
  5. Para editarlo, debe hacer clic derecho sobre él y seleccionar "Editar" en el menú contextual.

El archivo sin formato se verá así:

title ¡Este es tu primer script de archivo bat!

echo ¡Bienvenido al script de procesamiento por lotes!

Analizaremos los comandos de archivos bat y su uso con más detalle a continuación.

Paso 1: crear un script de software

Supongamos que un usuario suele tener problemas con la Red. Utiliza constantemente la línea de comandos, escribe ipconfig y hace ping a Google para solucionar problemas de red. Después de un tiempo, el usuario se da cuenta de que sería mucho más efectivo si escribiera un archivo bat simple, lo escribiera en su unidad USB y lo ejecutara en las computadoras que diagnostica.

Crear un nuevo documento de texto

Un archivo por lotes facilita la realización de tareas repetitivas en su computadora utilizando el símbolo del sistema de Windows. A continuación se muestra un ejemplo de un script responsable de mostrar texto en la pantalla. Antes de crear un archivo bat, debe hacer clic derecho en un espacio vacío en el directorio y seleccionar "Crear" y luego "Documento de texto".

Añadiendo código

Al hacer doble clic en este nuevo documento de texto, se abrirá su editor de texto predeterminado. Puede copiar y pegar el código de ejemplo anterior en una entrada de texto.

Preservación

El script anterior muestra el texto "¡Bienvenido al script de procesamiento por lotes!" en la pantalla. El documento electrónico debe escribirse seleccionando el elemento del menú del editor de texto "Archivo", "Guardar como" y luego especificar el nombre deseado del archivo bat. Debe completarse con una extensión .bat (por ejemplo, bienvenido.bat) y hacer clic en Aceptar. Para mostrar el alfabeto cirílico correctamente, en algunos casos debes asegurarte de que la codificación esté seleccionada correctamente. Por ejemplo, cuando se utiliza la consola de un sistema Windows NT rusificado, el documento debe guardarse en CP866. Ahora debes hacer doble clic en el acceso directo del archivo bat para activarlo.

Pero aparecerá el siguiente mensaje en la pantalla:

"¡Bienvenido al script por lotes! Presione cualquier tecla para continuar..."

Si el archivo bat no se inicia, los usuarios recomiendan ir al registro y eliminar la clave:

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice".

No crea que eso es todo lo que pueden hacer los scripts por lotes. Los parámetros del script son versiones modificadas de los comandos de la línea de comandos, por lo que el usuario está limitado únicamente por sus capacidades. Y son bastante extensos.

Paso 2: conozca algunos comandos

Si un usuario de PC está familiarizado con la ejecución de comandos de la consola DOS, será un maestro en la creación de scripts de software porque utilizan el mismo lenguaje. Las líneas en los archivos bat le indicarán al intérprete cmd.exe todo lo que se requiere de él. Esto ahorra tiempo y esfuerzo. Además, es posible especificar cierta lógica (por ejemplo, bucles simples, condicionales, etc., que son conceptualmente similares a la programación procedimental).

Comandos incorporados

1. @echo es un comando de archivo bat que le permitirá ver el script ejecutándose en la línea de comando. Se utiliza para ver el progreso del código de producción. Si el archivo por lotes tiene algún problema, este comando aislará rápidamente los problemas. La adición permite finalizar rápidamente la ejecución del código, evitando que se muestre información innecesaria en la pantalla.

2. El título proporciona la misma funcionalidad que una etiqueta. en HTML, es decir, crea un encabezado para el script por lotes en la ventana de línea de comando.</p><p>3. Call llama a un archivo bat desde otro o a una subrutina dentro de un script. Por ejemplo, la función de potencia calcula la potencia %2 de %1:</p><p>si % contador% gtr 1 (</p><p>establecer /un contador-=1</p><p>endlocal y establecer resultado=%prod%</p><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862019.jpg' width="100%" loading=lazy loading=lazy></p><p>4. Cls borra la línea de comando. Se utiliza para garantizar que la salida anterior de código extraño no interfiera con la visualización del progreso del script actual.</p><p>5. Color establece la fuente y el color de fondo. Por ejemplo, el comando color f9 especifica letras blancas sobre un fondo azul. Un comando sin parámetro restaura la configuración predeterminada.</p><p>6. Eco se utiliza para mostrar información, así como para habilitar (eco activado) o deshabilitar (eco desactivado) dicha salida. Por ejemplo, el comando echo. imprime una nueva línea sin punto y hace eco. - punto. Sin parámetros, el comando muestra información sobre su estado actual: eco activado o eco desactivado.</p><p>7. Rem proporciona la misma funcionalidad que una etiqueta.<! в HTML. Такая строка не является частью выполняемого кода. Вместо этого она служит для пояснения и предоставления информации о нем.</p><p>8. Pausa le permite interrumpir la ejecución de comandos en el archivo bat. Esto hace posible leer las líneas ejecutadas antes de continuar con el programa. En este caso, se muestra en pantalla el mensaje “Para continuar, presione cualquier tecla…”.</p><p>9. Establecer le permite ver o configurar variables de entorno. Con el modificador /p, el comando solicita información al usuario y la guarda. Con el parámetro /a permite realizar operaciones aritméticas sencillas, asignando además su resultado a una variable. Al realizar operaciones con cadenas, no debe haber espacios ni antes ni después del signo igual. Por ejemplo, el comando set muestra una lista de variables de entorno, set HOME muestra los valores de los argumentos que comienzan con "HOME" y set /p input=ingrese un número entero: solicita un número entero y lo asigna a la variable apropiada.</p><p>10. Iniciar "" [sitio web] iniciará el sitio web especificado en su navegador web predeterminado.</p><p>11. Si se utiliza para comprobar una determinada condición. Si es verdadero, se ejecuta el siguiente comando. Hay 3 tipos de condiciones:</p><ul><li>Número ERRORLEVEL: verifica el código de finalización de la última instrucción ejecutada para ver si coincide o excede el número especificado. En este caso, 0 indica la finalización exitosa de la tarea y cualquier otro número, generalmente positivo, indica un error. Por ejemplo, puede utilizar comandos anidados para identificar el código de salida: if errorlevel 3 if not errorlevel 4 echo error #3.</li><li>Línea1 == línea2: comprueba si dos cadenas coinciden. Por ejemplo, si no hay ningún parámetro externo, el comando if "%1"= ="" goto ERROR transferirá el control a la etiqueta ERROR.</li><li>Nombre EXISTENTE: comprueba la existencia de un archivo con el nombre especificado. Por ejemplo, si no existe A:\program.exe COPY C:\PROJECTS\program.exe A: copia program.exe a la unidad A si no está allí.</li> </ul><p>12. De lo contrario debe estar en la misma línea que el comando If. Indica que la siguiente instrucción debe ejecutarse si la expresión se evalúa como falsa.</p><p><img src='https://i1.wp.com/syl.ru/misc/i/ai/324915/1862021.jpg' width="100%" loading=lazy loading=lazy></p><p>13. For se utiliza para repetir ciertas acciones en cada miembro de una lista. Tiene el formato para %%argumento en (lista) comando do. El argumento puede ser cualquier letra de la A a la Z. La lista es una secuencia de cadenas separadas por espacios o comas. También se pueden utilizar comodines. Por ejemplo:</p><ul><li>para %%d en (A, C, D) haga DIR %%d: muestra secuencialmente los directorios de las unidades A, C y D;</li><li>para %%f en (*.TXT *.BAT *.DOC) escriba %%f: imprime el contenido de todos los archivos .txt, .bat y .doc en el directorio actual;</li><li>para %%P en (%PATH%) haga si existe %%P\*.BAT COPY %%P\*.BAT C:\BAT - copia todos los archivos por lotes que existen en todos los directorios de la ruta de búsqueda a C: \ carpeta WAT.</li> </ul><p>14. Dos puntos (:) antes de una palabra forman un enlace a partir de ella, lo que le permite omitir parte del código del programa o retroceder. Se utiliza con los comandos Call y Goto, indicando desde qué punto debe continuar la ejecución del archivo bat, por ejemplo, cuando se cumple una determinada condición:</p><p>15. Variables:</p><ul><li>%%a representa cada archivo de la carpeta;</li><li>%CD% - directorio actual;</li><li>%DATE% - fecha del sistema, cuyo formato depende de la localización;</li><li>%TIME% - hora del sistema en el formato HH:MM:SS.mm.;</li><li>%RANDOM%: número pseudoaleatorio generado en el rango de 0 a 32767;</li><li>%ERRORLEVEL%: código de salida devuelto por el último comando ejecutado o script bat.</li> </ul><p>Puedes extraer parte de una cadena contenida en una variable, dada su posición y longitud, así:</p><p>%[variable]:~[inicio],[longitud]%. Por ejemplo, puede mostrar una fecha en el formato DD/MM/AAAA como AAAA-MM-DD así: echo %FECHA:~6.4%-%FECHA:~3.2%-%FECHA:~0.2%.</p><p>16. (". \") - carpeta raíz. Cuando trabaje con la consola, antes de cambiar el nombre del archivo, eliminarlo, etc., debe dirigir la acción del comando a un directorio específico. Cuando utilice un archivo por lotes, simplemente ejecútelo en cualquier directorio deseado.</p><p>17. % dígito: acepta los valores de los parámetros pasados ​​por el usuario al archivo bat. Puede estar separado por espacios, comas o dos puntos. Un "dígito" es un número entre 0 y 9. Por ejemplo, %0 toma el valor del comando actual. %1 coincide con el primer parámetro, etc.</p><p>18. Shift: comando utilizado para cambiar los parámetros de entrada una posición. Se utiliza cuando se pasan argumentos externos al archivo por lotes. Por ejemplo, el siguiente archivo bat copia los archivos especificados como parámetros en la línea de comando a la unidad D:</p><p>si no (%1)==() ir al siguiente</p><p>Además, puedes realizar las siguientes manipulaciones con los argumentos:</p><ul><li>%~ - elimina las comillas circundantes;</li><li>%~f: expanda el parámetro al nombre de la ruta completa junto con el nombre de la unidad;</li><li>%~d - muestra el nombre del disco;</li><li>%~p: muestra solo la ruta;</li><li>%~n: seleccione solo el nombre del archivo del parámetro;</li><li>%~x - deja solo la extensión;</li><li>%~s: convierte la ruta en una representación con nombres cortos;</li><li>%~a - extraer atributos del archivo;</li><li>%~t: muestra la fecha y hora de creación;</li><li>%~z - muestra el tamaño del archivo;</li><li>%~$PATH: busca los directorios enumerados en la variable de entorno PATH y expande el parámetro al primer nombre completo coincidente encontrado, o devuelve una cadena vacía si no tiene éxito.</li> </ul><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862020.jpg' width="100%" loading=lazy loading=lazy></p><h2>comodines</h2><p>Muchos comandos aceptan patrones de nombres de archivos: caracteres que le permiten hacer coincidir un grupo de nombres de archivos. Los comodines incluyen:</p><ul><li>* (asterisco): indica cualquier secuencia de caracteres;</li><li>? (signo de interrogación): reemplaza un carácter (o 0) que no sea un punto (.).</li> </ul><p>Por ejemplo, el comando dir *.txt muestra una lista de archivos txt y dir ???.txt muestra una lista de documentos de texto cuya longitud de nombre no supera las 3 letras.</p><h2>Funciones</h2><p>Al igual que las subrutinas, se emula mediante los comandos call, setlocal, endlocal y label. El siguiente ejemplo demuestra la posibilidad de definir una variable en la que se almacena el resultado en la línea de llamada:</p><p>llamada: decir resultado = mundo</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862022.jpg' width="100%" loading=lazy loading=lazy></p><h2>Cálculos</h2><p>En archivos bat, puede realizar operaciones aritméticas simples en bits y enteros de 32 bits usando el comando set /a. El número máximo admitido es 2^31-1 = 2147483647 y el mínimo es -(2^31) = -2147483648. La sintaxis recuerda al lenguaje de programación C. Los operadores aritméticos incluyen: *, /, %, +, -. En el archivo bat, % (el resto de una división entera) debe ingresarse como “%%”.</p><p>Los operadores de números binarios interpretan el número como una secuencia de 32 bits. Estos incluyen: ~ (NO bit a bit o complemento), & (Y), | (O), ^ (O exclusivo),<< (сдвиг влево), >> (desplazamiento a la derecha). ¡El operador de negación lógica es! (Punto de exclamación). Cambia de 0 a 1 y un valor distinto de cero a 0. El operador de combinación es (coma), que permite realizar más operaciones en un solo comando de configuración. Los operadores de asignación combinados += y -= en las expresiones a+=b y a-=and corresponden a las expresiones a=a+b y a=a-b. *=, %=, /=, &=, |=, ^=, >>=, funcionan de la misma manera.<<=. Приоритет операторов следующий:</p><p>(); %+-*/; >>, <<; &; ^; |; =, %=, *=, /=, +=, -=, &=, ^=, |=, <<=, >>=; ,</p><p>Los literales se pueden ingresar como números decimales, hexadecimales (con 0x al principio) y octales (con cero al principio). Por ejemplo, set /a n1=0xffff asigna a n1 un valor hexadecimal.</p><h2>Comandos externos</h2><ul><li>Salir se utiliza para salir de la consola de DOS o (con la opción /b) solo del archivo o rutina bat actual.</li><li>Ipconfig es un comando de consola clásico que muestra información de la red. Incluye direcciones MAC e IP y máscaras de subred.</li><li>Ping hace ping a una dirección IP y le envía paquetes de datos para estimar su distancia y latencia (respuesta). También se utiliza para establecer una pausa. Por ejemplo, el comando ping 127.0.01 -n 6 detiene la ejecución del código durante 5 segundos.</li> </ul><p>La biblioteca de comandos en archivos bat es enorme. Afortunadamente, hay muchas páginas en la web que los enumeran todos, junto con variables de script por lotes.</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862017.jpg' width="100%" loading=lazy loading=lazy></p><h2>Paso 3: escribe y ejecuta el archivo bat</h2><p>El siguiente script simplificará enormemente su actividad diaria en línea. ¿Qué sucede si desea abrir instantáneamente todos sus sitios de noticias favoritos? Dado que los scripts utilizan comandos de consola, puede crear un script que abra cada fuente de noticias en una única ventana del navegador.</p><p>A continuación, debes repetir el proceso de creación de un archivo bat, comenzando con un documento de texto vacío. Para hacer esto, debe hacer clic derecho en un espacio vacío en cualquier carpeta y seleccionar "Nuevo" y luego "Documento de texto". Después de abrir el archivo, debe ingresar el siguiente script, que inicia los principales medios en ruso disponibles en Internet:</p><p>iniciar "" http://fb.ru</p><p>empezar "" http://www.novayagazeta.ru</p><p>iniciar "" http://echo.msk.ru</p><p>iniciar "" http://www.kommersant.ru</p><p>iniciar "" http://www.ng.ru</p><p>iniciar "" http://meduza.io</p><p>empezar "" https://news.google.com/news/?ned=ru_ru&hl=ru</p><p>Este script contiene los comandos de inicio “”, que abren varias pestañas. Puede reemplazar los enlaces sugeridos por otros de su elección. Después de ingresar el script, vaya al menú “Archivo” del editor, luego a “Guardar como...” y guarde el documento con la extensión .bat, cambiando el parámetro “Tipo de archivo” a “Todos los archivos” (* .*).</p><p>Después de guardar, para ejecutar el script, simplemente haga doble clic en él. Las páginas web comenzarán a cargarse instantáneamente. Si lo desea, puede colocar este archivo en su escritorio. Esto le permitirá acceder instantáneamente a todos sus sitios favoritos.</p><h2>Organizador</h2><p>Si descarga varios archivos al día, pronto se acumularán cientos de ellos en la carpeta "Descargas". Puedes crear un script que los organizará por tipo. Simplemente coloque el archivo .bat con el programa en la carpeta con datos no organizados y haga doble clic para ejecutar:</p><p>rem Cada archivo en la carpeta</p><p>para %%a en (".\*") haga (</p><p>rem comprueba la presencia de una extensión y que no pertenece a este script</p><p>si "%%~xa" NEQ "" si "%%~dpxa" NEQ "%~dpx0" (</p><p>rem comprueba la presencia de una carpeta para cada extensión y, si no está allí, créala</p><p>si no existe "%%~xa" mkdir "%%~xa"</p><p>rem mover archivo a carpeta</p><p>mover "%%a" "%%~dpa%%~xa\"</p><p>Como resultado, los archivos del directorio "Descargas" se clasifican en carpetas cuyos nombres corresponden a su extensión. Es tan simple. Este script por lotes funciona con cualquier tipo de datos, ya sea un documento, vídeo o audio. Incluso si la PC no los admite, el script creará una carpeta con la etiqueta adecuada. Si ya existe un directorio JPG o PNG, el programa simplemente moverá allí los archivos con esta extensión.</p><p>Esta es una demostración sencilla de lo que pueden hacer los scripts por lotes. Siempre que sea necesario realizar una tarea sencilla una y otra vez, ya sea organizar archivos, abrir varias páginas web, cambiar el nombre de forma masiva o hacer copias de documentos importantes, un script por lotes puede ayudarle a realizar el tedioso trabajo con un par de clics.</p> <p>Cuando se trabaja en una computadora, a menudo es necesario repetir los mismos comandos de DOS para realizar acciones ejecutadas periódicamente, crear una secuencia compleja y de varios niveles de comandos o aplicaciones ejecutables, automatizar el trabajo con aplicaciones y archivos con o sin la participación de el usuario. El sistema operativo tiene la capacidad de escribir varios comandos en un archivo bat. Al mismo tiempo, simplemente ejecutando este archivo por lotes (a menudo llamado script o simplemente "archivo por lotes"), puede ejecutar los comandos prescritos y, al registrarlo en los eventos del programador de Windows, puede automatizar este proceso.</p><p>La peculiaridad de los archivos de este tipo es la ausencia de código en su interior: solo hay información del reloj que es leída y ejecutada por un procesador de comandos DOS, compatible con casi todas las versiones del sistema operativo Windows. Un ejemplo llamativo es el archivo autoexec.bat, necesario para iniciar este sistema operativo, ya que es el archivo que realiza su configuración durante el inicio.</p><h2>Funciones básicas de los archivos por lotes</h2><p>Los comandos que contiene el archivo bat se pueden dividir en varios grupos según su funcionalidad:</p><p>Diseñado para mostrar un valor, frase, aplicación o información específica; <br>- lanzar documentos por lotes; <br>- para trabajar con ciclos; <br>- crear una ejecución ramificada usando condiciones; <br>- para trabajar con aplicaciones.</p><p><img src='https://i1.wp.com/fb.ru/misc/i/gallery/34400/1196214.jpg' width="100%" loading=lazy loading=lazy></p><h2>Ejecutar archivos por lotes</h2><p>Puede iniciar archivos bat de varias formas. Cuando trabaje en el directorio actual, simplemente puede ingresar nombres de archivos con o sin parámetros adicionales. En este caso, los comandos de los archivos bat después del lanzamiento se ejecutarán secuencialmente uno tras otro, sin intervención del usuario.</p><p>Cuando un archivo de comando se encuentra en otro directorio, además del nombre completo de este archivo, debe ingresar la ruta completa al directorio donde está almacenado. La extensión del archivo también se puede omitir. Por ejemplo, el directorio actual es d:\photo\work y el archivo de comando vera.bat que debe ejecutarse con los parámetros resize.doc y /p se encuentra en el directorio d:\photo\home. Luego, para que se inicie nuestro archivo, debe ingresar el comando d:\photo\home\vera resize.doc /p o el comando ..\home\vera resize.doc /p.</p><h2>interrupción del trabajo</h2><p>Los comandos del archivo BAT ejecutados después del inicio se pueden interrumpir usando combinaciones de botones <Ctrl>+<Break>Y <Ctrl>+<C>. La pantalla le pedirá que cancele el archivo de comando con un mensaje esperando una entrada Sí o No. Si ingresa Y, la ejecución se interrumpirá y se ignorará la lista restante de comandos en el archivo bat. Si ingresa el símbolo N, la ejecución continuará con el siguiente comando de la lista.</p><p><img src='https://i2.wp.com/fb.ru/misc/i/gallery/34400/1196215.jpg' width="100%" loading=lazy loading=lazy></p><h2>Llamar a otro archivo por lotes</h2><p>Los archivos bat pueden contener enlaces a la ejecución de otros scripts. Si simplemente escribe un archivo bat en el cuerpo del script, los comandos posteriores ya no se ejecutarán, ya que el control se transfiere a otro archivo por lotes y los comandos del mismo se ejecutarán. Si se requiere una devolución después de ejecutar un archivo interno, se puede llamar con el comando CALL. El formato del comando se ve así: CALL bat-file-name [parámetros de inicio].</p><p>Los parámetros que se pasan a los archivos de comando llamados suelen ser los caracteres %1 - %9. Cuando todos los comandos de los archivos bat se pasan en secuencia, la ejecución del script original continuará desde la siguiente línea.</p><p><img src='https://i0.wp.com/fb.ru/misc/i/gallery/34400/1196205.jpg' width="100%" loading=lazy loading=lazy></p><h2>Ejecución paso a paso</h2><p>Hay ocasiones en las que los comandos del archivo bat deben ejecutarse paso a paso (con una parada después de cada línea). La mayoría de las veces, este modo es necesario al depurar o probar scripts. El comando tiene este aspecto: COMMAND /y/c script_name [parámetros].</p><p>Cuando se ejecute, se emitirá un mensaje Y o N para cada comando. Si es necesario ejecutar el comando, presione la tecla Enter o Y. Si necesita omitir el comando, presione ESC o N.</p><p><img src='https://i2.wp.com/fb.ru/misc/i/gallery/34400/1196217.jpg' width="100%" loading=lazy loading=lazy></p><h2>Deshabilitar o habilitar la salida de comandos a la pantalla</h2><p>Cuando se inicia un archivo bat, los comandos se muestran en la pantalla línea por línea antes de la ejecución y luego se ejecutan. A veces esto causa inconvenientes, ya que con un archivo por lotes grande, los comandos se ejecutan en una larga lista frente al usuario en la pantalla y, a veces, es necesario mostrarlos, por ejemplo, para el diálogo o la depuración. Para mostrar comandos en el archivo bat, use el comando ECHO ON. Para desactivar este modo, ingrese ECHO con el parámetro OFF. En este caso, todos los comandos ejecutados posteriormente ya no se mostrarán en la pantalla.</p><p>Para deshabilitar la salida de solo una línea del archivo del cuerpo a la pantalla, puede usar el símbolo @ al principio de esta línea. En la mayoría de los casos, este símbolo se puede encontrar junto con el comando @ECHO OFF para evitar que aparezca en la pantalla del monitor. Los atacantes suelen utilizar este modo, creando virus basados ​​en archivos bat o causando problemas menores o mayores a los usuarios de computadoras.</p><p><img src='https://i2.wp.com/fb.ru/misc/i/gallery/30608/697440.jpg' height="597" width="581" loading=lazy loading=lazy></p><h2>Mensajes al ejecutar comandos.</h2><p>Si se encuentran caracteres distintos de ON u OFF después del comando ECHO, se mostrarán en la pantalla en cualquier modo. Si ECHO no tiene parámetros, muestra el estado del modo de visualización de los comandos ejecutables: activado o desactivado.</p><p>Si lo desea, puede incluso reproducir el sonido (chirriante) de la computadora usando un archivo bat. Los siguientes ejemplos de comandos se basan en la declaración ECHO con la adición de caracteres especiales.</p><p>Para reproducir una señal de sonido, debe mostrar un carácter estándar con el código 7. Esto se puede hacer presionando la tecla <alt>y "7" en el teclado numérico (etiquetado como inicio).</p><p>Para mejorar la legibilidad de los mensajes, puede utilizar el comando ECHO con el parámetro "." (se coloca inmediatamente después del comando sin espacio) o un carácter especial con código 255. En la pantalla se verá como una línea vacía.</p><p>El comando ECHO se puede utilizar para enviar mensajes a un archivo separado. Su esencia es redirigir la salida del mensaje a un archivo en lugar de a la pantalla del monitor. Para guardar registros, sondear y registrar eventos, puede utilizar bat. Los comandos de salida tienen el siguiente formato:</p><p>Mensaje ECHO >> nombre de archivo: el comando agrega una línea al final de un archivo existente. Si no existe dicho archivo en este directorio, se crea un nuevo archivo.</p><p>Mensaje ECHO > nombre de archivo: este comando crea un nuevo archivo y escribe en él la línea actual. Si dicho archivo existe en el directorio actual, su contenido se eliminará y se anotará el comando o su resultado.</p><h2>Usando comentarios</h2><p>Para facilitar la edición de scripts, se utiliza el comando REM. Windows ignora todos los comandos del archivo bat posteriores cuando se ejecuta. Se pueden ver durante la edición y el modo paso a paso. En todos los demás casos, los comentarios no se mostrarán en la pantalla.</p><p><img src='https://i0.wp.com/fb.ru/misc/i/gallery/7450/1197504.jpg' width="100%" loading=lazy loading=lazy></p><h2>Comando de retraso en el archivo bat</h2><p>A veces, durante la ejecución de un archivo por lotes, es necesario detener temporalmente la ejecución de comandos, por ejemplo, esperar la respuesta del usuario, aumentar el tiempo para leer un mensaje largo, insertar un disco, confirmar la presencia de un usuario, o para depurar un archivo por lotes. El comando de retardo en el archivo bat está escrito como PAUSA sin parámetros. En este caso, aparecerá en la pantalla un mensaje como "Presione cualquier tecla para continuar" y la ejecución del script se suspenderá hasta que se presione un botón del teclado. Si se presiona la combinación <ctrl>+<break>o <ctrl>+<c>, entonces el sistema percibirá esto como la finalización del archivo ejecutable y emitirá una solicitud para confirmar la finalización de su trabajo: “¿Abortar la ejecución del archivo por lotes? (T/N)”. Si presiona la tecla Y, el script se interrumpirá en ese punto y se ignorarán todos los comandos restantes no ejecutados. Al presionar N continuará la ejecución con el siguiente comando. Cuando haga una pausa, al presionar cualquier otra tecla alfanumérica, así como Espacio e Intro, continuará la ejecución del ejecutable con el siguiente comando.</p><p><img src='https://i2.wp.com/fb.ru/misc/i/gallery/34400/1196024.jpg' height="200" width="300" loading=lazy loading=lazy></p><h2>lista de archivos</h2><p>Para ejecutar secuencialmente varios archivos de la lista ubicada en el mismo directorio, también puede utilizar un archivo bat. Los comandos "ejecutar programa por nombre" y "ejecutar programa por extensión de archivo" a menudo pueden ayudar a automatizar el procesamiento de documentos, como ordenar los archivos adjuntos del correo. Se diferencian en los parámetros del comando FOR. El formato para escribirlo se proporciona a continuación:</p><p>FOR %x IN (lista de archivos) comando DO, donde:</p><p>X: cualquier símbolo, excepto los números del 0 al 9;</p><p>Lista: nombres de archivos separados por espacios o el nombre de un solo archivo; En este caso, puedes utilizar los caracteres especiales “?” y “*” para reemplazar uno o varios caracteres en los nombres de archivos;</p><p>Comando: cualquier comando o programa de DOS, excepto FOR; si es necesario utilizar FOR, en lugar de %x deberá especificar %%x.</p><p><img src='https://i1.wp.com/fb.ru/misc/i/gallery/34400/1196206.jpg' width="100%" loading=lazy loading=lazy></p><p>Al utilizar este comando para escribir archivos bat, debe tener en cuenta que los nombres en programas en formato DOS tienen un límite en la longitud del nombre. Para cambiar el comando FOR para que funcione con nombres de archivos largos, debe recordar ejecutar el comando LFNFOR ON antes para habilitar el modo de trabajar con nombres largos y LFNFOR OFF para deshabilitarlo y volver a la longitud de archivo estándar.</p><p>Muchas funciones con programas, como comparar archivos con ciertos tipos de extensiones ubicados en un directorio con archivos del mismo tipo de otro directorio, copiar todos los archivos del directorio actual a otro, ejecución secuencial de archivos con extensiones de cierto tipo y nombres. comenzar con números, se puede hacer con un solo comando escrito en el archivo bat. El lanzamiento del programa se puede combinar con las solicitudes de los usuarios, lo que mejora la comodidad de trabajar con datos.</p><p><img src='https://i2.wp.com/fb.ru/misc/i/gallery/34400/1196211.jpg' width="100%" loading=lazy loading=lazy></p><h2>Transiciones en archivos bat</h2><p>Para facilitar la gestión del orden en que se lanzan los comandos en los archivos bat, suelen utilizar comandos de salto y etiquetas mediante las cuales se realizan estos saltos. <br>Una etiqueta es cualquier línea en un archivo ejecutable que comienza con dos puntos. El nombre de la etiqueta es el conjunto de caracteres después de los dos puntos hasta el final de la línea o hasta el primer espacio, después del cual se ignora el resto de la línea, que puede usarse como comentario para la etiqueta de salto.</p><p>El comando de salto se escribe GOTO con el nombre de la etiqueta separado por un espacio. Si no hay ningún parámetro o el nombre de la etiqueta no se encuentra en el archivo de comando, entonces el script deja de funcionar con este comando. Ejemplo:</p><p>REM (se ejecutan los comandos necesarios).</p><p>En este ejemplo, la ejecución secuencial del archivo de comando, al llegar a GOTO zzz, salta a etiqueta:zzz y continúa con REM, ignorando todo lo que hay entre el comando de salto y la etiqueta especificada.</p><p><img src='https://i1.wp.com/fb.ru/misc/i/gallery/34400/1196209.jpg' width="100%" loading=lazy loading=lazy></p><h2>Condiciones de uso al trabajar con archivos bat</h2><p>Un archivo bat puede ejecutar o no comandos dependiendo de diversas condiciones si utiliza la verificación de eventos IF. El formato de este comando es "comando de condición IF".</p><p>La condición representa varias variantes de expresiones:</p><p>Número ERRORLEVEL: si el programa en ejecución anterior finalizó con un código de salida igual o mayor que el valor numérico especificado, la condición será verdadera.</p><p>LÍNEA 1 == LÍNEA 2: si las líneas coinciden completamente, la condición se vuelve verdadera. En lugar de cadenas, puede sustituir los caracteres %0 - %9, luego se compararán los parámetros del archivo por lotes.</p><p>EXIST - nombre del archivo - si el archivo especificado existe, entonces la condición es verdadera.</p><p>NOT - condición: si la condición especificada es falsa, la salida del comando recibirá un valor verdadero.</p><p><img src='https://i1.wp.com/fb.ru/misc/i/gallery/34400/1196216.jpg' width="100%" loading=lazy loading=lazy></p><h2>Comandos usados ​​en archivos bat</h2><p>Si hace clic en el botón "Inicio" y ejecuta la línea de comando (cmd), puede ver todo lo insertado en el archivo bat y puede usarlo como herramienta de depuración, como asistente, como programa para obtener información sobre comandos. Para hacer esto, simplemente escriba AYUDA. Esto produce una lista de comandos con breves descripciones de ellos. Para obtener información más detallada, puede ingresar a AYUDA con el nombre del comando deseado.</p><p><img src='https://i2.wp.com/fb.ru/misc/i/gallery/34400/1196207.jpg' height="200" width="300" loading=lazy loading=lazy></p><h2>Usar archivos bat al realizar copias de seguridad de datos</h2><p>Los archivos por lotes hacen la vida mucho más fácil a los administradores de sistemas en su trabajo diario. Las áreas más comunes de su aplicación son la creación, eliminación, cambio de nombre y mucho más. Todo esto se basa en utilizar el comando COPIAR archivo bat. Por ejemplo, puede crear un programa que realice copias de archivo de documentos de una carpeta seleccionada con datos de usuario de ciertos formatos, excluyendo, por ejemplo, archivos multimedia grandes, proporcionando una copia de seguridad en una carpeta con el nombre del usuario y llamándola "Command_copying_files.bat". ”. Después de esto, es necesario asegurarse de que se inicie en un momento determinado mediante el programador incorporado o mediante el propio programa y así garantizar la seguridad de los datos del usuario.</p> <p><b>¡Cualquiera puede escribir archivos bat!</b></p><p><b>Procesador de comando</b></p><p>Muchos sistemas operativos, incluidos los desarrollados por Microsoft, incluyen un procesador de comandos. Este es el nombre de un programa que inicia la ejecución de diversas acciones en respuesta a comandos ingresados ​​por el usuario desde el teclado. Básicamente, estas acciones consisten en ejecutar los programas necesarios con determinados parámetros. Pero no solo; Más adelante veremos que algunos comandos los ejecuta directamente el procesador de comandos. Básicamente, estos son los comandos que sirven para controlar el contexto y la secuencia de ejecución del comando. Sin embargo, no pensaremos demasiado en la naturaleza de los comandos, al menos a menos que sea necesario. Más importante aún, cualquier programa que sea técnicamente posible ejecutar desde la línea de comandos es considerado por el procesador de comandos como un comando. No diferencia entre los comandos nativos que se integraron originalmente en el sistema operativo y los programas que se instalaron encima de él.</p><p>Para iniciar el procesador de comandos:</p><ol><p>Haga clic en el botón <b>Comenzar</b>. El menú principal se mostrará en la pantalla.</p><p>Seleccione Ejecutar en el menú principal. Aparecerá un cuadro de diálogo en la pantalla. <b>Iniciando el programa</b>.</p><p>En el campo Abrir, ingrese la cadena <b>cmd</b>.</p><p>Haga clic en el botón <b>DE ACUERDO</b>. Aparecerá una ventana del procesador de comandos en la pantalla.</p> </ol><p><b>Línea de comando y comandos</b></p><p>La ventana del procesador de comandos en su forma original parece sombría y trabajar con ella no es muy conveniente para la mayoría de las personas. Es mucho más fácil utilizar administradores de archivos estilo Norton Commander. Proporcionan herramientas para navegar rápidamente por el sistema de archivos y un límite de tiempo para ingresar comandos.</p><p>Para ingresar el comando:</p><ol><p>Escriba el texto del comando en la línea de comando.</p><p>Presione la tecla <b>Ingresar</b>.</p> </ol><p>Los comandos del procesador de comandos y del sistema operativo se describen en la documentación operativa de este último. Esta documentación está parcialmente contenida dentro del propio sistema operativo. Para acceder a él use el comando <b>ayuda</b>. Este comando muestra una lista de comandos disponibles. Para obtener una descripción de un comando específico, use el comando como parámetro <b>ayuda</b> se debe indicar su nombre. La línea de comando que se muestra en el siguiente listado muestra una descripción del comando <b>para</b>.</p><p>Si intentaste ingresar el comando <b>ayuda</b>, probablemente hayas notado que el resultado de su trabajo (el llamado resultado) no cabe en una pantalla. El mismo problema ocurre con el texto de descripción del comando. <b>para</b>. La buena noticia es que la salida se puede redirigir a un archivo. La línea de comando que se muestra en el siguiente listado genera el archivo <b>comandos.txt</b>, que contiene una lista de todos los comandos de MS-DOS.</p><p>ayuda > comandos.txt</p><p>Para generar un archivo con una descripción del comando <b>para</b>, debe dar el siguiente comando (puede hacer que el nombre del archivo de salida sea cualquier cosa).</p><p>ayuda para > para.txt</p><p>En total, hay algo menos de 80 comandos en los sistemas operativos modernos de Microsoft y es imposible describirlos en un artículo. Aquí sólo podemos mencionar algunos comandos útiles para automatizar el procesamiento de archivos y mostrar cómo usarlos. Estos comandos se utilizarán en más ejemplos. Siempre puedes aclarar los detalles por comando. <b>ayuda</b> o en el directorio.</p><p><b>Copiar</b>- copiar uno o más archivos;</p><p><b>del</b>- eliminar uno o más archivos;</p><p><b>mover</b>- mover uno o más archivos o directorios;</p><p><b>rebautizar</b>(abreviado <b>ren</b>) - cambiar el nombre de uno o más archivos o directorios;</p><p><b>xcopiar</b>- copiar el árbol de subdirectorios;</p><p><b>mkdir</b>(abreviado <b>Maryland</b>) - creando un directorio;</p><p><b>rmdir</b>(abreviado <b>tercero</b>) - eliminar un directorio.</p><p>Una de las reglas generales de la sintaxis de los comandos de MS-DOS es que al especificar parámetros, primero se especifica la fuente y luego el resultado. Por ejemplo, si queremos mover un archivo <b>cerveza.txt</b> del catalogo <b>caja</b> al catalogo <b>mesa</b>, debemos ingresar el comando que se proporciona en el siguiente listado.</p><p>mover cuadro\tabla cerveza.txt</p><p>Primero qué mover, luego hacia dónde moverse.</p><p>Si queremos cambiar el nombre del archivo <b>lena.txt</b> archivar <b>natasha.txt</b>, entonces el comando debe escribirse como se muestra a continuación.</p><p>ren lena.txt natasha.txt</p><p>Primero, qué cambiar de nombre y luego qué cambiar de nombre.</p><p><b>Directorio actual. Caminos absolutos y relativos</b></p><p>Cuando se trabaja con comandos de archivos, el concepto de directorio actual se vuelve extremadamente importante. El punto es que cuando especificamos un archivo como parámetro de comando, siempre usamos una de dos formas posibles para señalarlos: una ruta absoluta o una ruta relativa. En la ruta completa especificamos todo lo que comienza con la unidad (o el nombre de red de la computadora), por ejemplo <b>d:\misha\box\cerveza.txt</b>. Cualquiera que sea el directorio actual cuando se ingresa el comando, la ruta completa corresponderá al mismo archivo. Para una ruta relativa, el directorio actual sirve como punto de partida. El caso más simple de una ruta relativa es el nombre de un archivo. En el contexto de la ejecución de comandos, significa un archivo con ese nombre ubicado en el directorio actual.</p><p>Para escribir una ruta relativa al directorio actual, hay una entrada condicional <b>. </b>(punto). Para registrar la ruta relativa al directorio que contiene el directorio actual, existe una notación condicional <b>.. </b>(dos puntos). El comando que se muestra en la siguiente lista copia todos los archivos del directorio actual al directorio <b>vecino</b>, situado junto a él.</p><p>copiar *.* .\vecino</p><p><b>Archivos por lotes</b></p><p>Hasta ahora, al dar ejemplos, asumíamos que ingresábamos comandos manualmente cada vez. Cuando se procesa una gran cantidad de archivos o se ejecutan sistemáticamente los mismos comandos, esto resulta engorroso. Por lo tanto, el procesador de comandos brinda la capacidad de ejecutar archivos de comandos. Un archivo por lotes es un archivo de texto en el que se escriben comandos (o al menos un comando). En el siguiente listado se muestra un archivo por lotes de ejemplo. Intente adivinar qué hace este archivo por lotes.</p><p>ayuda copiar > copiar.ayuda</p><p>ayuda a mover > mover.ayuda</p><p>mover *.ayuda msdos-ayuda</p><p>Si el propósito de este archivo sigue siendo un misterio para usted, intente crearlo y ejecutarlo. Es habitual dar a los archivos de comando la extensión <b>murciélago</b>. Así es como el procesador de comandos reconoce los archivos de este tipo. Este archivo se puede llamar, por ejemplo, <b>hacer-ayuda.bat</b>.</p><p>Para ejecutar el archivo por lotes:</p><ol><p>Ingrese su nombre como comando. Después de esto, se ejecutará el archivo por lotes.</p> </ol><p>En un archivo por lotes, cada comando ocupa una línea. Más precisamente, hay una manera de colocar un comando en varias líneas consecutivas, para hacer esto, inmediatamente antes de cada salto de línea debes colocar el símbolo “cap”; <b>^ </b>. (Cada mayúscula debe ser el último carácter de su línea; no debe haber espacios ni tabulaciones después). En el siguiente listado se muestra un ejemplo de dicho comando.</p><p>si existe disser.txt ^</p><p>copiar disser.txt ^</p><p>d:\ciencia\artículos\borradores\fuentes</p><p>Pero en aras de la simplicidad, para no hacer reservas cada vez, asumiremos que, en cierto sentido, se trata de una línea "lógica" larga.</p><p>Cuando se ejecuta un archivo por lotes, el procesador de comandos lo escanea de arriba a abajo desde la primera línea hasta la última y ejecuta los comandos en el orden en que los encuentra. Los realiza en general como si introdujéramos cada uno de ellos manualmente. En general, porque algunos comandos se comportan de manera ligeramente diferente cuando se ingresan manualmente y cuando se ejecutan desde un archivo por lotes.</p><p>De cara al futuro, digamos que, si es necesario, la secuencia de ejecución del comando se puede cambiar mediante comandos de control (lo que puede causar tal necesidad es una cuestión aparte).</p><p>No confunda el directorio actual con el directorio en el que se encuentra el archivo por lotes que se ejecutará. Supongamos que el directorio actual es <b>trabajar</b>, contiene un directorio <b>herramientas</b> y el directorio de herramientas almacena archivos por lotes. Ejecutas uno de ellos con el comando. <b>herramientas\recopilar-imagenes.bat</b>. Entonces, "desde el punto de vista" de este archivo de comando, el directorio actual seguirá siendo <b>trabajar</b>, pero no <b>herramientas</b>.</p><p><b>Comentar el archivo por lotes y su salida. comandos echo y rem</b></p><p>Un archivo por lotes es esencialmente un programa escrito en el lenguaje del procesador de comandos del sistema operativo. El texto del programa debe estar provisto de comentarios para que, cuando vuelva a leerlo más tarde, no tenga que recordar dolorosamente por qué es necesario este programa y cómo funciona.</p><p>El sistema de comando MS-DOS proporciona un comando para crear comentarios: <b>movimiento rápido del ojo</b>. Este es un comando ficticio que no implica realizar ninguna acción, pero le permite escribir texto arbitrario en la línea después de su nombre. Además, el procesador de comandos no lo percibe como un error de sintaxis. En la siguiente lista se muestra un ejemplo de cómo formatear un archivo de comando con comentarios.</p><p>rem ************************************************* ****</p><p>rem Generando archivos de ayuda</p><p>ayuda copiar > copiar.ayuda</p><p>ayuda a mover > mover.ayuda</p><p>mover *.ayuda msdos-ayuda</p><p>Observe las líneas vacías que dividen el archivo por lotes en "párrafos". Este sencillo truco le permite hacer que su archivo por lotes sea más legible.</p><p>Al ejecutar el archivo por lotes anterior, todos los comandos se mostrarán en la pantalla a medida que se ejecutan, lo que no siempre es conveniente. La emisión de comandos se puede desactivar usando el comando <b>@eco apagado</b>. El símbolo del "perro" delante del comando <b>eco</b> Esto significa que este comando debe ejecutarse en modo "silencioso". Es mejor que no usemos la línea de comando <b>eco apagado</b>, pero coloque un "perro" delante de cada comando.</p><p>En muchos casos, desea que un archivo por lotes muestre ciertos mensajes en la pantalla (o en un archivo). En algunos casos, estos pueden ser mensajes de error, en otros, mensajes informativos que explican al usuario del archivo por lotes lo que está sucediendo en el momento en que creamos algún otro archivo útil con el archivo por lotes. El mismo comando echo se utiliza para mostrar mensajes. Se le pasa como parámetro el texto del mensaje que se va a mostrar. La lista del archivo por lotes mejorado se proporciona a continuación.</p><p>rem ************************************************* ****</p><p>rem Generando archivos de ayuda para los comandos copiar y mover</p><p>rem ************************************************* ****</p><p>@echo Generando archivos de ayuda. Un segundo...</p><p>rem Generando archivos de ayuda</p><p>ayuda copiar > copiar.ayuda</p><p>ayuda a mover > mover.ayuda</p><p>rem Crea un directorio para almacenar archivos de ayuda.</p><p>rem Mueve los archivos de ayuda al directorio preparado</p><p>mover *.ayuda msdos-ayuda</p><p>eco ¡Listo!</p><p><b>Pasar parámetros a un archivo de comando</b></p><p>Digamos que queremos crear un archivo por lotes que primero genere ayuda para describir un comando especificado por el usuario y luego lo cargue en el Bloc de notas para verlo. El truco consiste en decirle de alguna manera la próxima vez que ejecutemos el archivo por lotes qué comando nos interesa esta vez.</p><p>Para resolver este problema, se proporciona un mecanismo de procesamiento de parámetros. Funciona de forma bastante sencilla. Si, al ejecutar un archivo por lotes, el usuario especificó varios parámetros, en el texto del archivo por lotes indicamos el primero de ellos con la entrada <b>%1 </b>, segunda entrada <b>%2 </b>, tercera entrada <b>%3 </b> etc. Usamos estas notaciones en el texto del archivo de comandos de manera muy similar a como usamos los pronombres en el habla natural.</p><p>El texto del archivo de comando que resuelve el problema se muestra en el siguiente listado. Presta atención al comando. <b>ayuda</b>. El primer parámetro del archivo de comando se le pasa como parámetro.</p><p>rem Creamos un archivo con una descripción del comando,</p><p>rem cuyo nombre se pasa como parámetro</p><p>ayuda %1 > ayuda.tmp</p><p>rem Cargue el archivo de descripción en el editor del Bloc de notas.</p><p>ayuda del bloc de notas.tmp</p><p>Supongamos que le damos a este archivo por lotes el nombre <b>mostrar-ayuda.bat</b>. Para cargar una descripción de comando en un bloc de notas, por ejemplo, <b>directorio</b>, tenemos que ingresar el comando de la siguiente manera.</p><p>directorio show-help.bat</p><p>El siguiente archivo de comando crea un directorio con el nombre especificado en el primer parámetro y escribe en él un archivo que contiene el texto que describe el comando especificado en el segundo parámetro.</p><p>rem Ejemplo de un archivo de comando con dos parámetros</p><p>rem Crea un directorio con el nombre especificado por el primer parámetro</p><p>rem Crea un archivo en él con una descripción del comando,</p><p>rem especificado por el segundo parámetro</p><p>ayuda %2 > %1\%2.ayuda</p><p>¿Qué sucede si el usuario especifica cuatro parámetros en lugar de dos al ejecutar este archivo por lotes? Está bien, no interferirán con nada, simplemente no se usarán. ¿Qué sucede si el usuario especifica solo el primer parámetro? El segundo parámetro estará vacío. El efecto será el siguiente: se ejecutará el archivo por lotes, pero como si estuviera en lugar de la grabación. <b>%2 </b> no hay nada. El comando de ayuda generará una lista de todos los comandos y la colocará en un archivo con un nombre vacío y la extensión .help. Si el usuario ejecuta este archivo sin especificar ningún parámetro, cuando el procesador de comandos intenta ejecutar el comando <b>Maryland</b>(recuerde, esto es para crear un directorio), obtendremos un error de sintaxis porque el comando md debe tener un parámetro.</p><p>Por lo tanto, el uso de parámetros crea grandes oportunidades, pero puede complicar significativamente las cosas. Para que el archivo por lotes funcione siempre correctamente, es necesario verificar la exactitud de los parámetros especificados por el usuario y responder de alguna manera a los datos de entrada incompletos o incorrectos. Por supuesto, no puede hacer esto, pero un archivo por lotes que funcione incorrectamente puede causar problemas, especialmente si implica eliminar o sobrescribir datos.</p><p><b>Variables. establecer comando</b></p><p>Una variable es un valor con nombre. En los libros de texto de programación, una variable suele compararse con un sobre con un nombre escrito en él. Puede poner algo dentro del sobre, por ejemplo, una cierta cantidad de dinero; este es su valor. Al igual que con el sobre, el valor de la variable se puede cambiar.</p><p>Para declarar una variable y al mismo tiempo asignarle un valor, use el comando <b>colocar</b>. Un ejemplo de este comando se muestra en el siguiente listado.</p><p>Para extraer el valor de una variable, su nombre se coloca entre dos signos de porcentaje, como se muestra a continuación.</p><p>rem Compilador de archivos de ayuda en formato CHM</p><p>establecer help_compiler=c:\HTML Help Workshop\hcc.exe</p><p>rem Archivo de ayuda del proyecto para el módulo "Almacén"</p><p>establecer store_hpj=ayuda\fuentes\store\store.hpj</p><p>rem Archivo de ayuda del proyecto para el módulo "Ventas"</p><p>establecer sales_hpj=ayuda\fuentes\sales\sales.hpj</p><p>rem Compilar archivos de ayuda</p><p>%help_compiler% %store_hpj%</p><p>%help_compiler% %sales_hpj%</p><p>La siguiente lista muestra por qué las variables son útiles.</p><p>En primer lugar, le permiten utilizar un fragmento corto sinónimo de él dentro de un archivo por lotes en lugar de un fragmento largo (por ejemplo, la ruta al compilador del archivo de ayuda). Al menos es conveniente.</p><p>En segundo lugar, le permiten evitar la repetición en el texto del archivo de comando de fragmentos que puedan cambiar en el futuro. Imagine que reinstalamos Microsoft HTML Workshop en un directorio diferente. Si se utiliza una variable en un archivo por lotes para registrar la ruta a ella, será suficiente corregir solo una línea en el archivo por lotes, es decir, aquella en la que se asigna el valor de la variable. <b>ayuda_compilador</b>. Si escribiéramos la ruta al compilador cada vez que fuera necesario llamarlo, luego de cambiar la ruta tendríamos que corregir cada una de esas líneas. En el ejemplo dado hay dos, pero en un proyecto real podrían fácilmente ser cinco o quince, dependiendo del número de archivos de ayuda que queramos compilar. El problema no es que corregir manualmente cada línea sea difícil (después de todo, nadie ha cancelado los comandos "copiar" y "pegar"), sino que esto aumenta enormemente la probabilidad de un error accidental.</p><p>Los parámetros del archivo por lotes también son variables, pero se diferencian de las variables ordinarias en que sus valores se establecen cuando se inicia el archivo por lotes. En el futuro, cuando hablemos de variables, especialmente de trabajar con sus valores, también nos referiremos a los parámetros del archivo de comandos, al menos en ausencia de reservas explícitas al respecto.</p><p>Al escribir archivos por lotes, se suele utilizar la siguiente técnica: se indican varios valores de variables uno al lado del otro (o se intercalan con algunos símbolos o líneas), para obtener algún nuevo valor significativo. En el siguiente listado se muestra un ejemplo.</p><p><b>Consultando condiciones y seleccionando opciones. comandos if y goto</b></p><p>El comando if le permite seleccionar grupos de comandos en un archivo por lotes que se ejecutan o no según ciertas condiciones. ¿Para qué sirve?</p><p>La verificación de condiciones es casi un paso necesario al crear archivos por lotes que utilizan parámetros. Antes de comenzar a trabajar, el archivo por lotes generalmente debe asegurarse de que se le pase el conjunto correcto de parámetros. De lo contrario, existe un alto riesgo de que se ejecute de forma incorrecta o ineficaz, y el usuario sólo quedará preguntándose cuál es el problema. Además, si un archivo por lotes elimina, mueve o sobrescribe datos, incluso puede causar daños si los parámetros son incorrectos.</p><p>La siguiente lista muestra el archivo de comando de compilación del archivo de ayuda con el que ya está familiarizado. Se ha agregado una verificación de que el primer parámetro no esté vacío al principio del archivo de comando. Tenga en cuenta esta característica de sintaxis: la operación de comparación utiliza un doble signo igual. Si el primer parámetro no está vacío, se ejecuta el comando goto, que "arroja" el shell a la etiqueta especificada. En este caso, el nombre de esta etiqueta es compilar. Tenga en cuenta que cuando aparece una etiqueta, su nombre está precedido por dos puntos, pero en el comando goto no. Si el primer parámetro está vacío, el shell pasa a la siguiente línea, lo que produce un mensaje de error. Y luego al siguiente, que lo transfiere al final del archivo a una etiqueta con el nombre <b>finalizar</b>.</p><p>si no "%1"=="" ir a compilar</p><p>rem Si el parámetro está vacío, mostramos un mensaje de error</p><p>nombre del proyecto del archivo de ayuda echo no especificado</p><p>rem y vaya al final del archivo por lotes</p><p>rem para terminar la marca</p><p>rem Esta es una etiqueta llamada compilar</p><p>rem A continuación se muestran los comandos de compilación.</p><p>rem Ruta al compilador del archivo de ayuda</p><p>set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"</p><p>rem Ruta al directorio donde se encuentran los proyectos del archivo de ayuda</p><p>establecer ruta_proyecto=e:\trabajo\proyectos\proyectos de ayuda</p><p>rem Llame al compilador para procesar un proyecto específico,</p><p>rem cuyo nombre se pasa en el primer parámetro</p><p>%help_compiler% %project_path%\%1.hpj</p><p>rem Esta es una etiqueta llamada acabado</p><p>Seamos realistas, el método propuesto para comprobar un parámetro no es el más exitoso.</p><p>En primer lugar, si el usuario especifica por error el nombre de un archivo inexistente como parámetro, el archivo por lotes quedará satisfecho con esto e intentará compilarse. Una forma más correcta es comprobar si dicho archivo realmente existe. Para ello, el lenguaje de comandos de MS-DOS proporciona una palabra especial <b>existir</b>. Por tanto sería mejor escribir: <b>si existe %1.hpj ir a compilar</b>.</p><p>En segundo lugar, uso activo del comando. <b>ir a</b>(el llamado salto incondicional) y las etiquetas confunden mucho el código. Técnicamente, no son malos, pero depurar y mantener un archivo por lotes escrito en este estilo es bastante inconveniente. Por lo tanto, los programadores han considerado durante mucho tiempo que el salto incondicional es una técnica indeseable. A continuación se muestra una versión estructurada más correcta, desde el punto de vista del estilo de programación, que utiliza la construcción <b>si... si no</b>. Funciona así: si la condición es verdadera, los comandos entre paréntesis después <b>si</b>, y si es falso, entre paréntesis después <b>demás</b>.</p><p>rem Compruebe si el parámetro está configurado</p><p>si no existe %1.hpj (</p><p>rem Ruta al compilador del archivo de ayuda</p><p>set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"</p><p>rem Ruta al directorio donde se encuentran los proyectos del archivo de ayuda</p><p>establecer ruta_proyecto=e:\trabajo\proyectos\proyectos de ayuda</p><p>rem Llame al compilador para procesar un proyecto específico,</p><p>%help_compiler% %project_path%\%1.hpj</p><p>Pongamos otro ejemplo de cómo trabajar con cheques. El siguiente archivo por lotes crea un directorio llamado <b>archivos de ayuda</b>(supongamos, cargar archivos de ayuda compilados en él). Además, si ya existe un directorio con el mismo nombre (y probablemente contiene archivos de ayuda antiguos que no querrás perder: ¿qué pasa si los nuevos resultan peores?), el archivo por lotes le asigna la extensión bak. . Pero si el directorio <b>archivos-de-ayuda.bak</b> ya existía, entonces el archivo por lotes lo elimina (asumiremos que una copia de seguridad es suficiente para nosotros).</p><p>si existe archivos-ayuda.bak rd archivos-ayuda.bak</p><p>si existen archivos de ayuda ren archivos de ayuda archivos de ayuda.bak</p><p><b>Procesamiento masivo de archivos. para comando</b></p><p>El comando for le permite organizar la ejecución de acciones repetidas del mismo tipo. Puede usarlo para mostrar los números del uno al diez, como se muestra en la siguiente lista.</p><p>para /l %%i en (1,1,10) haga eco %%i</p><p>Variable <b>i</b> llamado contador de bucle. Debido a la sintaxis única del comando <b>para</b>, el nombre del contador de bucle debe constar de una letra. Además, si estamos escribiendo un archivo por lotes, entonces debemos poner un signo de doble porcentaje delante del nombre del contador de bucle, pero si solo estamos escribiendo un comando en la línea de comando, entonces uno solo.</p><p>La lógica de este comando es la siguiente. después de la palabra <b>en</b> Se indica el rango de cambio del contador de ciclos. En esta versión del comando, se trata de un triple de números: el valor inicial del contador, el paso de conteo, el valor límite del contador. Al ejecutar un comando, el shell primero asignará la variable <b>i</b> significado <b>1 </b>, y luego en cada paso del ciclo lo aumentará en <b>1 </b> hasta que supere <b>10 </b>. Obviamente, habrá diez pasos de este tipo. Si especificamos un número como paso de conteo <b>2 </b>, entonces el bucle se ejecutaría cinco veces. En cada paso del bucle, se ejecuta el cuerpo del bucle escrito después de la palabra. <b>hacer</b>. En el ejemplo anterior, este es el comando echo, que muestra el valor actual del contador de bucle.</p><p>Probablemente puedas pensar en una situación en la que algo como esto sea realmente necesario, pero normalmente el comando <b>para</b> Se utiliza para iterar y procesar archivos. Hay que decir que en casos bastante simples, el procesamiento masivo de archivos se realiza mediante comodines. Si queremos reemplazar todos los archivos en el directorio actual con la extensión <b>.htm</b> en <b>.html</b>, ingresamos el comando <b>ren *.htm *.html</b>. Pero si es necesario hacer lo mismo no en un directorio, sino en un árbol de directorios, entonces no puede prescindir del comando for. El siguiente archivo por lotes realiza esta operación para todos los archivos htm en el subdirectorio del sitio web del directorio actual. Más precisamente, en todo el árbol de directorios que se encuentra dentro <b>sitio web</b>.</p><p>para el sitio web /r %%i en (*.htm) do ren %%i %%~ni.html</p><p>Llave <b>/r</b> indica la necesidad de recorrer el directorio <b>sitio web</b> y todo su interior. Si no lo especifica (pero no se le permite especificar un directorio), solo se procesarán los archivos del directorio actual. El rango de valores del contador de bucle en esta variante de comando es el conjunto de todos los archivos con la extensión <b>.htm</b>, ubicado dentro de un directorio (más precisamente, un árbol) <b>sitio web</b>. Una entrada extraña a primera vista. <b>~ni</b> significa que a partir del valor de la variable <b>i</b> Sólo necesita seleccionar el nombre del archivo. El lenguaje de comandos de MS-DOS proporciona varios modificadores de este tipo, por ejemplo, escribir <b>~xi</b> denota la extensión del archivo. Todos los modificadores se describen en la ayuda del comando. <b>para</b>.</p><p>El cuerpo de un bucle puede constar de varios comandos entre paréntesis.</p><p>para /r sitio web %%i en (*.htm) hacer (</p><p>rem Imprime el nombre del archivo</p><p>rem Cambiar el nombre del archivo</p><p>ren %%i %%~ni.html</p><p><b>Transferir el control a otro archivo por lotes. comando de llamada</b></p><p>Es posible llamar a otro archivo por lotes desde un archivo por lotes. El comando para esto es <b>llamar</b>. Genial, las variables especificadas en el archivo por lotes que realiza la llamada son "visibles" para la persona llamada. Y viceversa, después de que el archivo llamado termine su trabajo y devuelva el control a la persona que llama, este último "verá" las variables que le dejó la "herencia" llamada. Esto permite al desarrollador de archivos por lotes hacer algo como esto: Si varios archivos de comando deben usar los mismos valores, por ejemplo, rutas a algunos archivos, se pueden colocar en un archivo de comando separado, que desempeñará el papel de un archivo de configuración. Cada archivo de comando en funcionamiento comenzará con una llamada al archivo de configuración. El beneficio es que al cambiar las rutas, sólo tiene que realizar cambios en un archivo de configuración y no en muchos trabajadores.</p><p>Archivo por lotes "Configuración" <b>config.bat</b>.</p><p>rem Ruta al compilador del archivo de ayuda</p><p>set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"</p><p>rem Ruta al directorio donde se encuentran los proyectos del archivo de ayuda</p><p>establecer ruta_proyecto=e:\trabajo\proyectos\proyectos de ayuda</p><p>Archivo por lotes "en funcionamiento".</p><p>rem Configuración de variables</p><p>rem Compruebe si el parámetro está configurado</p><p>si no existe %1.hpj (</p><p>rem Si el parámetro está vacío, mostramos un mensaje de error</p><p>echo Este proyecto de archivo de ayuda no existe.</p><p>rem A continuación se muestran los comandos de compilación.</p><p>rem Llame al compilador para procesar un proyecto específico,</p><p>rem cuyo nombre se pasa en el primer parámetro</p><p>%help_compiler% %project_path%\%1.hpj</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> <div class="single-popular"> <div class="single-popular-tit col-lg-12">Popular en la categoría:</div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/5be8b76667696c4cd63a8c38979b50af.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Cómo combinar capas en Photoshop en una o combinarlas en un grupo Cómo combinar varias capas en Photoshop"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Cómo fusionar capas en Photoshop en una o combinarlas en un grupo...</div> <a href="https://innovakon.ru/es/settings/sposoby-obedineniya-sloev-v-fotoshope-kak-obedinit-sloi-v-fotoshope-v.html" rel="bookmark" title="Cómo combinar capas en Photoshop en una o combinarlas en un grupo Cómo combinar varias capas en Photoshop">leer</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/33b72e60e1d3066a9663f391221dc014.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Transferir contactos a un nuevo teléfono Android"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Transferir contactos a un nuevo teléfono Android</div> <a href="https://innovakon.ru/es/phone/perenos-kontaktov-na-novyi-telefon-android-android-prilozheniya.html" rel="bookmark" title="Transferir contactos a un nuevo teléfono Android">leer</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/ff504b14456f4702a94368a161811b1d.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Samsung Galaxy se reinicia solo - Soluciones Galaxy note 4 se reinicia solo"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Samsung Galaxy se reinicia solo - Soluciones Galaxy Note...</div> <a href="https://innovakon.ru/es/internet/esli-xiaomi-postoyanno-perezagruzhaetsya-samsung-galaksi-perezagruzhaetsya-sam-po.html" rel="bookmark" title="Samsung Galaxy se reinicia solo - Soluciones Galaxy note 4 se reinicia solo">leer</a> <div class="clr"> </div> </div> </div> <div class="single-popular-item col-lg-6 col-md-6 col-sm-6 col-xs-6"> <div class="single-popular-item-wrp"> <img width="150" height="120" src="/uploads/242e09224609f2b7cbd6b5b9f2adc411.jpg" class="attachment-sm-widget size-sm-widget wp-post-image" alt="Características clave de Kaspersky Rescue Disk"/ loading=lazy loading=lazy> <div class="single-popular-item-tit">Características clave de Kaspersky Rescue Disk</div> <a href="https://innovakon.ru/es/rates/skachat-zagruzochnyi-disk-kasperskogo-osnovnye-vozmozhnosti-kaspersky-rescue.html" rel="bookmark" title="Características clave de Kaspersky Rescue Disk">leer</a> <div class="clr"> </div> </div> </div> <div class="clr"></div> </div> </div>  <div class="sidebar col-lg-3 col-md-4 col-sm-12"> <div class="sidebar-wrp"> <div class="sidebar-wrp-title">últimos artículos</div> <div class="sidebar-wrp-des"> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/d93303aadea847492ee52538b585df87.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">MacBook no se conecta a wifi MacBook no ve...</div> <div class="clr"></div> <a href="https://innovakon.ru/es/phone/macbook-ne-podklyuchaetsya-k-wifi-avtomaticheski-makbuk-ne-podklyuchaetsya-k-wifi-makbuk-ne-vidit-vai-fai.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/094fe0c598853f299be65e8611b45d60.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Cómo ganar dinero con WebMoney</div> <div class="clr"></div> <a href="https://innovakon.ru/es/internet/kak-zarabotat-rubli-na-webmoney-kak-zarabotat-na-webmoney-proverennye.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/280d369c9d1e343119c3d855af4b9c4d.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Tableta "Supra": opiniones de clientes</div> <div class="clr"></div> <a href="https://innovakon.ru/es/rates/planshet-podelka-est-takoi-supra-firma-supra-planshet-otzyvy-pokupatelei-plyusy-i-minusy.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/b1724f08fa52145089eaa72f836127ee.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Ubicaciones de barcos en tiempo real</div> <div class="clr"></div> <a href="https://innovakon.ru/es/settings/voennye-korabli-v-realnom-vremeni-onlain-mestonahozhdeniya-sudov-v.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/534951a61241c179a7c060b9fe1143c8.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Los mejores programas para Android Grabar llamadas desde...</div> <div class="clr"></div> <a href="https://innovakon.ru/es/rates/prilozheniya-dlya-android-obuchayushchie-programmy-dlya-detei-luchshie.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/e280b0808c5e749938522ba1df2a41ec.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Eliminar a los no seguidores en Twitter</div> <div class="clr"></div> <a href="https://innovakon.ru/es/services/kak-udalit-ne-vzaimnyh-chitatelei-v-twitter-udalyaem-ne-chitatelei-v.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/229610355b0a27a465c73ddb25664556.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Conexión a Internet en una computadora portátil: todo lo posible...</div> <div class="clr"></div> <a href="https://innovakon.ru/es/phone/kak-vklyuchit-internet-na-kompyutere-ispolzuya-mobilnyi-telefon.html">leer</a> </div> <div class="last-post col-lg-12 col-md-12 col-sm-6 col-xs-6"> <div class="last-post-img"> <img width="60" height="48" src="/uploads/5399be52c80b405fedf00779a6136b42.jpg" class="attachment-sm-widget2 size-sm-widget2 wp-post-image" alt="" / loading=lazy loading=lazy> </div> <div class="last-post-tit">Samsung Galaxy S IV es el nuevo buque insignia...</div> <div class="clr"></div> <a href="https://innovakon.ru/es/phone/samsung-galaxy-s4-vtoroi-vzglyad-samsung-galaxy-s-iv-novyi-flagman-galakticheskogo-masshtaba-galak.html">leer</a> </div> <div class="clr"></div> </div> </div> <div id="text-4" class="widget widget_text sidebar-wrp"> <div class="textwidget"> </div> </div> <div id="ketena1" style="height:500px;width:260px;" align="center"></div> <div class="clr"></div> </div> </div> </div> </div> <div id="footer"> <div class="container"> <div class="row"> <div class="footer-contacts col-lg-6 col-md-6 col-sm-12 col-xs-12"> <img src="/logo/logo.png" loading=lazy loading=lazy> <div class="footer-contacts-tit">innovakon.ru <br>Teléfonos móviles y comunicaciones.</div> <div class="footer-soc"> <div class="footer-soc-wrp"> <div class="soc_w"> <a href="#" class="soc-link vk" target="_blank"></a> <a href="#" class="soc-link fb" target="_blank"></a> </div> </div> </div> </div> <div class="footer-links col-lg-4 col-md-6 col-sm-12 col-xs-12"> </div> <div class="footer-links col-lg-4 col-md-4 col-sm-4 col-xs-4" style="display: block;"> <ul> <li><a href="">Editorial del proyecto</a></li> <li><a href="">Publicidad en el sitio web.</a></li> </ul> <ul> <li><a href="https://innovakon.ru/es/feedback.html">Contactos</a></li> <li><a href="https://innovakon.ru/es/sitemap.xml">Mapa del sitio</a></li> </ul> </div> </div> </div> <div class="copyright">© 2024 Teléfonos móviles y comunicaciones.</div> </div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="https://innovakon.ru/wp-content/themes/trudinsp/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://innovakon.ru/wp-content/themes/trudinsp/js/SmoothScroll.js"></script> <a id="scroll-to-top" href="#" title="Vuelve al comienzo">Arriba</a> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.4.1'></script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/jquery-smooth-scroll/js/jss-script.min.js?ver=4.8.3'></script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect.min.js?ver=1.11.4'></script> <script type='text/javascript' src='/wp-includes/js/jquery/ui/effect-blind.min.js?ver=1.11.4'></script> <script type='text/javascript'> /* <![CDATA[ */ var stbUserOptions = { "mode":"css","cssOptions":{ "roundedCorners":false,"mbottom":20,"imgHide":"http:\/\/innovakon.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/minus.png","imgShow":"http:\/\/innovakon.ru\/wp-content\/plugins\/wp-special-textboxes\/themes\/stb-metro\/plus.png","strHide":"\u0421\u043a\u0440\u044b\u0442\u044c","strShow":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c"} }; /* ]]> */ </script> <script type='text/javascript' src='https://innovakon.ru/wp-content/plugins/wp-special-textboxes/js/wstb.min.js?ver=5.5.101'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.8.3'></script> <script type="text/javascript" id="slb_context">/* <![CDATA[ */if ( !!window.jQuery ) { (function($){ $(document).ready(function(){ if ( !!window.SLB ) { { $.extend(SLB, { "context":["public","user_guest"]} );} } })} )(jQuery);} /* ]]> */</script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>