Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 20 de 25

Tema: Programacion Batch

  1. #1 Programacion Batch 
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Bueno, creo que aqui lo pondre, a ver que les parece, bienvenidas las criticas, salu2.
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  2. #2  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Hola, bueno aqui esta el pequenio tutorial o manual para programacion batch que prometi poner.

    Antes que nada empezare escribiendo algunos comandos de DOS, para los que no los conocen, despues pondre como se programa en batch y por ultimo algunos archivos de registro en los que se encuentra informacion importante del sistema.

    A ver si me entienden porque acabo de aprender a programar en batch y no se mucho, pero supongo que alguien mas me ayudara corrigiendo mis errores (en pocas palabras soy newbie jejje).



    COMANDOS DOS


    Assoc
    Muestra o modifica las asociaciones de extensión de nombre de archivo. Si no se utilizan parámetros, el comando assoc muestra una lista de todas las asociaciones de extensión de nombre de archivo actuales.


    Sintaxis
    assoc [.ext[=[tipoDeArchivo]]]

    un ejemplo seria:
    C:\> Assoc .mp3=WinZip

    esto lo que haria es que todos los archivos mp3 los abriria con el WinZip, bueno trataria jejje.

    AT
    El comando at sirve para programar tareas, tambien sirve para ver las tareas programadas existentes.

    Sintaxis

    at \\nombreDeEquipo hora /interactive | /every:fecha,... /next:fecha,... comando

    at \\nombreDeEquipo Id /delete | /delete/yes

    Bueno esto se ve muy complicado pero no lo es, nombredequipo es la coputadora en la que quieres que se ejecute, si quieres que se ejecute en tu ordenador no pongas \\nombredeequipo, hora es la hora (00:00) a la que quieres que se ejecute, /interactive es tan solo para que veamos cuando se esta ejecutando el proceso, y despues every significa cada en espaniol, y next significa siguiente, asi que nada mas le agregan la fecha, y por utlimo el comando a ejecutar, ejemplo:

    C:\> at 23:00 /interactive /every:monday telnet host o ip

    C:\> at \\Sergio 05:00 /every:03 cmd /c copy C:\Documentos\*.* C:\MisDocumentos

    Si quieren que el comando se ejecute cada dia: every:"dd"

    Si escriben at sin nada mas en la linea de comandos, les aparecera la lista de tareas y su estado, en esta tabla viene una columna que dice ID, la cual le da un numero a cada tarea/proceso, asi que para eliminar una tarea tendrian que escribir lo sig.:

    C:\> at "ID" /del

    del es el comando para borrar archivos, supongo que ya lo sabian, pero por si la moscas se los dije je.

    Attrib
    Muestra, establece o quita los atributos de sólo lectura, modificado, sistema y oculto asignados a los archivos o a los directorios. Utilizado sin parámetros, attrib muestra los atributos de todos los archivos del directorio actual.


    Sintaxis
    attrib [{+r | -r}] [{+a | -a}] [{+s | -s}] [{+h | -h}] [[unidad:][rutaDeAcceso] nombreDeArchivo] [/s[/d]]

    Bueno para ver los parametros escriban el comando mas /? son demasiados para cada comando y no pienso ponerlos aqui, por ejemplo: C:/> attrib /?

    ejemplo: C:/> attrib +s +h -r C:\Mis Documentos\archivo.extension

    Convierte al archivo.extension como archivo del sistema, lo oculta y le quita el atributo de lectura.

    Chdir
    Nos muestra el directorio en el que estamos, y nos sirve tambien para cambiar de directorio, ejemplos:

    Sintaxis
    chdir [[/d] [unidad:][rutaDeAcceso] [..]] [[/d] [unidad:][rutaDeAcceso] [..]]
    cd [[/d] [unidad:][rutaDeAcceso] [..]] [[/d] [unidad:][rutaDeAcceso] [..]]

    C:/> chdir C:\Mis Documentos\Juan
    C:/> chdir C:\Mis Documentos\Ivan


    Cmd
    Inicia una nueva instancia del intérprete de comandos, Cmd.exe. Si se utiliza sin parámetros, cmd muestra información de versión y copyright del sistema operativo.

    Con este comando puedes iniciar una ventana de ms-DOS

    Copy
    Copia uno o más archivos de una a otra ubicación.

    Sintaxis
    copy [/d] [/v] [/n] [{/y | /-y}] [/z] [{/a | /b}] Origen [{/a | /b}] [+Origen [{/a | /b}] [+ ...]] [Destino [{/a | /b}]]

    ejemplo:

    C:/> copy juliaroberts.jpg pamelaandersson.jpg \a

    Del (erase)
    Elimina los archivos especificados.


    Sintaxis
    del [unidad:][rutaDeAcceso] nombreDeArchivo [...] [/p] [/f] [/s] [/q] [/a[:atributos]]
    erase [unidad:][rutaDeAcceso] nombreDeArchivo [...] [/p] [/f] [/s] [/q] [/a[:atributos]]

    Ejemplo
    C:/> del C:\Mis Documentos tarea.doc

    Nota:Existe un comodin que es el *, este significa todos, bueno mas o menos, y se puede utilizar de la sig forma:

    C:/> del foto*.*
    borra todos los archivos que empiecen por foto y algo mas, con cualquier extension.

    C:/> del foto1.*
    borra todos los archivos con el nombre foto y cuaquier extension.

    C:/> del *.jpg
    borra todos los archivos con extension .jpg

    C:/> del *.*
    borra todos los archivos con cualquier nombre, cualquier extension en ese directorio.

    Bueno despues de esta aclaracion prosigamos.

    Dir
    Muestra una lista de los archivos y subdirectorios de un directorio. Si se utiliza sin parámetros, el comando dir muestra la etiqueta de volumen y el número de serie del disco, seguidos de una lista de directorios y archivos del disco, que incluye sus nombres y la fecha y la hora en que fueron modificados por última vez. Para archivos, dirmuestra la extensión y el tamaño en bytes. Dir también muestra el número total de archivos y directorios enumerados, su tamaño acumulado y el espacio libre (en bytes) del disco.


    Sintaxis
    dir [unidad:][rutaDeAcceso][nombreDeArchivo] [...] [/p] [/q] [/w] [/d] [/a[[:]atributos]][/o[[:]orden]] [/t[[:]campoDeHora]] [/s] [/b] [/l] [/n] [/x] [/c] [/4]

    ejemplo:
    C:/> dir
    muestra una lista de archivos del directorio actual.

    Con este comando tambien se pueden utilizar los comodines, ejemplo:
    C:/> dir *.jpg

    Echo
    Activa o desactiva la característica de presentación de comandos en la pantalla o muestra un mensaje. Si se utiliza sin parámetros, echo muestra la configuración actual de presentación.


    Sintaxis
    echo [{on | off}] [mensaje]
    Parámetros
    { on| off}

    Bueno este comando lo veremos mas adelante para programar, lo unico que hace es, si escribes echo on comando, se vera en pantalla el comando, o si escribes echo off comando no se vera en pantalla.

    Exit
    Sirve para salir de la linea de comandos o paa regresar a la terminal anterior, por ejemplo cuando hacemos un ftp, si escribimos exit, saldra de la ejecucion de ftp.

    Findstr
    Busca patrones de texto en archivos utilizando expresiones regulares.

    Por ejemplo
    C:/> findstr "hola como estas" carta.txt
    Última edición por surfman; 25-09-2007 a las 14:16
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    bueno la verdad es que he tenido mucho trabajo (mas dinero jejje), pero por lo menos hice un pequenio pedacito por el momento, voy a seguir y si sigue despierto lo posteo, si no maniana.

    Para estos comandos me base en la guia de referencia de comandos de m#@$soft, aqui esta el link para que vean todos, y al rato les pongo otra parte del mini tuto.

    http://www.microsoft.com/technet/pro....mspx?mfr=true

    tengan encuenta que no todos los comandos sirven en todas las versiones dde guindows, asi que chequenle, salu2.
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  4. #4  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Aqui esta otro pedazito jejej, bueno, despues de esto seguire con la programacion, ya si me encuentro otros comandos que crea que son utiles los ire poniendo por aqui.


    Ftype
    Muestra o modifica los tipos de archivos empleados en asociaciones de extensiones de archivo. Cuando se usa sin parámetros, ftype muestra los tipos de archivo que tienen definidas cadenas del comando open.


    Sintaxis
    Ftype [tipoDeArchivo[=[cadenaComandoOpen]]]

    Bueno este comando no se bien como se utiliza, solo se que sirve para asociar a cada programa una ruta de acceso, o sea que con este comando podemos cambiar con que programa se abrira un archivo, es similar al comando assoc, pero no es lo mismo, si alguien me podria ayudar a explicar este comando se las agradeceria, si no ya saben, ahi esta google para que lo encuentren mejor, pero lo que deben saber es que este comando es muy importante, con el podriamos descofigurar el sisema. Cuando entienda bien este comando cambiare este texto.

    Mkdir
    Crea un directorio o un subdirectorio.


    Sintaxis
    mkdir [unidad:]rutaDeAcceso

    ejemplo
    C:/> mkdir \albums\fotos\verano
    C:/> mkdir \ya\comprendieron\verdad


    Path
    Establece la ruta de acceso de comandos en la variable de entorno PATH, que es el conjunto de directorios utilizados para buscar archivos ejecutables. Si utiliza path sin parámetros, se mostrará la ruta de acceso de comandos actual.


    Sintaxis
    Path [[%path%] [unidad:]rutaDeAcceso [;...]]

    Este comando nos sirve para poder acceder a los archivos ejecutables desde cualquier directorio, especificando su ruta para que el sistema sepa donde encontrarlos, y asi al escribir solo el nombre del archivo este se ejecutara, el unico inconveniente es que al reiniciar el sistema tendras que especificarlos de nuevo, creo que hay una forma de lograr que no se borren estos paths, pero no se como aun, creo que se tiene que modificar un archivo que se inicie con windows, no se si alguien pueda ayudar con esto tambien.

    ejemplos
    C:/> path=c:\Mis Documentos
    si dentro de la carpeta Mis Documentos tenemos un archivo.bat(que es la extension para los programitas que vamos a hacer), este se ejecutara cuando escribas archivo.bat en la linea de comandos, sin importar en que directorio te encuentres, si quieres crear mas de un path utilizas el ;, veamos:

    C:/> path=c:\fotos;c:\misbat;c:\mis documentos


    Pause
    Suspende la ejecución de un programa por lotes y muestra un mensaje que pide al usuario que presione cualquier tecla para continuar.


    Sintaxis
    pause

    Bueno este lo veremos mas adelante en la programacion batch, pero pueden teclear pause en la linea de comandos, y veran el resultado.


    Rmdir (rd)
    Quita (elimina) un directorio.


    Sintaxis
    rmdir [unidad:]rutaDeAcceso [/s] [/q]
    rd [unidad:]rutaDeAcceso [/s] [/q]

    Este es facil, lo unico malo es que el directorio se tiene que encontrar vacio para que lo pueda borrar.Ejemplo:

    C:/> rd c:\imagenes


    Rename (ren)
    Cambia el nombre de uno o varios archivos.


    Sintaxis
    rename [unidad:][rutaDeAcceso] nombreDeArchivo1 nombreDeArchivo2
    ren [unidad:][rutaDeAcceso] nombreDeArchivo1 nombreDeArchivo2

    Aqui se pueden utilizar los comodines, ejemplos;

    C:/> rename adios.txt adios.doc
    renombra el archivo adios.txt a adios.doc

    C:/> ren *.jpg *.bmp
    cambia todos los archivos con extencion .jpg a archivos con extension.bmp con su nombre respectivo.

    Tambien puedes cambiar el nombre de un directorio, ejem.:
    C:/> ren imagenes hermosas

    En este comando tambien sirven los comodines, pero bueno, todo donde utilicen nombres de archivos sirven, eso creo.


    Start
    Inicia una ventana independiente del símbolo del sistema para ejecutar un programa o un comando especificado. Si se utiliza sin parámetros, start abre una segunda ventana del símbolo del sistema.


    Sintaxis
    start ["título"] [/drutaDeAcceso] [/i] [/min] [/max] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/wait] [/b] [nombreDeArchivo] [parámetros]

    Bueno, este comando es muy util, no le hagan caso a todos los parametros, es bueno saber para que sirven, pero lo pueden utilizar sin ellos, sirve para ejecutar un programa en otra terminal, supongamos que estas ocupando una terminal y quieres bajar algun programa de internet por medio de ftp con un programita batch previamente heco, bueno, pues simplemente escribes:

    C:/> start ftp.bat
    Donde ftp.bat es el programita previamente hecho por ti para descargar algo de internet o continuar descargandolo sin necesidad de darle mas instrucciones, asi, el ftp,bat se ejecutara en otra ventana, y tu podras seguir utilizando la terminal en la que te encuentras sin necesidad de esperar a que el archivo termine de bajarse.



    Subst
    Asocia una ruta de acceso con una letra de unidad de disco. Si se utiliza sin parámetros, subst presenta los nombres de las unidades virtuales activas.


    Sintaxis
    subst [unidad1: [unidad2:]rutaDeAcceso]
    subst unidad1:/d

    Creo que este es mas claro, ejemplo:

    C:/>subst x: c:\Mis Documentos\juegos

    Con esto tendras una nueva unidad virtual llamada x: la cual en realidad sera una ruta de acceso a la carpeta c:\Mis Documentos\juegos



    Time
    Muestra o especifica la hora del sistema. Si se utiliza sin parámetros, time muestra la hora del sistema y le pide que introduzca una nueva hora.


    Sintaxis
    time [/t] [/time] [horas:[minutos[:segundos[.centésimas]]][{A | P}]]

    Parámetros
    /t
    Muestra la hora actual del sistema, sin pedirle que introduzca una nueva hora.

    ejemplo:

    C:/> time 9:00P
    Establece una nueva hora (9:00 pm)



    Tree
    Presenta en pantalla la estructura de directorios de una ruta de acceso o del disco de una unidad.


    Sintaxis
    tree [unidad:][rutaDeAcceso] [/f] [/a]

    /f
    Muestra los nombres de los archivos de cada directorio.
    /a
    Indica al comando tree que utilice caracteres de texto en lugar de caracteres gráficos para mostrar las líneas que vinculan a los subdirectorios.

    ejemplo:

    C:/> tree d:\ /f

    Nos mostratara una lista de los subdirectorios de la unidad d:\ (suponiendo que tenemos unidad d:\), si el directorio es muy largo agreguen: | more, de esa forma lo veran por paginas.



    Type
    Presenta el contenido de un archivo de texto. Utilice el comando type para examinar un archivo de texto sin modificarlo.


    Sintaxis
    type [Unidad:][rutaDeAcceso] nombreDeArchivo

    ejemplo

    C:/> type ecosistema.txt

    C:/> type dunas.txt | more
    Espero que vaya quedando claro todo y que les sirva de algo, salu2.
    Última edición por surfman; 25-09-2007 a las 14:17
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  5. #5  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    PROGRAMACION BATCH


    Antes de empezar tengo que decirles que utilizaremos unos nuevos comandos, los cuales iremos viendo poco a poco.

    Para hacer los programitas batch utilizaremos un editor de textos, el mas sencillo, en uindous esta l notepad, despues de terminar de escribir las instrucciones lo tendran que guradar con extension .bat y en donde dice tipo de archivo seleccioan todos los archivos o all files, y lo guardan en un directorio que tenga path( ver el comando path), para que lo ejecutemos desde cualquier directorio en la linea de comandos.

    Algo que tengo que agregar es que el @ al inicio de la primera linea del archivo.bat sirve para que el programita se ejecute sin que se vea.


    ECHO
    Ya lo vimos, echo off, no se ven los mensajes, echo on se ven.


    REM
    Sirve para dejar notas en el programa y no perdernos, esto sirve para cuando nuestro programa es muy largo, asi, con estas notas que las podemos poner en cualquier parte del programa nos serviran para saber que estamos haciendo en cada pedazo de codigo, estas notas no se veran al ejecutarse el programa, solo sirven de referencia.

    ejemplo:

    @echo off
    rem programita de prueba
    rem aqui escribo hola
    echo hola
    rem me cambio de directorio
    cd Mis Documentos
    rem borro diana
    del diana.jpg
    rem escribo adios
    echo adios
    rem termina el programa
    exit

    Las lineas que tienen rem no se veran son las de echo. Espero que no haya dudas.


    Variables: Las variables (si no saben lo que es busquenlo en wikipedia) son %1 %2 %3, etc... creo que hay hasta el nueve nada mas, y la variable %0 es el programita que estamos corriendo, ejemplo:

    Si tenemos un programa .bat que necesita de 2 variables para su correcta ejecucion, lo que haremos sera pasarle las variables de la sig. forma:

    C:/> nombre_programa Guillermo Costecho

    Si el programa fuese el sig.

    @echo off
    rem programita para saludar a las personas
    echo Hola %1 %2
    exit

    Lo que haria seria tomar Guillermo como %1 y Costecho como %2, claro que este programa no sirve de nada es solo para aprender, y ni siquiera interactua con el usuario preguntandole su nombre, bueno, espero que se haya entendido.

    Si queremos hacer un programita que copie un archivo a una carpeta nueva:

    @echo off
    rem programita que copia un archivo en una carpeta nueva
    cd %1
    copy %2 %3
    rem borro el archivo de ese directorio
    del %2
    rem hago un dir para verificar
    cd %3
    dir
    pause
    exit

    Si el programita se llamase copia, lo correriamos asi:

    C:/> copia directorio_del_archivo archivo.extension ruta_nueva

    C:/> copia "c:\mis documentos" tarea.txt "c:\mis tareas"

    Noten las comillas, las uso ya que existen espacios en blanco en la ruta del directorio asi las variables tomaran toda la ruta y no nada mas c:\mis, de otra forma no funcionaria bien el programita y daria "error, no se encontro el archivo, ni un archivo copiado", lo que hace es ir al directorio "c:\mis documentos" copia el archivo tarea.txt, si este existe lo copia en "c:\mis tareas" despues borra tarea.txt del directorio actual, se cambia de diractorio a donde copio el archivo y ejecuta el comando dir, despues de eso viene un pause(ver seccion comando pause mas arriba) para que el programa se detenga y se pueda ver en pantalla el dir, despues de dar enter termina el programita.
    Creo que esta muy facil esto no?, espero que si para que no se enreden como yo que me maree despues de esta explicacion =S jeje.
    Bueno ya me esta dando suenio, pero voy a tratar de seguir para terminar lo antes posible y poder pasar a otras cosas :0, ahorita regreso voy por el te, jejje, salu2.
    Última edición por surfman; 25-09-2007 a las 14:19
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  6. #6  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Bueno aqui les dejo la continuacion...

    Variables del Ssitema: Estas variables estan predefinidas por el sistema, son muy utiles, ya que con ellas podemos obtener informacion del sistema, su sintaxis es %variable%, ejemplo:

    %OS%

    Esta variable nos dice el sistema operativo de la computadora, muy util para saber sobre que sistema estamos y asi proceder a dar instrucciones para que nuestro bat funcione correctamente, ya que como les habia dicho (n no les habia dicho?, creo que no) todas las versiones de indows tienen distintas rutas para sus archivos .ini, cosa que veremos despues de esta seccion de programacion batch, por ejemplo el autexec.net que es el ejecutable de la terminal de DOS, en win9x se llama autoexec.bat y se encuentra en un directorio distinto que en win xp/nt/98/2003 , etc.., asi que para que su programa funcione correctamente tenemos que tener en cuenta todas estas variantes, aunque en esto nos pueden ayudar estas variables, por eso y mas son muy importantes.


    %path%

    Nos dice todos los directorios que tienen path (ver comando path mas arriba).



    %processor_architecture%

    Nos da la architectura de nuestro procesador.


    %random%

    Nos da un numero decimal aleatorio entre o y 32767.



    %systemroot%

    Este es el directorio que tiene como root el sistema, por lo general es c:\windows


    %temp% o %tmp%

    Con esta variable del sistema podemos tendremos acceso al directorio de archivos temporales.


    %windir%

    Este se utiliza para saber el directorio de windows, o bueno en lugar de escribir el directorio raiz de windows, como no sabemos si le han cambiado el nombre a la unidad, con esta variable la detectamos, en ves de poner la unidad raiz ponemos esta variable.


    Tambien podemos agregar variables, estas se llamaran de entorno, y su sintaxis es la misma que las de sistema, pero para declararlas utilizaremos el comando set.

    Set
    Muestra, establece o quita variables de entorno. Utilice el comando set sin parámetros para mostrar la configuración de entorno actual.


    Sintaxis
    set [[/a [expresión]] [/p [variable=]] cadena]

    ejemplos:

    set ruta1="c:\mis documentos"

    Aqui lo que hacemos es agregar la ruta c:\mis documentos a la variable ruta1, por lo que si en nuestro bat o en la terminal escribimos:

    cd %ruta1%

    nos posisionaremos en c:\mis documentos.

    set saludo="hola como estas?"

    Aqui lo que hacemos es agregarle una cadena de caracteres a la variable saludo, por lo que si escribimos:

    echo %saludo%

    Nos aparecera en pantalla hola como estas?

    Tambien podemos llamar comandos con variables, ejemplo:

    set rid=dir
    set dc=cd
    set copiar=copy
    set led=del

    Con esto si el programita tuviese:

    @echo off
    %dc% %windir%
    %rid%
    %led% *.txt
    %copiar% *.jpg %windir%\fotos
    exit

    Lo que haria seria posicionarnos en el directorio de windows, borrar todos los archivos con extension .txt, hacer un dir, y copiar todos los archivos.jpg a una nueva subcarpeta llamada fotos, eso es todo, nada malo. Esto sirve para que los antivirus no detecten como malicioso el programa porque no van a encontrar ni comando borrando o copiando cosas, y lo pasaran por alto.

    Antes de continuar, quiero decirles para que sirve el signo > y el >>, esto lo que hace es redireccionar la salida hacia un archivo o dispositivo, ejemplo:

    @echo off
    cd %windir&
    dir >lista.txt
    dir >>lista.txt
    exit

    Aqui lo que hace el bat es entrar al directorio de windows, hacer un dir y mandarlo a un archivo con el nombre lista.txt, y como no existia lo creo, pero de haber existido habria sobre escrito el contenido de dicho archivo dejando solo la lista del directorio, y despues con el >> lo que hacemos es meter el contenido del dir otra vez, pero sin sobreescribir, agregandolo, por lo que > se utiliza para darle salida a un archivo o sobreescribirlo si es que contiene algo, y >> para agregarle a ese archivo.



    Goto
    En un programa de proceso por lotes, dirige el procesamiento de los comandos a una línea identificada por una etiqueta. Al encontrar la etiqueta, procesa los comandos a partir de la siguiente línea.


    Sintaxis
    gotoetiqueta

    Este comando sirve para saltarse de una linea a otra, ejemplo:

    @echo off
    rem programita que copia un archivo en una carpeta nueva
    goto abajo
    cd %1
    copy %2 %3
    rem borro el archivo de ese directorio
    :arriba
    goto fin
    del %2
    rem hago un dir para verificar
    :abajo
    goto arriba
    cd %3
    dir
    :fin
    pause
    exit

    Como ven en este programita cambiado, no hara nada, ya que primero ira a la etiqueta :abajo, de ahi a la etiqueta :arriba, y de ahi a la etiqueta :fin, donde se saldra del programa, como ven para indicar que debe saltar a una etiqueta se debe poner "goto etiqueta" y la ":etiqueta" la la debemos poner donde queramos que continue el programa, esto es util para las condiciones con el comando if, que veremos mas adelante.
    Hasta aqui llegue por ahora, porque viene el comando if y tengo que pensar como lo voy a explicar, salu2.
    Última edición por surfman; 25-09-2007 a las 14:20
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  7. #7  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Buen trabajo y gracias por el aporte

    Saludos
    Citar  
     

  8. #8  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Gracias hystd,
    es un honor poder postear mi primer tuto por aqui, bueno pues aqui esta otro pedacito, al rato posteo lo demas.
    salu2.
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  9. #9  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Aqui esta la continuacion...


    Bueno antes que nada para ver el comando if tratare de explicarselos, en espaniol if = si, asi que es lo mismo que una oracion en espaniol, si se cumple esta condicion, entonces hare esto, si la condocion no se cumple, hare lo siguiente, un ejemplo seri "si en la fiesta hay chicas me quedo jejej, si no hay me regreso a a casa" o "si en la fiesta hay chicas no tomo, si no hay me pongo hasta las chanclas jeje"
    Ahora les voy a poner un pequenio diagrama todo chueco pero creo que lo entenderan:


    ***************************|********************** ************
    ***************************|********************** ************
    **************************/#\*********************************
    *************************/###\********************************
    ************************/##si##\******************************
    ***********************/#######\****************************
    **********************/#condicion##\**************************
    *******---verdadera--------\#########/****************************
    *******|***************\#######/*****************************
    *******|****************\#####/******************************
    *******|*****************\###/********************************
    _______________***********\#/********************************
    |##########|*************|************************ **********
    |##Accion####|*************|********************** ************
    |##########|***********Falsa********************** **********
    ===========*************|************************* *********
    *******************__________________************* ***********
    *******************|############|***************** *******
    *******************|###Accion#####|*************** *********
    *******************|############|***************** *******
    *******************=============****************** ******
    ************************************************** ***********



    Esto es el if, si la condicion es verdadera, se procede a hacer tal accion, si la condicion es falsa, se procede a hacer otra accion, esto es para que nuestro programita tome decisiones, por ejemplo, si el sistema operativo es win9x hacer lo siguiente, si es win xp hacer esta otra accion, si es win 95, hacer esto otro, es simple.


    If
    Ejecuta un proceso condicional en programas por lotes.


    Sintaxis
    if [not] errorlevel número comando [else expresión]
    if [not] cadena1==cadena2 comando [else expresión]
    if [not] exist nombreDeArchivo comando [else expresión]

    ejemplos:

    Empezaremos comparando dos cadenas de caracteres:

    if cadena_caracteres==cadena_caracteres comando

    if %cadena%==juanito echo hola juanito

    if %5==cacahuates echo asi que te gustan los cacahuates

    Aqui lo que hacemos es comparar el contenido de una variable con una cadena de caracteres, si es verdadero escribira en pantalla algo. Lo mismo podemos hacer con el parametro not, veamos:

    if not %cadena%==pepe echo tu no eres pepe, adios.

    Aqui lo unico que cambia es que esta comprobando que no sean iguales. Ahora veamos como se utiliza con archivos. Para esto utilizaremos el parametro exist, que en espaniol significa existe, ejemplo:

    if exist pablito.mp3 del juanito.mp3

    Ahora con not:

    if not exist tarea.txt echo a que hora vas a hacer tu tarea?

    Ahora viene una mas completa, que es como el diagrama de arriba:

    if exist tarea.txt (
    del tarea.txt
    echo ups lo siento
    ) else (
    echo a que hora vas a hacer tu tarea?
    )

    con esta forma podemos anidar condiciones if y poner varias acciones no solo una, ademas se entiende mejor una vez que te acostumbras, cuando digo anidar me refiero a poner un if dentro de otro if y otro dentro de este y asi sucesivamente, con lo que podemos tomar mejores deciones, bueno nuestro programita tomara mejores decisiones y no tendra tantos errores. Esto solo sirve con el if exist achivo,, ya trate de utilizarlo con el if nada mas y no me resulto, pero aqui viene otro comando que nos ayudara.
    Este va relaciondao con el if, asi que lo pondre antes de terminar la ultima forma del if, que es el error level, esto de error level es una caracteristica del if, que en realidad solo es un numero que te da el programa despues de usar el choice, ahorita lo veremos.

    Choice
    Solicita al usuario que realice una elección en un programa por lotes mostrando un mensaje y deteniéndose momentáneamente para que el usuario elija entre un conjunto de claves de opción del usuario.


    Sintaxis
    choice [/c [opciones]] [/n] [/cs] [/ttiempoDeEspera/dopción] [/mtexto]

    Este comando es muy facil, se utiliza para elefir una opcion, el parametro /c se utiliza para definir las opciones, /n para que las opciones no aparescan en pantalla, /cs convierte las opciones en key sensitive(distingue entre mayusculas y minusculas, /t el tiempo (en segundos) que el programa debe esperar a que el usuario eliga, de lo contrario se tomara una opcion por default(predeterminada), y nada mas falta agregarle el texto, ejemplo:

    choice Elige una de estas opciones ahfd /c:ahfd /t 5 /n

    Aqui si se elige a el valor que devolvera sera 1, h = 2, f = 3 y d = 4.
    Lo que se vera en pantalla sera "Elige una de estas opciones ahfd"

    Bueno ahora pasemos a ver como se utiliza con el if, el valor que regrese el choice es el que tomara el if, de la sig. manera:

    choice Elige una de estas opciones ahfd /c:ahfd /t 5 /n
    if errorlevel 4 comando
    if errorlevel 3 comando
    if errorlevel 2 comando
    if errorlevel 1 comando
    if errorlevel 0 comando

    Entonces como pueden ver hay algunas pequenias reglas, como el if, lo tenemos que poner empezando con el errorlevel mayor e ir en forma descendente, de otra forma no funcionara el programa, creanme, ya me estuve rompiendo la cabeza antes con eso. A y el error level 0 sirve par si seleccionan una opcion que no esta en las opciones.
    Otra cosa importante a mencionar es que este if funciona con el goto, veamos un ejemplo mas elaborado utilizando bastantes cosas, pero sin una verdadera utilidad .

    @echo off
    :menu
    cls
    echo ###################################
    echo # Que es lo que quieres hacer? #
    echo ###################################
    echo # 1 # Hacer un respaldo de c:\Mis Documentos #
    echo # 2 # Checar si hiciste la tarea #
    echo # 3 # Escribir una carta a tu novia #
    echo # 4 # Hacer una operacion matematica sencilla #
    echo # 5 # Salir del programa #
    echo ##################################
    @choice Elige 1,2,3,4 o 5 /c:12345 /n
    if errorlevel 5 goto salir
    if errorlevel 4 goto oper
    if errorlevel 3 goto escribir
    if errorlevel 2 goto checar
    if errorlevel 1 goto respaldo
    ir errorlevel 0 goto menu
    :respaldo
    copy "c:\mis documentos\*.*" "a:\mis documentos"
    cd a:\mis documentos
    dir
    pause
    goto menu
    :checar
    if exist c:\tarea.txt echo si la hiciste
    if not exist c:\tarea.txt echo a que hora la piensas hacer?
    pause >null
    goto menu
    :escribir
    echo Aqui esta el notepad para que le escribas,
    echo recuerda guardar la carta y hacer un
    echo respaldo
    pause
    goto menu
    per
    echo Toma... aqui tienes la calculadora,
    echo creias que iba a hacer todo por ti?
    echo jejje :P
    pause
    calc
    goto menu
    :salir
    echo Ciao.
    pause >null
    exit
    Última edición por surfman; 25-09-2007 a las 14:30
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  10. #10  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Mensajes
    1.461
    Descargas
    15
    Uploads
    0
    Se nota que no usas NT
    El comando choice (para nuestra desgracia) ya no existe, en su lugar se debería usar set:

    set /p variable=Escribe el valor de variable...

    Luego se haría un if para recoger el resultado.

    Yo también hice una guía de batching, quizás la cuelgue algún día...

    Y por cierto, usa las etiquetas [code]. Todo se verá mejor.
    Citar  
     

  11. #11  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    ************************:P************8)***************

    Hola Nost,
    que bueno que me dices esto, yo ni por enterado, investigue y si la verdad tienes razon, pero ya vi como se hace con set, es de la sig manera:


    set variable=
    set /p variable=Texto que le daras al usuario para escoger.
    if %variable%==1 comando
    if %variable%==2 comando
    if %variable%==3 comando
    echo %variable% No es correcta, por favor intente de nuevo.

    asi que podria quedar asi si no me equivoco:

    @echo off
    :menu
    echo 1 Saludo
    echo 2 Carta
    echo 3 Salir
    set var=
    set /p var=Eliga una opcion.
    if %var%==1 goto saludo
    if %var%==2 goto carta
    if %var%==3 goto salir
    echo la opcion que me diste no es correcta,
    echo intentalo de nuevo.
    goto menu
    :saludo
    echo Hola buenos dias.
    pause
    goto menu
    :carta
    echo Aqui esta el notepad
    pause
    notepad
    goto menu
    :salir
    Hasta la vista
    pause
    exit
    No se si esto este bien, lo acabo de ver y lo puse como entendi.

    Oye Nost, pues estaria bien que postearas tu tutorial, para tener uno mejor hecho, este minituto lo estoy haciendo para aportar algo, pero mas que nada para aprenderme bien este tipo de programacion, al estar haciendolo se me han quitado muchas dudas.

    Acerca de que no uso NT, no la verdad es que tengo el win xp en virtual box, ahi estoy probando todo.
    A y otra solucion que le veo, que no es muy buena talvez, porque es mas facil utilizar set que choice, pero lo que se podria hacer es bajar el choice de una pagina de internet, pero la verdad seria mas lio, bueno, gracias por la ayuda Nost .
    salu2
    Última edición por surfman; 25-09-2007 a las 14:36
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  12. #12  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Mensajes
    1.461
    Descargas
    15
    Uploads
    0
    El problema del set es que no puedes obligar al usuario ni a escribir algo antes de pulsar enter, ni a que escriba cierta longitud... Está muy mal hecho, pero es la única herramienta que tenemos.

    Mi curso de batching en realidad está basado en cosas características del batching, sólo se para un momentito a explicar comandos.

    Me refiero al if, al else, al for, a goto, al símbolo |, al >, >>, <, etc.
    Citar  
     

  13. #13  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Si, tienes razon, no se puede interactuar con el usuario, pero tal vez para eso podriamos utilizar las variables %1 %2 %3 etc..., llamando a un programa dentro del programa, con el comando call, y cambiando las variables %1 %2 etc... con el comando shift, no lo he probado puesto que soy nuevo en esto de la programacion y batch, pero supongo que si funciona, lo unico que no se es si las variables que obtengas por medio del ususario al llamar a otro programa las puedes utilizar como globales, pero bueno, en el transcurso de este minituto lo intentare, en la sig. seccion pondre los comandos for call shift y a ver cual me falta, salu2 Nost.
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  14. #14  
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Uruguay
    Mensajes
    1.450
    Descargas
    11
    Uploads
    0
    GOTO noooooo !! eso hizo a la programación irse al diablo !!

    No me gusta batch para nada.. pero reconozco que tiene sus utilidades

    por cierto, cuándo lanzan uno para shell unix ?

    Nunca supe como hacer un script al que le pueda acceder un pass :'( no sé, ej:
    Código:
    #!/bin/bash
    # xD ^
    # Mi Script para instalar un programa y no tener que usar apt - yupii -
    
    echo escriba el nombre del paquete:
    read  paquete
    sudo apt-get install $paquete
    
    # fin
    # ahí mi problema, cómo hago para ingresar el pass del usuario, - suponiendo que lo se

    alguna idea ?
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
    Citar  
     

  15. #15  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    GOTO noooooo !! eso hizo a la programación irse al diablo !!
    ¿?
    GOTO es predecesor de los lenguajes actuales, además el lenguaje máquina es del tipo GOTO (computable), cualquier programa escrito en un lenguaje X, será traducido a lenguaje máquina por el compilador e interpretado por el programa universal (sistema operativo)...

    Lo que ocurre es que los lenguajes de alto nivel fueron desarrollados porque se acercan más a la forma de pensar de las personas, y no al de la máquina. No obstante cualquier computador o sistema digital programable (con memoria para almacenar programas y/o datos), lo que entiende es de instrucciones del tipo GOTO, que son básicamente codificadas con 1's y 0's para posteriormente ser interpretadas por una unidad de control de dicho sistema.

    En ningún momento la programación se ha ido al diablo con GOTO, justo lo contrario, ha permitido evolucionar para mejorar la facilidad de uso.

    Para más información sobre el tema... consultar "teoria de la computabilidad"

    Saludos
    Citar  
     

  16. #16  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Cypress, cuando un script necesita privilegios de root simpemente lo ejecutas como root, y para cada acciónque debes ser tomada como por parte del usuario puedes usar 'su' dentro del script.

    Pero esto es otra temática, puedes abrir dudas sobre shell scripting en un nuevo hilo o en el subforo de linux.

    Salu2


    Keep on Rollin'

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  17. #17  
    Colaborador HH
    Fecha de ingreso
    Jun 2006
    Ubicación
    Uruguay
    Mensajes
    1.450
    Descargas
    11
    Uploads
    0
    Cita Iniciado por hystd Ver mensaje
    GOTO es predecesor de los lenguajes actuales,
    Mmmm.. Según tenia entendido - tal vez este mal - GOTO hace la programación ilegible. Por eso se dejó de usar, GOTO haría inecesario estructuras como while o for,

    Cita Iniciado por wikipedia
    A diferencia de la llamada a una función, no se requiere ningún tipo de preparación o estructura de código para utilizar un GOTO. Como resultado, es más sencillo obtener código inconsistente, incompleto o complicado de mantener. Justamente por ello en los años 60 y 70, cuando surgió la programación estructurada, la comunidad informática se expresó a favor de otras sentencias de control (if ó bucles for y do/while) en lugar del GOTO.

    Tal creencia está tan arraigada que el GOTO es muy criticado por los dedicados a la enseñanza de la programación, que lo suelen desaconsejar
    Código:
    10 PRINT " para qué usar estructuras como while o for si tenemos GOTO "
    20 a=a+1
    30 IF a = 10 THEN GOTO 50
    40 GOTO 10
    50 END.
    eso sería una suerte de basic.

    ese código es una porqueria

    Un FOR es mucho más lindo de ver, y leer.


    Saludos,
    Cypress

    p.s voy a abrir otro post sobre prog, shell, pero mañana ahora me voy a dormirm son casi las 4:00 !!
    Louis Armstrong le dice a Ella Fitzgerald
    "take another drink of wine, and maybe you change your mind"
    Citar  
     

  18. #18  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Hola a todos, gracias por interesarse en este post, pues cuando termine de hacer este minituto empezare con el de bash que les parece?, eso me anima, porque no se programar en bash, solo en batch(apenas) y en delphi aprendi lo basico pero nunca ermine de verlo, asi que supongo que si hago un minituto de bash lo aprendere mas rapido, eso si, va a ser mas dificil, porque ya le di una leida a un tutorial de bash y tienes muchas mas opciones, pero eso es lo mejor supongo, tener menos limitaciones, asi que deseenme suerte en esta aventura jeje, , bueno pues aun no termino este por el trabajo, no he dormido, de hecho vengo del trabajo, manana trabajo de nuevo, pero de ahi al jueves o viernes libre a huevo jaja , bueno entonces tendre que posponer el minituto de html y de javascript, pero esos son mas faciles de aprender y ya hay demasiados buenos tutos sobre eso asi que no creo que haga falta por aqui, salu2 a tos.

    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

  19. #19  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Cita Iniciado por surfman Ver mensaje
    cuando termine de hacer este minituto empezare con el de bash que les parece?
    No hay comparación. Indudablemente aprenderás muchísimo si te decides a hacer un manual de bash competente. Tendrás que estudiar mucho y deberás ir abandonando la idea de hacerlo con una hoja de ruta ni remotamente parecida a la que usaste con "batch": emplearás muchísimo más tiempo.

    Llevo algunos años de uso de GNU/linux, y ni de lejos domino el shell scripting (no se me da mal, pero es muy potente y creo que nunca se termina de aprender con él o de descubrir nuevas posibilidades). Hay muy buenos manuales, pero quizá demasiados para novatos y muy pocos para expertos que incluyan ejemplos fuera de los programas ya existentes de fuentes abiertas.

    Te animo a que lo hagas, desde luego, el aprendizaje está garantizado

    Salu2


    Keep on Rollin'

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  20. #20  
    Iniciado
    Fecha de ingreso
    Jul 2007
    Ubicación
    En la playa :)
    Mensajes
    48
    Descargas
    0
    Uploads
    0
    Gracias j8k6f4v9j, la verdad si es un reto muy grande, pero es mejor que lo haga, asi todos los demas lenguajes se me van a hacer mas faciles, claro que no lo voy a dominar, ni siquiera batch lo domino, hay muchas cosas escondidas con las que puedes hacer muy buenos programas a pesar de sus grandes limitaciones tanto de comandos como de versiones uindous, pero por lo menos un minituto para novatos como yo jejej salu2.
    Aquello que no ha sido elegido por no nostros no podemos considerarlo ni como merito ni como fracaso.
    Citar  
     

Temas similares

  1. Programa batch
    Por botnet en el foro PROGRAMACION DESKTOP
    Respuestas: 2
    Último mensaje: 17-07-2011, 11:12
  2. Ayuda Batch
    Por pixicato en el foro GENERAL
    Respuestas: 13
    Último mensaje: 27-01-2011, 01:26
  3. Programa batch
    Por botnet en el foro PROGRAMACION DESKTOP
    Respuestas: 6
    Último mensaje: 17-12-2010, 16:25
  4. Batch
    Por Luiss_Garcia en el foro PROGRAMACION DESKTOP
    Respuestas: 5
    Último mensaje: 10-02-2009, 13:54
  5. programacion en batch
    Por dannysalazar en el foro GENERAL
    Respuestas: 12
    Último mensaje: 22-09-2006, 21:40

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •