Autor
|
Tema: TUTORIAL PROGRAMACION BAT (Leído 672,898 veces)
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
Amplío un poco la información anterior con los comandos mas complejos y difíciles de entender:
------------------------------------------------------------------------------ COMANDO IF Sirve para hacer bifurcaciones en el código. Admite 6 sintaxis distintas:
IF EXIST nombre_fichero ORDEN ( si existe nombre_fichero ejecutar la orden especificada en ORDEN)
IF NOT EXIST nombre_fichero ORDEN ( igual, pero si no existe el fichero)
IF cadena1 == cadena2 ORDEN ( si cadena1 es igual a cadenado2 ejecutar la orden especificada en ORDEN)
IF NOT cadena1 == cadena2 ORDEN ( si cadena1 es distinta de cadena2 hacer orden )
IF ERRORLEVEL número ORDEN ( si el comando anterior acabó con un código de error es igual o superior a número hacer orden )
IF NOT ERRORLEVEL número ORDEN ( si el comando anterior acabó con un código de error inferior a número )
---------------------------------------------------------------------------------- COMANDO FOR Esta orden repite la orden especificada para cada entrada de una lista de ficheros (separados por espacios). En esta lista se pueden emplear comodines.
La variable siempre lleva dos veces el signo %
FOR %%variable IN lista DO ORDEN
Por ejemplo FOR %%x IN (texto1.txt texto2.txt texto3.txt) do delete %%i Esta orden haría lo siguiente: repetiría 3 veces la orden delete. En cada vez %%i valdría cada valor de la lista de manera que la primera vez sería texto1.txt, la segunda vez texto2.txt y la tercera vez texto3.txt.
Así esta orden haría: DELETE TEXTO1.TXT DELETE TEXTO2.TXT DELETE TEXTO3.TXT
--------------------------------------------------------------------------------- VARIABLES DE ENTORNO Se pueden declarar variables.
SET variable = valor Declara una variable de tipo string cuyo contenido es valor
SET /n variable = valor1 + valor2 + valor3 Declara una variable numérica cuyo contenido es el resultado de la operación.
También hay algunas variables que ya vienen declaradas como la variable PATH, OS, por ejemplo. Estas variables que ya vienen declaradas puedes verlas en propiedades de mi pc, avanzado, variables de entorno y están a tu disposición en ficheros por lotes (bat)
Para referirte a cualquiera de estas variables las pones entre los signos % Así para saber saber si tu sistema operativo es win98 haces IF %os% == WINDOWS98 ECHO ES WINDOWS 98
Por último están las variables que utilizas en un for que tienen siempre dos veces el signo % delante.
-------------------------------------------------------------------------------- ETIQUETAS
Se pueden definir etiquetas que se utilizarán para saltar a ellas cuando se cumpla una condición. Para definir una etiqueta pones una línea que empiece por : y luego el nombre de la etiqueta
Por ejemplo ORDEN 1 ORDEN 2 if %os% == Winnt goto winnt echo se hace esta línea si no es winnt goto fin :winnt echo se hace esta línea si es winnt el sistema operativo :fin
---------------------------------------------------------------------------- PARAMETROS REEMPLAZABLES
A menudo en este tipo de archivos tu quieres poder pasarle parámetros. Estos parámetros sirven para que el script haga una cosa u otra en función del parámetro que le pasas. Por ejemplo si tienes un archivo bat cuyo nombre es AVERIGUARSISTEMAOPERATIVO.BAT tu puedes hacer lo siguiente: AVERIGUARSISTEMAOPERATIVO windows98 AVERIGUARSISTEMAOPERATIVO win2000 AVERIGUARSISTEMAOPERATIVO winxp
En los tres casos llamas al mismo script AVERIGUARSISTEMAOPERATIVO, pero en cada caso le pasas un parámetro diferente. En el primero le pasas windows98, en el segundo le pasas win2000 y en el tercero le pasas winxp.
Para referirte al parámetro en el código debes saber que el sistema les asigna nombre de forma automática. Ál primero le llama %1, al segundo %2, al tercero %3, ..., al mil %1000
Así yo podría tener un archivo bat llamado AVERIGUARSISTEMAOPERATIVO.BAT que me confirma si mi sistema operativo es el que yo creo. Su código sería if %os% == %1 goto correcto echo El sistema operativo NO es %1 goto fin :correcto echo el sistema operativo SI es %1 :fin
Suponiendo que mi sistema operativo fuera winxp de los tres casos antes citados, los dos primeros obtendría 'el sistema operativo NO es X (siendo X windows98 o windows2000)
En el tercer caso obtendría 'el sistema operativo SI es winxp porque la cadena %os% es igual a la cadena %1. Ambas son winxp
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
armonight
Visitante
|
hola mi nombre es sebastian amo la programacion necesito ayuda para crear un archivo bat que elimine
los archivos temporales de internet - el historial - los archivos de la carpeta temp en conf local - doc recientes tengo claro que los nombres que tengan mas de 8 caracteres o espacio debo escribirlos asi c:\Documents and Settings\Administrador\Config~1
|
|
|
En línea
|
|
|
|
TaN€R
Desconectado
Mensajes: 2.599
Amo el foro!
|
muy bueno soplo,y para los que menos saben , un pequeño apunte,para que lo entiendan mejor,todo.
una variable que es? quieres hacer una agenda de telefonos,por ejemplo.
pues lo primero es declarar las variables
ejemplo: set variable= agenda set agenda=luis,pepe,paco,soplo
el if es una "condición",muy usada en programación, en los diferentes lenguajes.Condiciona
if viene a decir "Si hago esto...
(Si se cumple una condición hago una determinada cosa).
Dicen que antes de hacer un programa bat o lo que sea, se debe escribir el pseudocodigo. pseudocodigo creo que se llama, algo asi como hacer un esquema de lo que vas ha hacer antes de hacerlo,sobre lapiz y papel
por cierto ¿como se insertaba un comentario que no se muestre?es decir una aclaracion para nosotros mismos, pero que no se vea en el programa,se que con action script era algo asi //este es mi comentario y no se mostrará,
es igual con los bat?
Por cierto soplo estaria muy bien,hacer algun programa los que manejen bien , bien el tema,y postearlo aqui.con sus explicaciones debidas. dar ideas,comentar y participar construyendo nuevos bat prácticos.
estaria muy bien
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
¿como se insertaba un comentario que no se muestre? REM comentario Por cierto soplo estaria muy bien,hacer algun programa los que manejen bien , bien el tema,y postearlo aqui.con sus explicaciones debidas. dar ideas,comentar y participar construyendo nuevos bat prácticos. No me parece una buena porque la mayoría de los casos en los que se usan estas cosas suelen ser en scripts de inicio para usuarios y perfiles en dominios y por tanto hay se mezclan varias cosas además de complicarse bastante. Creo que esos ejemplos serían ilegibles, porque a menos que te hayas enfrentado con perfiles de usuario y scripts de inicio de sesión en dominios no sabes ni de lo que te hablan y aún así cada caso es diferente. Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
billyboca
Visitante
|
SOPLO!!! solicito tu yuda nuevamente use el comando XCOPY com ome recomendaste...y todo v muy bien...el unico problema que se me presenta es que luego de copiar los archivos...carpetas...y subcarpetas...cuando entro al explrador de windows....algunas carpetas no las veo...pero si escribo la ruta en la barra de direcciones....las veo perfectamente.... NO ENTIENDO COMO PUEDE PASAR ESO agradezco tu ayuuda anterior y la que le das a todos adiooooooossssssssss
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
Eso no tiene que ver con este tema.
Tu problema es un problema de windows y probablemente se debe a que necesitas hacer scandisk o quizá esas carpetas están marcadas como ocultas.
Si hiciste como te dije esas carpetas están ahí seguro. Si tienes problemas postea en el foro de windows para que no se nos lie una cosa con otra.
Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
peterax
Visitante
|
Hola a todos soy nuevo en este foro y quisiera preguntarles como puedo hacer en mi archivo .bat que me lea de un fichero de configuracion el cual consta por campos o columnas. ejemplo
pedro 342 caramelo casa args
quisiera que me el script me almacenara en 5 variables el contenido de cada campo. Esto lo tendria que hacer para cada registro.
Espero que me podais ayudar alguno, muchas gracias.
|
|
|
En línea
|
|
|
|
peterax
Visitante
|
Se me olvidaba una duda muy muy importante. Como se puede realizar en msdos un ps o un kill de un proceso???? existe alguna aplicacion que me almacene el resultado en un fichero, a parte de la de Ctr-alt-sup Gracias a todos.
|
|
|
En línea
|
|
|
|
TaN€R
Desconectado
Mensajes: 2.599
Amo el foro!
|
taskill proceso.exe, creo Por cierto he aqui una aplicación,para que os limpieis de ***** el pc. limpieza de temporales y demas hierbas
del "C:\Documents and Settings\aquitumismo\Cookies\index.dat" > NUL del "C:\Documents and Settings\aquitumismo\Configuración local\Archivos temporales de Internet\Content.IE5\index.dat" > NUL del "C:\Documents and Settings\aquitumismo\Configuración local\Historial\History.IE5\index.dat" > NUL
rd /s/q "C:\Documents and Settings\aquitumismo\Configuración local\Archivos temporales de Internet\Content.IE5" > NUL rd /s/q "C:\Documents and Settings\aquitumismo\Configuración local\Historial\History.IE5" > NUL md "C:\Documents and Settings\aquitumismo\Configuración local\Archivos temporales de Internet\Content.IE5" > NUL
|
|
« Última modificación: 20 Agosto 2004, 10:45 am por lüwepr »
|
En línea
|
|
|
|
all
Desconectado
Mensajes: 48
que hay people
|
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Tutorial: Programación PIC
Electrónica
|
Fabios Arts
|
2
|
10,949
|
4 Diciembre 2005, 22:23 pm
por Fabios Arts
|
|
|
Tutorial programación BAT
Scripting
|
soplo
|
4
|
6,022
|
22 Julio 2006, 23:38 pm
por sirdarckcat
|
|
|
Video Tutorial Programacion C++
« 1 2 ... 10 11 »
Programación C/C++
|
Chuxxx
|
101
|
106,688
|
2 Agosto 2013, 07:45 am
por batist07
|
|
|
Tutorial de programación con Qt4 - 1º,2º y 3º entrega
Programación C/C++
|
paju1986
|
1
|
5,512
|
25 Diciembre 2010, 21:52 pm
por Littlehorse
|
|
|
Tutorial de programacion en PHP
Desarrollo Web
|
crazykenny
|
3
|
3,254
|
9 Enero 2013, 00:05 am
por EFEX
|
|