Autor
|
Tema: TUTORIAL PROGRAMACION BAT (Leído 262045 veces)
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.587
Debian rool'z
|
Hola neceesito la sabiduria de SOPLO  Bueno, mi excelsa majestad te concede audiencia  Para copiar una carpeta y los subdirectorios que incluye en vez de utilizar el comando copy debes utilizar el comando extendido xcopy de la siguiente forma: XCOPY origen destino /S /E El parámetro /S indica que debe copiar las subcarpetas El parámetro /E indica que debe crear subcarpetas aunque estén vacías (para preservar la estructura del arbol que copias). Hay mas opciones. Para verlas haces xcopy /? Ejemplo xcopy "c:\archivos de programa" f: /s /e Un saludo
|
|
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
TaN€R
Desconectado
Mensajes: 2.624
Amo el foro!
|
Soplo,me recuerdas con esa majestuosa forma de hablar, a algunos episodios del libro de don quijote,que estoy leyendo,con dibujos y todo pero el libro en sí = escrito. Bueno ,sigo teniendo problemas,en mi caso,aunque ponga el comando @echo off (Que según te entendi evita que se muestren resultados por pantalla),no cumple al 100% su misión. Es decir sale una ventana dura 1 segundo o menos. pone exactamnte: c:\windos\system32\cmd.exe y el archivo bat sta asi compuesto @echo off cd c: cd docume~1 cd yo cd scritorio cd joyita start lokesea.exe -h
Si vuesa merced tiene tiempo,demé a mí otro soplo de sabiduria 
|
|
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.587
Debian rool'z
|
Hola Ummm bueno vale ¡Te concedo audiencia!  Lo que te pasa es que al llamar al bat (o cmd) durante unos segundos te sale la shell. Luego el archivo en sí mismo no saca ninguna línea. La forma de evitarlo seguramente es ejecutarlo minimizado ¿Has probado a ponerle en las propiedades a ese archivo que se ejecute minimizado? ¿Donde coño han metido mis molinoooossss? 
|
|
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
TaN€R
Desconectado
Mensajes: 2.624
Amo el foro!
|
y digo yo vuesa merced,si esa orden de ejecutarse minimizado,podria incluirse dentro de mi superarchivo bat, como un mandato más; y de qué modo se podria hacer susodicha orden,en caso de poderse hacer, Más, espero, no haberos confundido con mi juego de palabras,pues no era ese mi acometido,sino más bien, el de resolver dicho mandato,de la forma más caballeresca posible. Si lo consigo prometo enseñarselo a la sinpar Dulcinea del toboso,xD 
|
|
|
|
|
En línea
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.587
Debian rool'z
|
Hola Le das con el botón de la derecha al acceso directo que has puesto en el menú inicio y eliges propiedades.
Allí tienes una opción para ejecutar en pantalla completa, normal o minimizado.
Un saludo
P.D. ¡KOMO TE ACERKES A DULZINEA TE MACHAKO LOS WEBOS!
|
|
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.587
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
Desconectado
Mensajes: 0
|
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.624
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.587
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!
|
|
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.587
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
Desconectado
Mensajes: 0
|
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
Desconectado
Mensajes: 0
|
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.624
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 por lüwepr »
|
En línea
|
|
|
|
all
Desconectado
Mensajes: 40
que hay people
|
|
|
|
|
|
En línea
|
|
|
|
|
|