Tabla de contenido:

Archivos por lotes: algunos conceptos básicos : 8 pasos
Archivos por lotes: algunos conceptos básicos : 8 pasos

Video: Archivos por lotes: algunos conceptos básicos : 8 pasos

Video: Archivos por lotes: algunos conceptos básicos : 8 pasos
Video: Cómo dar permisos a carpetas y archivos en Windows 2024, Junio
Anonim
Archivos por lotes: algunos conceptos básicos …
Archivos por lotes: algunos conceptos básicos …

Este Instructable le enseñará algunos conceptos básicos de la escritura de archivos por lotes y le mostrará cómo crear un juego de adivinanzas de números con un par de giros, solo para mantener las cosas interesantes …

He aprendido la mayor parte de mis habilidades con el símbolo del sistema y toda mi escritura por lotes de Internet en general, e Instuctables en particular. Me gustaría agradecer al usuario de Instructables Neodudeman por sus excelentes Instructables sobre escritura por lotes. ¡Gracias!

Paso 1: ¿Qué es un archivo por lotes?

¿Qué es un archivo por lotes?
¿Qué es un archivo por lotes?

Bueno, la mayoría de mis lectores probablemente ya sepan qué es un archivo por lotes, pero por si acaso….

Un archivo por lotes es simplemente una colección (lote) de comandos MSDOS que se ejecutan secuencialmente cuando ejecuta el archivo por lotes. Los archivos por lotes comienzan como archivos.txt en el bloc de notas y se convierten en archivos ejecutables cuando los guarda como algo con una extensión.bat. Básicamente, todo lo que debe hacer es escribir un archivo en el Bloc de notas y luego guardarlo como, digamos, "instructable.bat". Una vez que el.bat se coloca al final del nombre del archivo, aparecerá un nuevo archivo agradable, con el nombre que le haya dado, con un bonito icono de engranaje. Bien, ahora que sabemos qué son estos archivos por lotes, ¡empecemos a escribir!

Paso 2: comandos básicos

Comandos básicos
Comandos básicos
Comandos básicos
Comandos básicos
Comandos básicos
Comandos básicos
Comandos básicos
Comandos básicos

Muy bien, necesitarás aprender algunos comandos. Primero, abra el símbolo del sistema de MSDOS. Abra la ventana de inicio, haga clic en ejecutar, escriba "cmd.exe" y luego haga clic en ejecutar. Primero, veremos las variables. Las variables son números, palabras u otras cosas que, (algo obviamente), varían. El símbolo del sistema tiene una función variable. Tiene algunas variables que ya están configuradas, como HORA, FECHA y algunas otras. La mayoría de las variables, sin embargo, puede establecerlas usted mismo. Haga clic en la ventana del símbolo del sistema y escriba: SET variable = aleatorio Realmente no importa si escribe en mayúscula el "SET" o no, pero me gusta poner en mayúsculas todos mis comandos, especialmente cuando escribo archivos por lotes. Simplemente hace que sea más fácil saber lo que estás haciendo. Ahora presiona Enter. ¡Bien por usted! ¡Has configurado tu primera variable! Pero, ¿qué podemos hacer con él? ¿A quién le importa si todo lo que podemos hacer es ajustar la variable correctamente? Bueno, resulta que podemos hacer mucho más que eso, pero primero, intentemos que la computadora nos diga cómo está configurada la variable. Bien, para que la computadora lea el valor de una variable, escribimos el nombre de la variable, en este caso, "variable" y ponemos el nombre dentro de las marcas%, así:% variable%. Continúe y escriba eso, y presione enter:% variable% Error extraño, ¿eh? La computadora dijo que "'variable' no se reconoce como un comando interno o externo, programa operable o archivo por lotes". Entonces, ¿por qué dio ese error? Bueno, básicamente, dio ese error porque el símbolo del sistema trata el valor de esa variable como si lo hubiera escrito usted mismo. Entonces, cuando escribió% variable%, la computadora pensó que le estaba diciendo que ejecutara el comando "aleatorio". Obviamente, necesitamos algo más para ver el valor de nuestra variable. Aquí es donde entra en juego el comando ECHO. El comando ECHO simplemente le dice al símbolo del sistema que haga eco, o diga, lo que haya escrito después de ECHO. Entonces, si escribimos el comando ECHO antes de nuestra variable, deberíamos obtener lo que queremos: ECHO% variable% ¡Ahí! ¡Ahora tenemos lo que queremos! La computadora imprime "al azar". Obviamente, este fue el valor que escribimos para nuestra variable, por lo que es el resultado que queríamos. En el siguiente paso, aprenderemos más sobre las variables y cómo podemos usarlas.

Paso 3: Usar el comando SET y las variables

Uso del comando SET y las variables
Uso del comando SET y las variables
Uso del comando SET y las variables
Uso del comando SET y las variables

Bien, ahora que sabemos qué son las variables, ¿qué más podemos hacer con ellas? Bueno, podemos hacer matemáticas, podemos usarlos como condiciones para escribir programas y archivos por lotes, podemos realizar aritmética básica, podemos ejecutar comandos y mucho más. No entraremos en todo lo que puede hacer con las variables, pero discutiremos algunos aspectos importantes de la función variable. Primero, el comando SET por sí mismo solo produce variables de cadena. Esto significa que no agregará ni hará ninguna otra matemática. Si le dijera a la computadora que agregue 1 a una variable con un valor de 1, le daría el valor 1 + 1. Si queremos que sume los dos números, necesitamos colocar una "/ a" después del comando SET. Por lo tanto, escribimos: SET / a varible = (value) Ahora, supongamos que queremos poner una variable en nuestro archivo por lotes que el usuario proporcionará. Podríamos querer hacer esto si estuviéramos calculando valores de acuerdo con una fórmula o, en nuestro caso, si queremos que el usuario adivine un número que la computadora ha obtenido. Para generar una variable especificada por el usuario, agregamos a / p después del comando SET, y dejamos el área después de = en blanco: SET / p variable = ¡Listo! ¡Una variable especificada por el usuario! Si pusiéramos esta línea en un archivo por lotes, entonces el lote se ejecutaría hasta que llegara a esta línea, y luego esperaría la entrada del usuario antes de continuar. La otra cosa interesante de la / p es que niega por completo la / a. Cuando incluimos a / p, podemos simplemente omitir / a. Lo siguiente que aprenderemos es que produce variables aleatorias. Si queremos que la computadora elija un número aleatorio para una variable, simplemente escribimos el comando SET, seguido de la variable, y luego establecemos la variable en% RANDOM%. Una vez más, no es necesario que sea capital, pero me gusta hacerlo de todos modos. Entonces, escribimos: SET / a variable =% RANDOM% Obviamente, esta no es una variable especificada por el usuario, por lo que incluimos / a. ¡Frio! ¡Ahora sabemos cómo producir un número aleatorio! Pero, ¿qué tan aleatorio es? Bueno, resulta que la computadora elige un número entre 0 y alrededor de 37 000. No estoy seguro de cuál es el número exacto. Pero, ¿y si queremos un número menor? Supongamos, como en este Instructable, que queremos un número manejable para algo como un juego de adivinanzas. Bueno, ahí es donde entra el comando IF….

Paso 4: Los comandos IF y GOTO. El poder en manos del escritor por lotes

Los comandos IF y GOTO. El poder en manos del escritor por lotes
Los comandos IF y GOTO. El poder en manos del escritor por lotes

Entonces, queremos producir un número manejable. Supongamos que queremos producir un número aleatorio entre 1 y 20. Bien, es fácil de decir, pero el valor RANDOM elige un número entre 1 y 37, 000. Para eso vamos a usar IF. El comando IF básicamente dice SI algo sucede, o SI algo es igual o no es igual a un cierto valor, ENTONCES haz ESTO. Entonces, IF establece comandos condicionales. Queremos producir un número que sea menor que veinte, pero mayor que uno, obviamente, comenzaremos diciéndole a la computadora que elija un número aleatorio, pero luego necesitaremos poder decirle que elija uno nuevo. número si el número que elige no se ajusta a nuestros requisitos. Ahí es donde entra el comando GOTO. GOTO simplemente le dice a la computadora que VAYA A una determinada etiqueta en el código. Las etiquetas se ven así: pick Cualquier palabra colocada después de dos puntos se convierte en una etiqueta a la que podemos acceder con el comando GOTO. Entonces, si queremos ir a la sección de código con la etiqueta "seleccionar" encima, simplemente escribimos: GOTO pickAlright, así que continuemos con nuestra codificación. Ya le hemos dicho a la computadora que elija un número aleatorio, por lo que hemos escrito: SET / a answer =% RANDOM% Ahora queremos reducir este número a un rango más pequeño. Entonces invocaremos el comando IF. Algo como esto debería funcionar: IF% answer% GTR 20 GOTO pick Esto le dice a la computadora que GOTO elija SI la respuesta es MAYOR que 20. También podríamos poner cualquiera de estas condiciones en ese comando IF: EQU - EqualNEQ - Not EqualLSS - Menos que GTR - Mayor que LEQ - Menos que o igual a GEQ - Mayor que o igual a Por lo tanto, con IF, GOTO, etiquetas y estas abreviaturas, podemos manipular nuestro archivo por lotes de la forma que elijamos. Bien, ahora tenemos nuestro número aleatorio menor de veinte, y esto es lo que tenemos hasta ahora: pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pickNow, asegurémonos de que la computadora no lo hace ' t elija 0 para la respuesta.:pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pickIF $ answer% EQU 0 GOTO pickOkay! Ahora tenemos un número utilizable entre 1 y 20. Pasemos al meollo del lote.

Paso 5: La carne de nuestro juego

La carne de nuestro juego
La carne de nuestro juego

Muy bien, tenemos nuestro número aleatorio. También queremos contar cuántas conjeturas hace nuestro jugador, por lo que estableceremos otra variable: SET / a guessnum = 0 Eso establece la variable geussnum en cero, y le dimos el parámetro / a, por lo que podremos agregar cada vez que el usuario adivina. Tenemos un número aleatorio y hemos establecido el número de conjeturas. Ahora necesitamos algunas instrucciones, y necesitamos que el usuario ingrese el número de adivinación. Ya deberías entender la mayor parte de esto, así que solo te mostraré el código:: beginECHO Voy a pensar en un númeroECHO Estoy pensando ….. SET / a GuessNum = 0 (Esto hace eco a esas dos líneas y establece el número de intentos en 0): pickASET / a Respuesta =% RANDOM% IF% Answer% GTR 20 GOTO pickAIF% Answer% EQU 0 GOTO pickAECHO Estoy pensando en un número entre 1 y 20ECHO Adivina qué número estoy pensando (Esta sección se repite hasta que establece nuestro número aleatorio y luego ECHO las instrucciones para nuestro jugador): RetrySET / p Guess = IF% Guess% LSS% Answer% ECHO My Number is Higher. IF% Guess% GTR% Answer% ECHO My Number is Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO Reintentar Número correcto. Luego, VA A la etiqueta FIN): ENDECHO ¡Estás Correcto! La respuesta fue% Answer% ECHO Se necesitó% GuessNum% Guesses. ECHO. PAUSECLSECHO ¿Te gustaría jugar de nuevo? ECHO Y / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO jugargainIF% play% LSS y GOTO jugargainIF% play% GTR n GOTO jugargainIF% play% LSS n GOTO jugargain para jugar de nuevo. Fíjate que también podemos usar EQU, GTR y LSS con letras). Si simplemente copiara este código, tendría un juego de adivinanzas legítimo. No es realmente elegante, pero bueno, es mejor de lo que la mayoría de la gente puede hacer. Pero vamos a agregar un pequeño giro, solo para hacer las cosas interesantes….

Paso 6: el giro

El giro
El giro
El giro
El giro
El giro
El giro

Ahora, tenemos un juego funcional en este momento, pero queremos hacerlo un poco más interesante. ¿Qué tal si agregamos algún incentivo para que nuestro jugador adivine el número correcto? ¿Qué tal si hacemos algo como … apagamos su computadora si no adivinan el número? ¡Eso sería genial! Bien, ahora agregaremos un pequeño código para realizar estos cambios. Primero, agregaremos una línea a la sección de código que etiquetamos como "reintentar". Así que busca esa sección. Se ve así: RetrySET / p Guess = IF% Guess% LSS% Answer% ECHO Mi número es más alto. IF% Guess% GTR% Answer% ECHO Mi número es más bajo. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO RetryOkay, vamos a agregar esta línea justo después de "ECHO". (Cuando ponemos un punto después de ECHO, deja una línea en blanco.) Aquí está el nuevo código: IF% GuessNum% EQU 4 GOTO shutdownG Cuando agregamos esta línea, la sección se ve así: RetrySET / p Guess = IF% Guess% LSS% Respuesta% ECHO Mi número es más alto. IF% Guess% GTR% Answer% ECHO Mi número es más bajo. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdown GGOTO Retry A estas alturas, debería ser bastante obvio lo que hace. Le dice a la computadora que si GuessNum es igual a 4, debe ir a la sección de código etiquetada "shutdownG". Entonces, ¿qué queremos que diga esta sección de cierre? Bueno, obviamente, tiene que estar etiquetado como "shutdownG". A continuación, tiene que apagar la computadora. El comando para apagar es "SHUTDOWN -s". Esto apagará la computadora, pero queremos agregar algo al comando. Agregaremos una "-f". Eso forzará el cierre de todos los programas y agregaremos un "-t 60". Eso le dirá a la computadora que muestre una ventana y espere sesenta segundos para cerrarse. También agregaremos el mensaje "-c" aquí "". que mostrará un mensaje en la ventana de apagado. Después de nuestro comando de apagado, agregaremos el mismo código que tenemos arriba, el código que le permite a nuestro jugador elegir números y les da retroalimentación, por lo que nuestro código de apagado ahora se ve así: shutdownGSHUTDOWN -s -f -t 60 -c "¡Sigue adivinando! ¡Si no adivinas el número correcto, la computadora se apagará!": shutdownG1SET / p Guess = IF% Guess% LSS% Answer% ECHO My Number is Higher. IF% Guess% GTR% Answer % ECHO Mi número es más bajo. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1 Ahora hemos configurado la computadora en APAGADO y mostrar un mensaje, pero también necesitamos decirle al computadora para detener el apagado, si se ha iniciado. Entonces, agregaremos eso a la sección de codificación etiquetada como "fin". Esa sección se ve así: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO ¡Tienes razón! La respuesta fue% Answer% ECHO Se necesitó% GuessNum% Guesses. ECHO. PAUSECLSECHO ¿Te gustaría jugar de nuevo? ECHO Y / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO jugargainIF% play% LSS y GOTO jugargainIF% play% GTR n GOTO jugargainIF% play% LSS n GOTO jugargainQueremos detener el apagado, y lo hacemos con el comando "SHUTDOWN -a". Entonces, agregaremos una línea que dice esto: IF% GuessNum% GTR 4 SHUTDOWN -a Agregaremos ese comando justo después de la etiqueta, y eso le dirá a la computadora que ejecute el comando SHUTDOWN -a solo si el reproductor tiene hizo más de cuatro conjeturas y comenzó un cierre. ¡Okey! ¡Deberías haber terminado tu juego ahora! Nos aseguraremos de que no haya errores en el siguiente paso.

Paso 7: Pasos finales

Pasos finales
Pasos finales

Bien, ahora si uniste toda esa codificación, entonces tendrás algo que se parece a esto: beginECHO Voy a pensar en un númeroECHO Estoy pensando….. SET / a GuessNum = 0: pickASET / una respuesta =% RANDOM% IF% Answer% GTR 20 GOTO pickAIF% Answer% EQU 0 GOTO pickAECHO Estoy pensando en un número entre 1 y 20ECHO Adivina en qué número estoy pensando: RetrySET / p Guess = IF% Guess % LSS% Respuesta% ECHO Mi número es más alto. IF% Guess% GTR% Answer% ECHO Mi número es más bajo. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdownGGOTO Reintentar: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO ¡Estás en lo correcto! La respuesta fue% Answer% ECHO Se necesitó% GuessNum% Guesses. ECHO. PAUSECLSECHO ¿Te gustaría jugar de nuevo? ECHO Y / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% play% GTR y GOTO jugargainIF% play% LSS y GOTO jugargainIF% play% GTR n GOTO jugargainIF% play% LSS n GOTO jugargain: closeECHO ¡Gracias por jugar! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Sigue adivinando ! Si no adivina el número correcto, la computadora se apagará! ": ShutdownG1SET / p Guess = IF% Guess% LSS% Answer% ECHO My Number is Higher. IF% Guess% GTR% Answer% ECHO My Number is Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1 Eso debería ser todo lo que necesitamos, ¿verdad? Entonces, continúe y guarde ese archivo.txt del bloc de notas que tiene como GuessGame.bat. De hecho, puedes nombrarlo como quieras, siempre y cuando pongas el.bat al final. De acuerdo, haga clic en el icono y ejecute el programa. ¿Funcionó? Bueno, sorta. Está haciendo cosas raras, ¿no? Resulta que cuando escribimos un lote como este, el símbolo del sistema ECHO cada comando que le damos, como si los escribiéramos en el símbolo del sistema. Entonces el juego funciona, pero es un poco confuso y confuso. ¿Podemos hacer algo al respecto? ¡Sí! Todo lo que tenemos que hacer es escribir esta línea al principio de nuestro código: @ECHO OFF Esto le dice a la computadora que apague el ECHO. Y el signo @ al principio le dice que apague el ECHO para cada comando. Si dejamos ese @ fuera, entonces solo apagaría el ECHO para un comando.

Paso 8: ¡Todo listo

¡Felicidades! Acabas de escribir un juego de archivos por lotes. Bastante simple, ¿no? Si puede manejar esto, entonces puede averiguar cómo hacer un poco con los archivos por lotes. Solo juega con él, haz algunos experimentos. En caso de que no pueda hacer que algo funcione, o en caso de que dejé algo en toda esa codificación, le daré el archivo aquí.

Recomendado: