Autor Tema: Tutorial batch desde 0  (Leído 1931 veces)

Desconectado aguskpo

  • PHPer@ Fijo
  • ***
  • Mensajes: 135
  • Karma: 4
    • Ver Perfil
Tutorial batch desde 0
« en: 23 de Enero de 2008, 01:16:20 am »
Bueno gente! aca dejo mi tutorial 100% echo por mi:

Notas importantes:
1.los archivos se gusardan .bat (archivo.bat)
1.es importante poner @echo off al princion

Tutorial: Capitulo 1:

Mensajes/selecciones:
Mensajes:
Código: [Seleccionar]
echo off
echo Hola phperos!
pause
exit
Explicacion:
echo: permite escrivir un mensaje
pause:pausa el programa
exit:sale

Secciones:
Código: [Seleccionar]
@echo off
title Ejemplo
set/p seccion= hola a donde quieres ir? ( calculadora para calculadora):
if %seccion%==calculadora goto calculadora
echo.
echo.
pause>nul
:calculadora
echo Hola! bueno esto es un ejemplo! para ver como hacer una calculadora ve al otro capitulo
echo.
echo.
pause>nul
exit
Explicacion:
title: el titulo de la ventana
set/p:para que un usuario puede escrivir (sirve para secciones)
if %seccion%== (lo que tiene que escrivir el usuario para ir a la seccion) goto (nombre de la seccion): lleva a la seccion indicada
echo.:hace un "espacio"
pause>nul:pausa y separa
:(nombre seccion) : señala la seccion

Capitulo 3: Calculadora
Esto es extremadamente facil:
Código: [Seleccionar]
@echo off
set/p num1=Dime el primer numero que deseas sumar:
echo.
set/p num2=Dime el segundo numero que deseas sumar:
echo.
cls
set/a resultado= num1 + num2
echo.
echo.
echo %num1%
echo + %num2%
echo ______________
echo %resultado%
echo.
echo.
pause>nul
exit
Bueno, este codigo seguro lo entendieron porque tiene lo mismo que antes
restar:
Código: [Seleccionar]
@echo off
set/p num1=Dime el minuendo:
echo.
set/p num2=Dime el sustraendo:
echo.
cls
set/a resultado= num1 - num2
echo.
echo.
echo %num1%
echo - %num2%
echo ______________
echo %resultado%
echo.
echo.
pause>nul
exit

Capitulo 4: nombres,edades,preguntas....

Bueno este es mi ultimo tutorial por ahora, que explica como funciona lo de preguntar un nombre y que despues lo diga, empezemos:

Código: [Seleccionar]
@echo off
title ultimo capitulo
set/p nombre= Como te llamas?
echo.
echo.
echo Hola %nombre%! yo tengo 12 años
set/p edad= Y vos?
echo.
echo.
echo Tienes %edad%? Que bien, %nombre%!
set/p seguro= Estas seguro?
if %seguro%== si goto si
if %seguro%== no goto no
echo.
echo.
pause>nul
:si
echo Que bien!
pause>nul
echo.
cls
:no
echo Y porque me digiste eso antes?
pause>nul
exit

Explicacion:
cls: sirve para poder separa bien las secciones


Espero que hayan disfrutado mi tutorial!
Si ay un error me avisan


Parte del tuto proviene de: http://www.cristalab.com/tips/49576/programacion-avanzada-de-archivos-en-lotes-.bat
« Última modificación: 23 de Enero de 2008, 16:50:11 pm por G2K »

Comunidad PHPeros

Tutorial batch desde 0
« en: 23 de Enero de 2008, 01:16:20 am »

Desconectado aguskpo

  • PHPer@ Fijo
  • ***
  • Mensajes: 135
  • Karma: 4
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #1 en: 23 de Enero de 2008, 15:12:57 pm »
Capitulo 6: Mensajes en ventana
Descargar ejemplo: http://subimegratis.webspacemania.com/files/2f5be6_ejemplo.bat

Código: [Seleccionar]
@echo off
msg * Estas experimentando una cosa increible (por ahora)
echo.
set/p nom= Como te llamas?
echo.
echo.
msg * hola %nom%!
echo.
echo.
set/p edad= Cuantos años tienes?
ehco.
msg * Tienes %edad%? que bien!
echo.
echo.
msg * Visita www.phperos.net para aprender mas
pause
exit
Explicacion:
msg *: envia una "alerta"

Bueno luego ire poniendo mas...

Capitulo 7: apagar y alarmas de tiempo
Apagar/reiniciar:
Código: [Seleccionar]
shutdown -s -t 999999 -c "Esto se esta apagando"Explicacion:
-s: shout down
-t (tiempo): cuando apagar
-c:comentario

Si quieres cancelar el apagado puedes hacer esto:
Código: [Seleccionar]
shutdown -a
Reiniciar:
Código: [Seleccionar]
shutdown -r -f -t 0 -c "Luego volveras"Esto lo que hace es reiniciar la PC a fuerza bruta, si quieres puedes cambiar el -r, por -s  (r de reset, y s de shout down)

Alarmas de tiempo:
Código: [Seleccionar]
At 20:00 msg * Son Las 8 de la nocheEsto es muy facil de hacer, supongo que leyendolo lo vas a entender

Capitulo 8: Registro
Código: [Seleccionar]
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v MIBATCH.bat /t REG_SZ /d

C:\MIBATCH.bat
Explicacion:
REG_ADD: lo que hace es añadir tu batch al registro
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v MIBATCH.bat /t REG_SZ /d: Aqui cambiaremos MIBATCH.BAT  por el tuyo
C./MIBATCH.bat: aqui es donde esta nuestro batch actualmente

Capitulo 9:Leer Archivos externos
Código: [Seleccionar]
type "NombreDelArchivo.txt"Extra sencillo

Capitulo 10: FOR (para avanzados)
Nos sirve para repetir un comando varias veces, en distintas variables.
Un ejemplo, es este:
for /L %%i IN (0,1,21) DO (echo %%i)
En donde /L es para especificar que nuestro for se basara en un conteo de números.
Aquí se repetirá un Echo, que imprimirá números del 0 al 21.
%%i sera el nombre de la variable que almacenara datos
in (0,1,21) aquí especificamos que se repetirá del 0 al 1 y del 1 al 21.
do (echo %%i) Esto es la función que se ejecutara en cada repetición del comando, en este caso un echo que imprimirá la variable.
Batch en algunos casos SI reconoce entre mayúsculas y minúsculas, como en el caso de la variable %%i si esta se llamara %%I no seria reconocida como la misma.


Otro uso que puede ser aplicado en el FOR es el listado de carpetas o archivos, como veremos a continuación:
Listado de archivos:

Código :

Código: [Seleccionar]
@echo off
FOR %%x in (a*) DO echo %%x
pause

Este código, listaría todos los archivos que comienzan con A.
¿Por que? * (asterisco) es un signo comodín, por lo cual al poner a*, estamos diciendo cualquier archivo que tenga una A delante y luego cualquier cosa.
Otro ejemplo del uso de comodín, es listar archivos con extensión común como seria este:

Código :

Código: [Seleccionar]
@echo off
FOR %%x in (*.jpg) DO echo %%x
pause


Aqui nos estaria listando todos los archivos que tengan la extensión .jpg

Listado de Carpetas:
FOR /D %%x in (a*) DO echo %%x
Es casi lo mismo anterior, tan solo que al indicar /D solo se aplica a directorios.
Si quisiéramos que se listaran los directorios, juntos a los directorios que tienen estos dentro se ocupa /R
FOR /R /D %%x in (a*) DO echo %%x

y si quisiéramos listar todos los documentos que están dentro de una carpeta contando los que están dentro de carpetas se ocupa solamente /R (Sin /D)
FOR /R %%x in (a*) DO echo %%x


Capitulo 11: IF
Se puede ocupar para comparar, cadenas, números o para saber si existen archivos.
Ejemplo de sintaxis, if %cadena1% == %cadena2% OrdenAEjecutar
Que se podría leer de la siguiente manera. Si cadena1 es igual a Cadena2 ejecutemos la Orden OrdenAEjecutar.
También existe el NOT para ver si no son iguales.
if not %cadena1%== %cadena2% ejecutarAccion
Para saber si un archivo existe, se usa:
if exist "NombreDelArchivo" AccionAEjecutar
o también para ver si NO existe:
if not exist "NombreDelArchivo" AccionAEjecutar

No solo se puede ocupar el signo == para hacer comparaciones.
EQU, que es el equivalente a ==
NEQ, Sirve para cuando queremos ver Desigualdad.
LSS, Para verificar si el numero es Menor
LEQ, Para verificar si es menor o igual.
GTR, Si es mayor
GEQ, Si es Mayor e igual.

Un ejemplo de esto seria:

Código :

Código: [Seleccionar]
if 5 GTR 4 echo Hola

GENTE CREO QUE ESTOS SON LOS ULTIMOS CAPITULOS DE MI CURSO, ESPERO QUE AYAN APRENDIDO Y DISFRUTADO, YA QUE ME COSTO MUCHO
« Última modificación: 23 de Enero de 2008, 15:25:08 pm por aguskpo »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #2 en: 23 de Enero de 2008, 15:23:34 pm »
Pues vaya esta bastante currado el tutorial.
Y la verdad que si es desde 0.

Te dejo un karma+!
Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado aguskpo

  • PHPer@ Fijo
  • ***
  • Mensajes: 135
  • Karma: 4
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #3 en: 23 de Enero de 2008, 15:25:55 pm »
Ya modifique!

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #4 en: 23 de Enero de 2008, 16:15:32 pm »
Esta muy bien, pero es una pena que algunas cosas esten copiadas de aqui:
http://www.cristalab.com/tips/49576/programacion-avanzada-de-archivos-en-lotes-.bat
Y no das ni un triste "Sacado en parte de..."

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Tutorial batch desde 0
« Respuesta #5 en: 23 de Enero de 2008, 16:50:52 pm »
Gracias por avisar TLX ya e editado y e puesto un pequeño comentario abajo ;)
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado aguskpo

  • PHPer@ Fijo
  • ***
  • Mensajes: 135
  • Karma: 4
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #6 en: 23 de Enero de 2008, 17:11:25 pm »
Gracias G2K, me olvide de poner la fuente de IF, OF, ora y alarma
Lo demas 10% mio

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Tutorial batch desde 0
« Respuesta #7 en: 23 de Enero de 2008, 17:40:48 pm »
Es importante ponerlo sobretodo para no mal hambiente entre usuarios del foro o entre foros ;)

Un saludo!
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado aguskpo

  • PHPer@ Fijo
  • ***
  • Mensajes: 135
  • Karma: 4
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #8 en: 23 de Enero de 2008, 17:43:32 pm »
Masomenos el 80% del tuto es mio

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Tutorial batch desde 0
« Respuesta #9 en: 23 de Enero de 2008, 23:20:30 pm »
Masomenos el 80% del tuto es mio
Ok ok, pero eso se avisa antes ;)
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado Erik

  • PHPero Avanzado
  • ****
  • Mensajes: 271
  • Karma: 14
  • Sexo: Masculino
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #10 en: 24 de Enero de 2008, 00:29:24 am »
Como seguramente no sabes de batch y has copiado el tutorial.
Aclaraciones: cls, clearscreen, sirve para limpiar la pantalla.
goto es un bucle utilizado principalmente en C y otros lenguajes como vb para ir a un sitio sin tener que pasar por mitad del codigo.
el echo no es para escribir mensajes ni tonterias, es para mostrar cadenas, o algun tipo de dato o texto plano.
Código: [Seleccionar]
<?php
$myset 
"PHPER@ AVANZADO";
echo 
"Yo soy".$myset;
?>

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Tutorial batch desde 0
« Respuesta #11 en: 24 de Enero de 2008, 15:56:23 pm »
Goto no es ningun bucle.
En C se le conoce comunmente como el "Goto Maldito" porque siempre dio muchos quebraderos de cabeza a los programadores.
Se utiliza para ir a un lugar concreto, que no es lo mismo que USARLO COMO bucle.
Ademas, echo sirve para mostrar datos en pantalla, que viene siendo lo mismo que escribir mensajes y tal.
No hay que ponerse tan tiquis miquis con estas cosas que todos hemos entendido.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es