Tutorial Batch, para los que se adentran

Tema en 'Soft y Hard' comenzado por el_negro, 31/Ago/2008.

  1. el_negro

    el_negro Cuevino +1

    Ingreso:
    1/Dic/2005
    Mensajes:
    996
    Ubicación:
    En una casa con una puerta.
    Buenas a todo, bueno he pensado en crear un tutorial de Batch para la gente del foro que quiere aprender Batch, la verdad esque voy a estar un largooo rato, y espero que no me olvide nada. Podeis criticar, dar opiniones (y espero que lo hagais) sobre el tuto.

    Por cierto, si alguién quiere subirlo a su web, o quiere “colarlo” a otra página o foro. Que ponga su autor. Osea mi nombre.. jeje alla va.
    Empecemos con una explicación de lo que es el bat

    Definición de Bat:
    Son archivos por lotes, es decir, que su código se escribe en texto plano (blog de notas, Edit, Wordpad, etc..) y va desde arriba hasta abajo. No necesita un compilador, solo al terminar el códig, nos dirigimos a Guardar como...--->nombre.bat

    Nota : Es preciso escribir la extensión bat porque si no, no funcionaria.

    Vamos a ver, yo usaré mucho el comando ECHO para que comprendáis un poco mejor como va la cosa.. Pero pensar que se pueden usar todos los comandos que queramos.

    @echo off
    cd \
    echo hola
    pause
    exit


    Este es un sencillísimo bat, cuando lo abramos se verá lo siguiente:

    [​IMG]

    Si abrimos la shell, desde inicio --> ejecutar -->command.com y marcamos el código paso a paso veremos lo que pasa. El @ del echo off, permite que no se vea el comando que va a continuación, pero no será necesario marcarlo siempre, si el bat es pequeño. El comando cd \ (Change Dir) quiere decir que cambie el directorio a \ que simboliza raíz, osea C:\ o D:\ bueno nuestro disco principal.
    La programación batch se basa en los comandos de el tan conocido como MS-DOS por lo tanto, no tendremos tantas funciones como las puede tener C++ o VB.

    Redireccionamientos:
    Abrimos una shell, lo primero que veremos será C:\Documents and settings\Usuario.
    (Win XP), lo que haremos será ir a C:\ marcando cd \. y podremos ver C:\ (opcional).
    Ahora marcamos :
    echo hola > hola.txt
    minimizamos la shell abrimos C:\ y veremos un archivo (hola.txt) en el que se encontrará dentro “hola”. Volvemos a la shell y marcamos :
    echo adios >> hola.txt
    Al abrirlo de nuevo, veremos :
    hola
    adios
    En cambio, si marcamso en la shell
    echo change > hola.txt
    al abrir el hola.txt todo lo que estava escrito, se abrá borrado, por “change”.
    Resumen :
    > Crea o Remplaza en un archivo
    >> Salta hasta la siguiente línea,

    Espero que esto no os haya causado ningún misterio, ni problemas.
    Variables:

    Espero que aquí no os perdáis. Sinceramente, no se muy bien como definir esto. Una variable es un espacio de memoria donde se le puede asignar un comando y puede variar. Para que lo comprendáis mejor, os lo explicaré con distintos ejemplos :
    Para empezar, en la shell marcaremos set /?
    Echo esto, (después de leerlo) marcaremos set var=ElNegro.
    Estamos asignando ElNegro a la variable var (inventada)
    Ahora marcaremos echo %var% y obtendremos este resultado:

    [​IMG]

    Si marcamos set a secas, veremos todas las variables que ya existen en nuestro PC, entre otras veremos var=ElNegro, pero cuando cerremos la shell, esta variable desaparecerá, tranquilos .

    Nota : Cuando la consola llama a una variable, siempre, repito siempre tiene que tener % %, en algunas ocasiones llevan %% %% pero eso ya lo comentaré más tarde.

    Si nos emos leído la aydua de set /? observamos que tiene unos parametros como /P o /a. Utilizaremos /P como primer ejemplo.
    @echo off
    cd \
    set /P var1=Escribe tu nombre
    echo %var1%
    pause
    exit

    Si lo abrimos, veremos que el programa nos pide como nos llamamos, y lo que escribamos se almacenará en la variable %var1%, que después será llamada por el Comando ECHO. Y el comando PAUSE hará parar nuestro programa.

    Nota : Si no huvieramos marcado el comando Pause, y si no marcamos una “pregunta”con Set. El programa se cerrará, en el caso de que no lo huvieramos marcado. No huvieramos podido ver Echo %var1%.

    Podemos poner todas las varibles que queramos.
    @echo off
    set /P var=tu nombre :
    set /P var1=tu apellido :
    echo Usted se llama %var% %var1%
    pause
    exit.

    Si empezáis a comprender el sistema, sabréis lo que va a ocurrir cuando abráis el programa

    Pasemos ahora al parametro /a.
    Este sirve para hacer calculos. Vamos a la hsell y marcamos set /a 1 + 2
    el resultado que nos dará la shell será 3. Ahroa en la shell marcamos :
    set var=1
    set var2=2
    set /a %var% + %var2%
    resultado = 3

    Pero en un bat las cosas no son del todo igual, para conseguir el resultado, podriamos hacerlo de la siguiente manera.
    @echo off
    set var=1
    set var3=2
    set /a resultado=%var%+%var3%
    echo %resultado%
    pause
    exit

    Si comprendéis, hacemos que el resultado del calculo 1+2 se almacene en la variable %resultado% que será mostrado por ECHO.

    Comandos de condición:

    Si pasa esto, haz esto. Esa es la traducción de este comando. Pero tenemos que dejar una cosa clara.
    Para que este comando funcione en según que ocasiones, necesitamos utilizar, lo que son las etiquetas. Ejemplo :
    :menu
    @echo off
    cls
    cd\
    set /P var=Escribe tu nombre:
    if %var%==%var% (goto next) else goto menu
    :next
    echo bien echo
    pause
    exit


    Explicación:
    Primero pedimos una variable, con set /P, y con el comando if, decimos, si en %var% hay algo marcado (%var%) ves a “next”, sino (else) vuelve a “menu”.El trio IF, SET, GOTO es genial, para la programación Batch. Otro ejemplo :
    @echo off
    :menu
    set /P var1=Deseas realmente borrar el archivo ? s/n :
    if %var1%==s goto si
    if %var1%==n goto no
    :si
    echo tu archivo a sido borrado satisgfactoriamente
    del /S /Q archivo.txt
    goto menu
    :no
    echo bueno pues gracias por usar mi programa
    pause
    exit

    Bueno hasta aquí el tutorial, sino será bastante grande, y esto para el básico creo que ya está bien, ahoraa os toca a vosotros dejar volar vuestra imaginación. Pensar que tenéis muchos comandos en MS-DOS, que podéis verlos marcando Help en la consola, pero no todos están allí. Asi que a investigar.
     
    #1
    Última modificación: 31/Ago/2008
    A naku le gusta esto.
  2. naku

    naku Evangelista Friki

    Ingreso:
    7/Ago/2006
    Mensajes:
    974
    Leyendo... Fueron "Nakutitos..."..por ahora paro, porque tengo poco tiempo, pero mañana sigo... igual creo que lo voy a llevar a la escuela para leerlo en la hora de digitales que el profe se quebro y el suplente no va las primeras dos horas porque no puede, asi que en unos dias seguro que me lo aprendo...
     
    #2
  3. el_negro

    el_negro Cuevino +1

    Ingreso:
    1/Dic/2005
    Mensajes:
    996
    Ubicación:
    En una casa con una puerta.
    Ok, espero que lo entiendas ;)
     
    #3

Compartinos

Cargando...