PDA

Ver la versión completa : Ayuda Batch



pixicato
24-01-2011, 17:42
¡Hola Hack Hispano!
En estas semanas no para de leer y documentarme acerca del MS-DOS, leyendo y leyendo más tutoriales, ezines, googleando...
Incluso leyendo todo tipo de información de los datos que os mostraré ahora sigo sin entender su función y como se ejecutan. Hablo de los siguientes comandos:
"if" "for" ">" ">>" "<" "|" y también de eso de echo %1 %2 ... sigo sin saber usarlos
Si me pudieran dar una explicación sencillisima, de su función y ejecución se lo agradeceria muchísimo.

Un cordial saludo a toda la comunidad :)

hckr
24-01-2011, 18:56
Dime sinceramente: de qué te va a servir MS-DOS en tu vida? quiero decir, ¿no sería más util que aprendieras C, o java? msdos sólo sirve exclusiva y sólamente para Windows. Solo te sugiero que reconsideres la opción de aprender algo, que es más dificil, pero al menos te va a servir de algo... Ni si quiera es un lenguaje de programación (I think, creo que era un pseudolenguaje).

pixicato
24-01-2011, 20:15
Hola hckr:

Podría ser más util enfocandolo desde un entorno laboral, pero para un entorno de "hobbies".

Un saludo

clarinetista
24-01-2011, 20:19
Joder hckr como se nota lo jovenes que sois :D
MSDOS es un sistema operativo propio creado por microsoft, anterior a los entornos gráficos Windows.Lo que ahora conocemos como consola de comandos es un pseudo sistema con algunos de los comandos e instrucciones de ese sistema.
En cuanto a la respuesta, busca manuales de programacion bajo msdos que hay millones en Google

hystd
24-01-2011, 21:45
hckr, sirve y de mucho. A veces no todo es a base de clicks, y cuando necesitas hacer tareas repetitivas el lenguaje de scripting puede ser tu mejor aliado.

Es cierto que siempre puedes hacer una cosa de muchas formas... puedes automatizar la anterior tarea por ejemplo, con una aplicación de escritorio, con sus ventanas y botones, pero créeme, el tiempo de desarrollo que ganas haciendo un script, en vez de un ventanuko, luego se agradece.

Un saludo.

RaidMan
25-01-2011, 00:12
Venga, me voy a enrollar y voy a atender la peticion de alguien que parece que tira por la "old school" :D


Comando IF:
El comando IF se utiliza para establecer sentencias condicionales. Es decir, en el caso de que se de una situacion hacer tal cosa.

IF not i==0 (msg * Hola mundo!)


Lo cual mostrara un mensaje en pantalla diciendo "Hola mundo!" en el caso de que i no sea igual a 0



Parametros de redireccion de salida:
>, >>, <

Sirven para guardar la 'salida' de un comando en un archivo.
ejemplo:

DIR >> arbol.txt

La salida del comando DIR (que realiza un listado de los directorios de tu ubicacion actual o de una definida) se ha guardado en el archivo 'arbol.txt'
Si la > es doble (>>) guardara la salida SIN BORRAR lo que habia anteriormente en archivo

Segun creo el '|' es una puerta AND, aunque no recuerdo si es '||' o '|' a secas...
En MS-Dos muchas veces es probar y probar hasta que rula :)


Comando FOR:
La utilizacion mas comun de un bucle FOR en MS-Dos es la siguiente:

FOR /L %var IN (inicio, paso, fin) DO comando


ejemplo:

FOR /L %i IN (0, 1, 10) DO msg * Hola mundo!


Lo cual mostrara en pantalla (11 veces, desde 0 hasta 10, aumentando 1 el contador cada vez que haga el bucle) el mensaje "Hola mundo!"



Paso por parametros:
%0, %1, %2... etc

Estos son parametros que puedes pasar a un programa hecho en MS-Dos.
Es decir, al crear un programa defines que deben pasarsele unos parametros al ejecutarlo.

ejemplo:

echo %1 %2

Guardas esto como programa.bat y al ejecutar programa.bat haras:

programa.bat Hola Mundo!

El 1º parametro (%1) es el 'Hola'. El 2º parametro (%2) es el 'Mundo!'


El parametro %0 guarda la ruta de tu archivo



Espero haber contestado tus dudas, en caso contrario sigue preguntandolas sin preocuparte de que se considere o no un lenguaje de programacion.



MS-Dos es algo practicamente esencial para alguien que quiere manejar correctamente un S.O Windows. Sera antiguo, pero aun hay muchas cosillas que se pueden hacer con el MS-Dos que al tratar de programarlo de otra forma resultan muy complicadas (matar procesos que se ponen tontos, forzar la eliminacion de archivos, la copia de archivos sin preguntar si se desea sobreescribir uno ya existente... y un monton de etc)


La mayor ventaja de MS-Dos es que Windows tiene la cuota de mercado mas alta, por lo que casi siempre encontraras un equipo en el que utilizarlo.



Un saludo

PD:
Joder hckr como se nota lo jovenes que sois :D
Sera que yo naci viejo Clari :D
Anda que no habre tirado lineas de codigo para aprender este "pseudolenguaje"

hystd
25-01-2011, 21:44
Se puede pensar (erróneamente, claro está), que batch no es un lenguaje de programación porque no es compilado... y permítanme decir, que eso es un error. Si nos ponemos así, HTML, XML, JavaScript, PHP, Bash, etc..., tampoco lo deberían ser, ¿no?, pues son interpretados.

En fin, batch, como cualquier lenguaje de scripting, ES UN LENGUAJE DE PROGRAMACIÓN.

Un saludo.

chewarrior
25-01-2011, 22:43
En fin, batch, como cualquier lenguaje de scripting, ES UN LENGUAJE DE PROGRAMACIÓN.


Bravo por ti, alguien que reconoce que batch es un lenguaje script, condiciones,bucles,variables si eso no es un lenguaje no se que **** lo sera.




Dime sinceramente: de qué te va a servir MS-DOS en tu vida? quiero decir, ¿no sería más util que aprendieras C, o java?


Por cierto tu no eres el que programa en Visual Basic xd.

YO empeze con batch, fue el primer contacto con un lenguaje de programacion y me parece una buena manera de empezar, ademas con el diseño de malware aprenderas a moverte por los registros de windows (el error mas grande de windows xd), utilizar los comandos del cmd y muchas mas cosas, me parecer como ya e dicho una manera estupenda de empezar.

RaidMan
25-01-2011, 23:47
Por cierto tu no eres el que programa en Visual Basic xd.




Bueno bueno, haya paz, esto no es un concurso para ver quien mea mas lejos...

Yo tambien empece con BATCH, me parecio lo mas al alcance de mi mano con un S.O Windows en mi PC.
Que si me sirvio?? SI. DE MUCHO. Tal vez no sea lo mejor para aprender como se estructura un programa en condiciones, pero te dara una idea de como funciona un sistema de archivos Windows y de como empezar con algunas funciones basicas (como pueden ser los bucles y los condicionales).


Si quieres empezar con un lenguaje de programacion que pueda darte una base mas completa podrias probar a seguir con PASCAL (bien es cierto que ya no es casi utilizado, pero cada lenguaje sirve para cada necesidad)
Te dara una idea de como funcionan las estructuras de un lenguaje de programacion mas complicado (como pueden ser C, Python, C++... etc) y fundamentalmente te dara soltura al crear un programa. Definira tu forma de programar (hay montones de formas de programar algo y cada persona lo hace de una manera diferente) y lo bueno que tiene es que casi todos los lenguajes de programacion tienen mas o menos la misma estructura en sus funciones.




Un saludo

hckr
26-01-2011, 16:07
Que os creeis que yo no empecé con los gusanitos en batch? que no empecé programando un programa que te da a escoger el tipo de virus, la reproducción...etc? Lo único, es que me di cuenta de que se puede llegar más lejos con otros lenguajes más potentes, que sí, son más complejos, pero yo prefiero profundizar (y digo realmente profundizar, hasta dentro del todo) con un lenguaje como C, C++, Java, o a lo mejor Phyton, que meterme en ms-dos... y una cosa por la que dejé batch: SÓLO WINDOWS. Todos los lenguajes nombrados anteriormente son multiplataformas.





Por cierto tu no eres el que programa en Visual Basic xd.


Sí, ¿por? ya lo he dejado, sigo haciendo miniaplicaciones, pero como a windows le van a dar por cul*, prefiero algo realmente útil. Pero hay una ventaja, muy ventaja, de VB: lo fácil que es en relación con lo que se puede llegar a hacer con VB.


Un saludo.

hystd
26-01-2011, 22:31
Muy bien, esperamos veros a todos por el taller de programación... que para eso está, para profundizar ;).

Mi respuesta era sencilla, y era dejar claro que batch es un lenguaje de programación más. No debeis comparar, pues la comparación de un lenguaje de scripting con uno que no es de scripting es como comparar una bicicleta con un coche... ni el coche es mejor que la bici, ni viceversa, cada uno ofrece sus ventajas e inconvenientes. Y según el objetivo, a veces convendrá uno más que otro. ¿No hace falta que nombre los pros y los contras no?

En el taller se pretende, entre otras muchas cosas, que el usuario sepa elegir en cada momento que tecnología debe usar, y nunca nunca, decir "Esta tecnología, lenguaje o sistema operativo, en general es mejor o peor que este otro". Pero si saber decir: "Esta tecnología, lenguaje o sistema operativo es mejor que este otro para este caso en concreto".

Espero que eso, como consejo, lo tengais claro. Yo lo he ido aprendiendo con el tiempo.

Un saludo.

hckr
26-01-2011, 22:42
Perfecto, hystd, claro como el agua. Voy a mirarme el tema de los talleres de prg. De todas formas, sigo diciendo: ¿No creeis que es un poco una "pérdida" de tiempo prfundizarse en algo, que solo está para una sola plataforma? Entiendo que cuando salió windows la gente se metió con el basic, porque era la revolución y se le veía futuro, y no digo que windows no lo tenga, pero con la de limitaciones que tiene y con la variedad de SOs que hay ahora mismo... pero bueno... deberíamos zanjar ya esto.

A los talleres de programación!!! peripapiiiiiipapiiiiii!!!!! :0=


un saludo.

clarinetista
26-01-2011, 22:53
Aunque os parezca increible hay cosas que solo pueden hacerse en batch.....

hystd
27-01-2011, 00:26
De todas formas, sigo diciendo: ¿No creeis que es un poco una "pérdida" de tiempo prfundizarse en algo, que solo está para una sola plataforma?

Vuelve al ejemplo de la bici y el coche... ¿Es perdida de tiempo profundizar en usar la bici en vez del coche (o al revés)?.

Si el problema básico está planteado para una solución bajo Windows, tal vez te interese batch, y saberlo en profundidad, más que hacerlo en VB, Delphi, o .NET, o no... depende del tiempo, recursos de los que dispones, usabilidad, reutilización, etc... Igualmente si el problema está planteado para un servidor de base de datos mysql, de bajo coste... tal vez te interese PHP en vez de Java... Y otro ejemplo más, por si no ha quedado claro, Si tienes el núcleo de un Linux embebido en un microcontrolador, que debe atender señales en tiempo real, tal vez te interese C, más que instalar una Máquina Virtual en dicho sistema para poder utilizar Java. Igualmente si tu problema ha de responder a requisitos de multiusuario, grandes transacciones de datos, etc... tal vez te interese más Oracle que MySQL o SQL-Server, y Java, más que PHP o ASP.

Como ya he dicho, no quiere decir que una tecnología sea mejor que la otra, y por tanto no merezca la pena profundizar en ella, cada una tiene sus ventajas e inconvenientes, se utiliza para ciertas cosas, y se adapta mejor a un caso u otro. En el taller se intentará disponer de todo lo necesario para que cada cual profundice en lo que más le convenga, haciéndolo de una forma práctica.

Un saludo.