Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Fran2013 en 12 Noviembre 2013, 03:19 am



Título: (SOLUCIONADO)[Batch] Error en codigo. Ayuda!
Publicado por: Fran2013 en 12 Noviembre 2013, 03:19 am
Hola y gracias por leer el tema.
Hace poco empece con batch.
La verdad que me pareció un buen lenguaje de scripting sobretodo
por lo simple que es y por las incontables maneras de interactuar con el  propio
sistema operativo .

El problema es el siguiente:  eh creado un codigo que hace una pregunta y luego
almacena la respuesta en una variable. Luego pasa a un if donde se cumprueba si la respuesta es "SI". si la respuesta es "SI" vuelve ha preguntar lo mismo...

Código:
@echo off
:pregunta
set /p %hola% = Bucle Infinito? :  
if %hola%==SI goto pregunta

Agradezco que me indicaran el fallo.



SALUDOS.


Título: Re: [Batch] Error en codigo. Ayuda!
Publicado por: Eleкtro en 12 Noviembre 2013, 05:08 am
Código:
@echo off
:pregunta
set /p %hola% = Bucle Infinito? :  
if %hola%==SI goto pregunta

El fallo principal es que al setear debes escribir el nombre de la variable sin el operador "%":
Código:
set /p hola

Aparte de eso no debes dejar ningún espacio antes ni después del operador "=", y la escritura del código en general sigue los malos hábitos de los que empiezan a programar en Batch, te suegiero que te acostumbres a escribir de la manera que te muestro a continuación porque de lo contrario te van a salir muchos errores a menudo:

Código
  1. @Echo OFF
  2.  
  3. :pregunta
  4. SET /p "hola=Bucle Infinito?:"  
  5.  
  6. IF /I "%hola%" EQU "SI" (goto :pregunta)
  7.  
  8. Pause&Exit

batch.
me pareció un buen lenguaje de scripting
por las incontables maneras de interactuar con el  propio sistema operativo.

Solo puedo decirte que a la larga te darás cuenta de que es todo lo contrario y que estás perdiendo el tiempo (sobretodo viniendo de Python),
Batch es práctico para tareas simples, muy simples, y sobre lo de las incontables maneras de... se quedan en un par de comandos internos útiles, el resto son aplicaciones (llamados comandos externos) que no forman parte del lenguaje y los puedes llamar desde cualquier otro lenguaje,
en resumen cualquier lenguaje es capaz de hacer lo mejor que se pueda llegar a programar en Batch, en la mitad de tiempo, y con las incontables mejoras que esto supone, sobretodo en velocidad de ejecución, Batch es MUY lento.

Saludos!


Título: Re: [Batch] Error en codigo. Ayuda!
Publicado por: Fran2013 en 12 Noviembre 2013, 05:40 am
El fallo principal es que al setear debes escribir el nombre de la variable sin el operador "%":
Código:
set /p hola

Aparte de eso no debes dejar ningún espacio antes ni después del operador "=", y la escritura del código en general sigue los malos hábitos de los que empiezan a programar en Batch, te suegiero que te acostumbres a escribir de la manera que te muestro a continuación porque de lo contrario te van a salir muchos errores a menudo:

Código
  1. @Echo OFF
  2.  
  3. :pregunta
  4. SET /p "hola=Bucle Infinito?:"  
  5.  
  6. IF /I "%hola%" EQU "SI" (goto :pregunta)
  7.  
  8. Pause&Exit

Solo puedo decirte que a la larga te darás cuenta de que es todo lo contrario y que estás perdiendo el tiempo (sobretodo viniendo de Python),
Batch es práctico para tareas simples, muy simples, y sobre lo de las incontables maneras de... se quedan en un par de comandos internos útiles, el resto son aplicaciones (llamados comandos externos) que no forman parte del lenguaje y los puedes llamar desde cualquier otro lenguaje,
en resumen cualquier lenguaje es capaz de hacer lo mejor que se pueda llegar a programar en Batch, en la mitad de tiempo, y con las incontables mejoras que esto supone, sobretodo en velocidad de ejecución, Batch es MUY lento.
 
Saludos!

Muchas Gracias Electro, esa pequeña correcion vale muchos errores en este lenguaje. La verdad es que pensaba utilizar batch para tareas simples...
Aunque como tu dices , es mucho mas eficiente programar por ejemplo en python
que en batch.

SALU