Título: [Ayuda] Guardar Información en Batch Publicado por: Mr. Bit en 14 Mayo 2019, 00:34 am Buenas! Este es el primer post que subo a este Foro. Soy muy nuevo en el tema de Batch. Bueno, no realmente "nuevo", ya que lo conozco y me se algunos comandos desde hace años ya. Sin embargo, nunca he podido avanzar mucho con Batch. Tengo ganas de crear programas interesantes, pero por causa de mi desconocimiento, no puedo.
Mi duda es: ¿Como guardo información dentro de un Batch? La pregunta no se entiende bien así dicha, así que decidí realizar un par de ejemplos: Imaginemos que en el Batch dice que mi dinero es $500. Me compro una tarjeta gráfica (en el Batch claro, todo virtual) que vale $100. Quiero que haya un valor que sea por ejemplo %dinero% pero totalmente fijo. Si tengo $500 y gasto $100 me quedan $400. Y que eso se guarde. Que no vuelva a tener $500 de vuelta. Son solo ejemplos. Tristemente para mi, no se mucho de programación, por lo tanto no se como expresar de manera limpia y ordenada mi duda. Lo mas parecido que he hecho fue Pawno, aunque todos los códigos y programas son bastante parecidos. Espero que en este Foro pueda aprender mas de lo que ya se. Muchas gracias de ante mano y saludos! Título: Re: [Ayuda] Guardar Información en Batch Publicado por: EdePC en 14 Mayo 2019, 02:58 am Saludos,
- Es cierto que no es fácil encontrar cursos o tutoriales de cmd o batch "de calidad", jeje siempre hay textos feos y desordenados. - Yo te recomendaría leerte este Tutorial, tiene buena calidad de edición y explicación (incluye pdf descargable): https://sites.google.com/site/nikos3194rfcindex/home/batch - Otros manuales de Batch/Cmd básicos de regular calidad (debido al lenguaje XD) es: https://openlibra.com/es/book/cmd-sin-secretos-v-2 - Luego puedes pasarte a leer los manuales de SirDarckcat: https://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.0.html - También tener a mano la referencia completa de Bacth/Cmd en inglés: https://ss64.com/nt/ - Para dudas puntuales tienes este foro, pero recomendaría googlear tus dudas, por ejemplo StackOverflow es muy buena fuente. - Siempre puedes hacer pruebas en tu consola (línea de comandos o Símbolo del Sistema), por ejemplo: -- Guardo 500 en un archivo de texto billetera usando la clásica redirección -- Reviso que contiene el archivo anterior -- Creo una variable dinero y redirecciono el contenido del archivo billetera a dicha variable -- Reviso que contiene mi variable -- Hago una operación matemática con mi variable, restandole 100 -- Vuelvo a revisar el contenido de mi variable -- Guardo el valor de mi variable al archivo billetera.txt -- Reviso el contenido del archivo billetera.txt c:\Users\EdSon\Desktop>echo 500 > billetera.txt c:\Users\EdSon\Desktop>type billetera.txt 500 c:\Users\EdSon\Desktop>set /p dinero=<billetera.txt c:\Users\EdSon\Desktop>set dinero dinero=500 c:\Users\EdSon\Desktop>set /a dinero= dinero - 100 400 c:\Users\EdSon\Desktop>set dinero dinero=400 c:\Users\EdSon\Desktop>echo %dinero% > billetera.txt c:\Users\EdSon\Desktop>type billetera.txt 400 c:\Users\EdSon\Desktop> Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Nucleorion en 14 Mayo 2019, 11:26 am Que recopilación tan buena! Gracias!
Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Mr. Bit en 15 Mayo 2019, 01:07 am Gracias EdePC!
Lo que pasa es que yo no se muchas cosas de Batch, como ya he dicho anteriormente. No se como crear una Variable en Batch. También, y como me pasaba con Pawno (programa mencionado en el post), no se EXACTAMENTE como funcionan las Variables o para que sirven. Si pueden decirme como crear una en Batch y explicarme de manera sencilla y clara que es una Variable, se los agradecería un montón. Gracias de vuelta y espero sus respuestas! ;D Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Nucleorion en 15 Mayo 2019, 10:19 am La pregunta es bastante basica y generica. Como casi nunca puedo responder a las preguntas complejas aprovechare para hacer mi aportación, y aunque mis conocimientos son limitados si que tengo mucha practica en iniciar a la gente en la programación en mi trabajo. La explicación te servira para cualquier lenguaje de programación, aunque en el ejemplo usaremos batch tal y como preguntas en el asunto. Voy a suponer tambien que has buscado por internet y no has comprendido las respuestas.
Una variable es un lugar donde guardar datos. Imaginemos que quieres hacer un programa que le diga al usuario cuantos dias cumple el dia de su cumpleaños (imaginando para simplificar que todos los años tienen 365 dias). Nuestro programa tendrá que multiplicar los años por los dias del año, pero como los años que tiene el usuario pueden variar le preguntaremos al usuario y los almacenamos en una variable que en este caso le llamaremos aniosusuario. Crear una variable y darle un valor se hace asi: Código Aunque en este caso el valor no varie tiene ciertas ventajas usar variables aquí tambien. Y para preguntar al usuario cuantos años tiene y almacenar el valor en una variable para operar con ella seria asi: Código
Aqui el programa completo: Código Aqui el programa comentando lo que hace cada linea: Código
Consideraciones a tener en cuenta: Los valores almacenados en las variables se destruyen al cerrar el programa o al recalcular o reasignar los valores. Los lenguajes de programación no suelen operar internamente con ñ ni acentos por lo que no los usaremos. PD: Código
Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Mr. Bit en 16 Mayo 2019, 03:01 am Muchas gracias! En serio!
Si, eso de los "%ejemplo%", lo de "set /p" y todo lo basico me lo se. No sabia como crear una variable, pero ahora si me ha quedado claro gracias a ti! Una pregunta: ¿Que puedo colocar en el Valor de una variable? set variable=(Aquí que puedo colocar) Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Nucleorion en 16 Mayo 2019, 08:57 am numeros y letras.
Ahora con lo aprendido haz pruebas y vete haciendo versiones del programa. Por ejemplo que te pregunte tu nombre y luego que te diga pepito tiene 10526 dias. Si guardas las versiones con nombres diferentes no vas a romper ni perder nada por hacer todas las pruebas que quieras. Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Mr. Bit en 18 Mayo 2019, 00:42 am Gracias! Y dime ¿Las variables deben ser escritas al principio del codigo o en donde se escriba no afecta nada?
Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Nucleorion en 20 Mayo 2019, 09:22 am en batch basta con crearlas antes de usarlas
Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Eleкtro en 20 Mayo 2019, 21:03 pm De por si, lo primero que en mi opinión cualquier persona te debería aconsejar, es usar cualquier otro lenguaje distinto a Batch. Tienes VisualBasicScript y PowerShell nativamente soportados en Windows, siendo ese último infinitamente más sofisticado (y no por ello más dificil de usar) que los dos anteriores.
Aparte, la manipulación de un archivo local con la única finalidad de almacenar 1 valor, lo veo completamente engorroso e innecesario. En otros casos y para otros lenguajes podría ser razonable, desde luego, mediante la serialización de objetos o a pelo escribiendo en un archivo de texto plano de inicialización (.ini), pero estamos hablando de Batch, y crear dependencias de archivos de texto plano para almacenar un único valor... En su lugar, puedes manipular una variable de entorno. O como alternativa, manipular directamente una entrada en el registro de Windows. Esto último es tedioso hacerlo en Batch por que dependes de un programa externo (como para casi todo lo demás), REG.EXE para poder realizar operaciones de lectura y escritura en el registro. Te recomiendo cualquier otro lenguaje, insisto. Por último, te muestro un ejemplo de batch-script utilizando una variable de entorno personalizada en la que puedes almacenar un valor de forma permanente... Código Por cierto, yo también publiqué una guía de aprendizaje de Batch:
Saludos. Título: Re: [Ayuda] Guardar Información en Batch Publicado por: Nucleorion en 21 Mayo 2019, 09:07 am Madre mia, pedazo de guía!! Muchas gracias Elektro
|