Sie sind auf Seite 1von 28

http://www.diviertenet.com/windows/3224-programar-batch-conarchivos-bat-en-windows-7-a.

html

Programar Batch con archivos .bat en Windows 7


Programar Batch con archivos .bat en Windows 7

Hay que aclarar Batch que no es un Lenguaje de Programacin. Es un archivo de cdigo que contiene comandos del, Shell de Windows, llamado MS-DOS, que pueden ejecutar desde Inicio->Ejecutar->CMD. Hay dos maneras de ejecutar comandos Batch. * Desde el Shell de Windows. * Escribindolos en un archivo de texto con extensin .bat y luego ejecutarlo. Hola Mundo en Batch Comenzaremos creando un Simple y clsico "Hola Mundo", escribiendo en un archivo de texto el siguiente cdigo. Cdigo : Cdigo HTML:
@echo off echo Hola Mundo pause exit

Ahora guardemos el archivo como Nombre.bat y lo ejecutamos. Nos aparecer una pantalla negra que dir "Hola Mundo", luego una linea abajo dir "Presione una tecla para continuar" Explicamos: echo: Imprime un texto en pantalla, que es el texto que viene despus (el que le pasamos como parmetro), que en este caso es "Hola Mundo". Echo significa eco, por lo mismo "@echo off" elimina el eco, la repeticin de la ruta en la que nos encontramos en cada lnea cdigo. pause: Como bien se lee, pausa la ejecucin del cdigo. Adems muestra el texto "Presione una tecla para continuar" exit: Cierra la ventana de comandos. Ahora aprenderemos algunas funciones de Batch:

CD o CHDIR: Si has trabajado en PHP, te sera fcil entender este concepto. Sirve para cambiar de Directorio o Mostrar el nombre del actual. Para usarlo, CD o CHDIR seguido de la ubicacin del directorio al cual nos moveremos. Cdigo HTML:
cd "C:\" chdir "C:\"

Los ejemplos anteriores hacen exactamente lo mismo, cambian al Disco C COPY: Sirve para copiar uno o ms archivos a otro destino. Su sintaxis es la siguiente: Copy "Direccin del archivo" "Nueva direccin" Ejemplo: Cdigo : Cdigo HTML:
Copy "C:\archivo.txt" "C:\archivo2.txt"

Aqu copiaramos un archivo del Disco C llamado "archivo.txt" como "archivo2.txt" Para acortar un poco podramos usar: Cdigo : Cdigo HTML:
cd "C:\" Copy "archivo.txt" "archivo2.txt"

Donde primero cambiamos de directorio al Disco C con cd "C:\" y luego al copiar no tenemos que especificar que esta en el Disco C ya que ya nos encontramos en el. DEL: Sirve para eliminar uno o ms archivos. Su sintaxis es: Del "ARCHIVO" Tambin se puede aadir: del /f /q "archivo" Donde no pide confirmacin de eliminacin (/q) y fuerza al archivo a borrarse ( /f ) Move:

Sirve para mover un archivo. Su sintaxis es: Move "Direccin Archivo" "Nueva Direccin"

Cls: Sirve para limpiar el contenido de la pantalla: Ejemplo: Cdigo : Cdigo HTML:
@echo off echo Hola, Cuando pulses la tecla se borrara el contenido y cambiara por otro. pause cls echo Ves? pause exit

Si quisiramos averiguar ms sobre las funciones, o conocer algunas nuevas por nuestra propia cuenta podemos escribir en el Shell el nombre del comando seguido de /? y aparecer toda la informacin necesaria. Podemos poner en prctica esto de la siguiente manera: * Abramos el Shell de windows: Inicio->Ejecutar-CMD * Una vez abierto escribamos: Cdigo : Cdigo HTML:
echo off

Para eliminar el eco. * Luego para borrar el contenido de pantalla escribe: Cdigo : Cdigo HTML:
cls

* Ahora veamos la ayuda de la funcin Copy: Cdigo :

Cdigo HTML:
copy /?

* Cerremos la ventana: Cdigo : Cdigo HTML:


exit

Ahora vamos a crear un Batch que copie un archivo, luego lo mueva a otro directorio, borre el original y vuelva a copiar el copiado. En la carpeta donde crears el archivo .bat crea un archivo de texto llamado copiame.txt. En l, escribe lo que quieras. Este ser el archivo que copiaremos. Ahora el Batch: Cdigo : Cdigo HTML:
@echo off echo Hola, Copiaremos un archivo pause copy "copiame.txt" "copiado.txt" move "copiado.txt" "C:\copiado.txt" del "copiame.txt" cd "C:\" copy "copiado.txt" "copiado2.txt" exit

Gurdalo en la carpeta como NombreQueTuQuieras.bat, y ejectalo. Lo que ha hecho la cadena de instrucciones es ms o menos lo siguiente: Primero apagamos el eco, luego imprimimos en pantalla "Hola, Copiaremos un archivo" Pausamos el intrprete para que no siga de largo. A continuacin, copiamos el archivo "Copiame.txt" y su copia se llamar "copiado.txt". La movemos a la carpeta raz del disco C, y eliminamos el original. Por ultimo cambiamos de directorio al disco C, copiamos la copia y cerramos el Batch. Despus de que ejecutemos el Batch, si vamos al Disco C, veremos que hay dos nuevos archivos de texto: uno llamado copiado.txt y otro copiado2.txt. Tambin si vamos a la carpeta del Batch, veremos no est el archivo de texto original, "copiame.txt". Creacin de nuevos archivos: Con Batch podemos crear otros archivos. Para ello, tenemos que escribir algo

como esto: Cdigo : Cdigo HTML:


echo TEXTO DE PRIMERA LINEA > nombre.extensin echo TEXTO SEGUNDA LINEA >> nombre.extensin echo TEXTO SIGUIENTE LINEA >> nombre.extensin

Al escribir echo seguido de un texto y el signo > creamos un archivo con el nombre que siga. Si ocupamos un echo seguido de un texto y el doble signo > (>>) se escribir en la siguiente linea vaca del archivo que prosiga. Hagamos la prueba: Cdigo : Cdigo HTML:
echo echo echo echo Creando un Archivo de texto > nuevo.txt Esta es la Segunda linea >> nuevo.txt Y esta es la Siguiente >> nuevo.txt Esto esta genial >> nuevo.txt

Si ejecutamos eso, la pantalla negra se abrir y cerrar. Pero en la carpeta en la que est nuestro batch se abra creado un nuevo archivo "nuevo.txt" que si lo abrimos, dentro estar escrito lo que especificamos. Personalizando el SHELL Seguro que no te gusta mucho el aspecto del Shell. Aqu veremos como personalizarlo un poco. COLOR: Con la funcin color podemos cambiar los colores de fondo y las letras. Siendo su sintaxis: COLOR AB Donde A= El color de el Fondo y B= Color de las letras. Para ver todos los colores ve el MS-Dos y escribe color/? TITLE: Para cambiar el ttulo de la barra de tareas solo escribe: Title Loquequierascomotitulo Pause Personalizado:

No te gusta que al poner pause salga "Presione una tecla para continuar..."? Pues si escribes "pause>nul" no aparecer ni un texto. Entonces si anteponemos un mensaje, quedara as. Cdigo : echo Aprieta cualquier tecla para seguir pause>nul

Adems puedes jugar con los caracteres. Aqu un ejemplo, donde cambi los colores y jugu con los caracteres y personalic el pause:

El cdigo que emple para esto fue: Cdigo : Cdigo HTML:


@echo off color 30 echo ================================== echo = = echo = Personalizado = echo = = echo ================================== echo. echo. echo Esto esta personalizado, para salir presiona una tecla. pause>nul exit

Cabe mencionar que echo. (Echo seguido de un punto)sirve para saltarse una lnea. Matando Procesos: Alguna vez has presionado CTRL+ALT+DELETE? Si lo haces se abre el Administrador de tarea. En la pestaa procesos salen algunos procesos que estn andando en tu pc, hacindoles clics y apretando "terminar proceso" lo puedes acabar. Con batch eso es muy fcil, se usa la funcin: Taskkill (No funciona en todos los pc, para ver si esta disponible escribe taskkill/?) Su sintaxis es: Cdigo :

Cdigo HTML:
taskkill /f /im proceso.exe

/f Fuerza el trmino del proceso. Un ejemplo seria escribir. Cdigo : Cdigo HTML:
taskkill /f /im wmplayer.exe

Si lo ejecutas y tienes el Reproductor de Windows Media abierto, este se cerrar. ABRIENDO PROCESOS: Ahora abramos ese proceso que cerramos. Para abrir procesos se usa la funcin Start que funciona as: Cdigo : Cdigo HTML:
start proceso.exe

Tambin puedes abrir paginas web con tu explorador predeterminado. Ejemplo1: Cdigo : Cdigo HTML:
start wmplayer.exe

Se abrir el Reproductor de Msica Ejemplo2: Cdigo : Cdigo HTML:


start www.google.cl

Se abrir tu Explorador de Internet en Google. VARIABLES: Ahora aprendamos a declarar variables. Para crear una se escribe: Cdigo : Cdigo HTML:
set NOMBREVARIABLE = VALOR

Para llamarla debemos escribir su nombre entre los signos %% Ejemplo:

Cdigo : Cdigo HTML:


@echo off set Nombre= Javier Letelier Ruiz echo %Nombre% pause

La pantalla nos mostrara algo as:

Para cambiar el valor solo debemos hacer esto: Cdigo : Cdigo HTML:
set Nombre= Nuevo Valor

Si quieres que tu Variable sea dinmica, osea que el Usuario la elija antepones /p: Cdigo : Cdigo HTML:
set /p Nombre=Escriba su Nombre:

Donde el Batch se pausara solo mostrando el Mensaje que va luego de "=" dejando que se escriba algo. Tambin podemos multiplicarlas, sumarlas, etc... con /a: Cdigo : Cdigo HTML:
set numero1=2 ser numero2=43 set /a suma= %numero1% + %numero2% echo %suma% pause exit

Si ejecutamos este, nos devolver la suma de 2 + 43, 45. Creo que con esto ser suficiente. Ojal hayan entendido y les haya interesado el batch, que principalmente se puede usar para facilitar algunas tareas de Windows, ya que como veremos en la segunda parte del tip se pueden lograr cosas bastante interesantes.

http://www.diviertenet.com/windows/3225-programar-scripts-batchavanzados-en-windows-7-a.html

Programar Scripts Batch avanzados en Windows 7


A continuacin veremos los siguientes temas: * * * * * * * Uso de etiquetas Condicionales Creacin de Mens Apagado y Reiniciado de Pc Leer archivos externos Insertar al Registro Otras cosas tiles

Uso de etiquetas Como bien sabemos la lectura de los cdigos Batch se leen de una manera lineal, pero existe una forma para que el Batch se salte lineas, o vuelva a alguna anterior. Esto se logra con Etiquetas y la funcin GOTO. Para crear una etiqueta solo debemos escribir: Cdigo : Cdigo HTML:
:nombreEtiqueta

Dos punto ( seguido del nombre que le daremos a la etiqueta. De esta manera el GOTO funciona escribiendo GOTO seguido del nombre de la etiqueta, como vemos en el siguiente ejemplo. Cdigo : Cdigo HTML:
@echo off goto :mietiqueta echo Por que me saltan? :MiEtiqueta echo Hola, esta es la etiqueta y nos saltamos una parte del codigo. pause>nul exit

Dato Interesante: En Batch las Maysculas y Minsculas no se diferencian. Condicionales: El primer condicional que veremos el ms usado. IF: Se puede ocupar para comparar, cadenas, nmeros o para saber si existen

archivos. Ejemplo de sintaxis, if %cadena1% == %cadena2% OrdenAEjecutar Que se podra leer de la siguiente manera. Si cadena1 es igual a Cadena2 ejecutemos la Orden OrdenAEjecutar. Tambin 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 tambin 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: Cdigo : Cdigo HTML:
if 5 GTR 4 echo Hola FOR: 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 nmeros. Aqu se repetir un Echo, que imprimir nmeros 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 funcin que se ejecutara en cada repeticin del comando, en este caso un echo que imprimir la variable. Batch en algunos casos SI reconoce entre maysculas y minsculas, 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 continuacin: Listado de archivos: Cdigo : Cdigo HTML:
@echo off FOR %%x in (a*) DO echo %%x

pause

Este cdigo, listara todos los archivos que comienzan con A. Por que? * (asterisco) es un signo comodn, por lo cual al poner a*, estamos diciendo cualquier archivo que tenga una A delante y luego cualquier cosa. Otro ejemplo del uso de comodn, es listar archivos con extensin comn como seria este: Cdigo : Cdigo HTML:
@echo off FOR %%x in (*.jpg) DO echo %%x pause

Aqui nos estaria listando todos los archivos que tengan la extensin .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 quisiramos 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 quisiramos listar todos los documentos que estn dentro de una carpeta contando los que estn dentro de carpetas se ocupa solamente /R (Sin /D) FOR /R %%x in (a*) DO echo %%x Con esto creo que tenemos lo bsico, y ms importante de los condicionales. Talvez otro claber se anime a profundizar ms en el tema. Creacin de Mens: Como ya vimos Condicionales y Etiquetas les enseare una manera de hacer Mens. Comenzaramos indicando las instrucciones y las opciones, de esta manera: Cdigo : Cdigo HTML:
@echo off :Menu cls echo Seleccione su opcion tecleando el numero respectivo. echo. echo 1. Primera Opcion echo 2. Segunda Opcion echo 3. Salir

Luego para seguir ocuparamos esto: Cdigo : Cdigo HTML:


set /p var= if %var%==1 goto :Primero if %var%==2 goto :Segundo if %var%==3 goto exit if %var% GTR 3 echo Error goto :Menu

Con esto damos una variable en la que se guardara el numero insertado para luego ser verificado por los condicionales, si el numero es mayor que 3 nos avisara que no existe esa opcin. Tambin al principio cree una etiqueta para que se pueda volver al men y un "cls" para limpiar la pantalla. Para terminar creamos las respectivas etiquetas. Cdigo : Cdigo HTML:
:Primero cls color a Echo Esta es la Primera Echo Precione una tecla Pause>Nul goto :Menu :Segundo cls color 1a Echo Esta es la Segunda Echo Precione una tecla Pause>Nul goto :Menu

Opcion para volver al menu

Opcion para volver al menu

Quedando para terminar nuestro codigo as: Cdigo : Cdigo HTML:


@echo off :Menu cls echo Seleccione su opcion tecleando el numero respectivo. echo. echo 1. Primera Opcion echo 2. Segunda Opcion echo 3. Salir set /p var= if %var%==1 goto :Primero if %var%==2 goto :Segundo if %var%==3 goto exit if %var% GTR 3 echo Error

goto :Menu :Primero cls color a Echo Esta es la Primera Echo Precione una tecla Pause>Nul goto :Menu :Segundo cls color 1a Echo Esta es la Segunda Echo Precione una tecla Pause>Nul goto :Menu

Opcion para volver al menu

Opcion para volver al menu

Bueno, con eso les basta para imaginarse como crear sus mens personales. Como vieron puede cada seccin tener su color, incluso puedes cambiar la barra de titulo. Ve probando, no pierdes nada. Apagado y Reiniciado de Pc: Una cosa muy interesante que puedes hacer con Batch es Apagar y Reiniciar tu Pc, incluso programarlo para que apague a la hora que desees. Es notablemente fcil. se ocupa de la siguiente manera el apagado. shutdown -s -t Tiempo -c "Comentario" donde -s significa que lo apagaremos, -t debe ir seguido de los segundos que demorara apagar. En windos XP mostrara un contador, con el comentario que va luego de -c, pero en Windows Vista no abra ni un contador, solamente saldr una alerta con el Comentario, que ni siquiera es obligatorio. Bueno, de seguro quieres hacer la prueba. La puedes hacer pero antes de eso te recomiendo que leas lo siguiente. Puedes cancelar el apagado (Antes de que el contador termine) solamente escribiendo shutdown -a ya sea en un archivo de texto con extensin bat, como en el mismo Shell. Entonces, pues has la prueba Cdigo : Cdigo HTML:
shutdown -s -t 999999 -c "Esto se esta apagando"

Tendrs suficiente tiempo para ejecutar el siguiente cdigo. (11 das :lol: ) Cdigo : Cdigo HTML:
shutdown -a

Con esto ya probamos los dos y podemos ser felices. Ok, si en vez de ocupar -s usas -r el PC se reiniciara.

Tambin puedes forzar el cierre de los programas, para que no de tiempo de guardar nada. Tan solo ocupando -f Un ejemplo de un Pc, que se Apaga Forzosamente y que puede daar el pc y luego se reinicia es este: Cdigo : Cdigo HTML:
shutdown -r -f -t 0 -c "Bye"

(No lo recomiendo probar en tu pc, Ya que apaga el pc en 0 segundos sin preguntar nada. ) Para programar un apagado lo veremos al final en los Datos Extras, ya que con la funcin AT puedes programar el apagado. Leer archivos externos: Para leer un archivo externo con Batch, como un archivo de texto por ejemplo. Se usa el siguiente cdigo: Cdigo : Cdigo HTML:
type "NombreDelArchivo.txt"

Simple no? Insertar al Registro: Insertar al registro tu Batch puede ser muy til, la verdad yo no entiendo mucho del registro pero le un poco y aqu tienen un ejemplo que se encuentra a ser sincero en muchas web. Donde aremos que nuestro batch se ejecute con el Sistema. Cdigo : Cdigo HTML:
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v MIBATCH.bat /t REG_SZ /d C:\MIBATCH.bat

Con la funcin REG ADD Agregamos algo al registro. Con otros comando podemos borrar. Lo que sigue es la "Direccin" de donde insertaremos el registro que en este caso sera para que nuestro batch se ejecute al iniciar Sesin. En medio de toda la direccin se puede leer MIBATCH.bat yo puse el nombre del Batch pero tambin se puede poner cualquier otra cosa. Ms adelante donde dice C:\MIBATCH.bat, es la direccin completa de donde esta nuestro Batch.

Con solo esta linea estamos listos. Haz la prueba! Otras cosas tiles: Para terminar hablare de pequeas funciones que pueden ser de utilidad. Msg Esta funcin tiene otras utilidades, pero les enseare esta que no funciona en todos los PC. Sirve para abrir una alerta con un mensaje su utilizacin es la siguiente: Cdigo : Cdigo HTML:
msg * EsteEsMiMensaje

AT Esta es una de las que ms me gusta, es para programar alguna accin a cierta hora. Ejemplo: Cdigo : Cdigo HTML:
At 20:00 msg * Son Las 8 de la noche

Con esto a las 20:00 nos aparecer un mensaje que nos dir que son las 8 de la Noche. Tambin puedes programar un apagado o cualquier Cosa. Si la hora que das ya paso, se tomara como para el da siguiente. Creo que he terminado, me cost un poco. Ojala no me haya faltado nada. Disfrtenlo y seria bueno que los Clabers aporten con ms informacin. Yo creo que seria til para todos, incluyndome. Suerte.

Tutorial Linux: crear, ejecutar y programar un script


Que tal, en este post voy a describir sinteticamente un script que obtiene la informacin de espacio en disco, en las particiones linux (en GB y MB) y lo manda en un txt a un recurso compartido en un servidor samba. Como agregado lo pondremos en el crontab (programador de tareas en linux) y haremos que el script se ejecute a las 9 de la maana todos los das. El sistema sobre el cual fu hecho es (Red Hat) que es el que tengo en el laburo (lo mismo sera en Fedora), pero es ms o menos igual para las dems distribuciones de Linux Primero creamos un archivo info_disco.sh (la extensin sh indica que ser

ejecutado por el shell). Linux#vi info_disco.sh #!/bin/sh smbmount //192.168.1.1/publico /temporal -o guest date > /temporal/info_disco.txt df -h >> /temporal/info_disco.txt smbumount /tmp/temp El script se podra resumir as: -La primera linea es indispensable en todos los archivos de script. -En la segunda, previa creacin del directorio "temporal" con la orden mkdir Linux#mkdir temporal se monta el directorio compartido "publico" del servidor samba "192.168.1.1" en el directorio local "temporal". En este caso el directorio "publico" del servidor samba es un directorio con permisos de acceso para todos, por eso usamos el usuario guest (invitado), de otra forma deberiamos poner el usuario y contasea. -En la tercera se crea un archivo "info_disco.txt" y se introduce la fecha (linea optativa) -En la cuarta linea se ejecuta el comando df -h (la opcion -h es la que nos da el tamao en GB y MB, si no la ponemos por defecto nos dar el tamao en bytes) que obtiene la info de disco y la agrega al archivo "info_disco.txt" (el simbolo > reemplaza el archivo y >> agrega). -En la ltima linea se desmonta el directorio "temporal" Este archivo lo colocamos en el directorio /usr/bin y lo probamos. Linux#sh info_disco.sh Si funciona lo agregamos en la programacin del archivo /etc/crontab, para que se ejecute a la 9:01 todos los das. Linux/etc#vi crontab y agregamos la siguiente lnea: 01 09 * * * root usr/bin/disco.sh No se olviden de iniciar el demonio crond, en el caso de Red Hat y Fedora se inicia as: Linux# service crond start -------------------------------------------------------Versin simplificada: Para aquellos que o tienen un servidor de recursos compartidos y quieren probar el script en forma local ah va el archivo: Linux#vi info_disco.sh #!/bin/sh

date > /temporal/info_disco.txt df -h >> /temporal/info_disco.txt Por supuesto previamente debemos crear el directorio "temporal" (en la raiz del sistema en este caso o donde queramos cambiando el path /temporal por el nuestro) Los pasos para ejecutarlo y programarlo como tarea son los mismos que el anterior. Espero haber sido claro y que a alguien le sea til. Hasta la prxima. Marcelo PD: Cualquier duda avisen y si necesitan algn script especial, escriban y quiz pueda ayudar.

Scripts de Windows

Scripts de Windows XP. Archivos *.cmd y *.bat


Poner comentarios
Para poner comentarios, se utiliza la orden rem, ejemplo
rem Esto es un comentario. El intrprete lo ignora.

Evitar echo al ejecutar comandos


Para evitar echo al ejecutar los comandos (evitar que se escriba el comando que se est ejecutanto), hay que poner arroba @ delante del comando. Para evitar echo por defecto, se utiliza la orden @echo off, en ese caso solo se muestra lo que pongamos con la orden 'echo' ejemplo:
@rem El siguiente comando no se muestra: @copy kk.txt c:\temp @echo off rem El siguiente comando tampoco se muestra copy kk.txt c:\temp echo Esto s que se muestra

Utilizar variables
Para establecer el valor de una variable, se usa la orden set. Si ejecutamos 'set' sin argumentos, nos muestra el contenido de todas las variables actuales. Ejemplos:
set ruta=\\192.168.1.2\compartida

@echo La ruta es %ruta% @echo Las variables actuales son: set

Para mostrar el contenido de una variable, se utiliza el smbolo porcentaje '%' antes y despus del nombre de la variable. Para mostrar una porcin del contenido de una variable, se usa el smbolo virulilla '~' seguido de dos parmetros: la posicin inicial y el nmero de caracteres. Ejemplos:
@echo off echo %date% set fecha=%date:~6,4%%date:~3,2%%date:~0,2% echo %fecha%

Para leer por teclado un valor y asignarlo a una variable, se utiliza set /p. Para hacer operaciones matemticas se utiliza set /a.
@echo off set anoactual=2009 set /p anonac=En qu ao naciste? (4 dgitos) set /a edad=anoactual-anonac-1 echo Si an no has hecho los aos, tienes %edad% aos

Bucles
Bucles numricos: for /L
REM mostrar nmeros impares del 1 al 9 en pantalla @echo off set inicio=1 set final=9 set salto=2 echo Desde %inicio% hasta %final% de %salto% en %salto% for /L %%x IN (%inicio%,%salto%,%final%) DO @echo %%x REM Lanza ping a la red 192.168.1.1-254 y espera 30 ms. REM Si luego ejecutas arp -a vers las MAC de la red. FOR /L %x IN (1,1,254) DO ping 192.168.1.%x -n 1 -w 30

Realizar Clculos y usar funciones


REM Funciones en cmd @echo --------------------------@echo off set x=2 set y=3 call :Area %x% %y% result echo/El area es: %result% goto :EOF :Area %width% %height% result setlocal ENABLEEXTENSIONS set /a res=%1*%2 endlocal&set %3=%res%&goto :EOF

Varios
Para ejecutar varios comandos en una sola lnea se pone dos veces el smbolo and '&', ejemplo:
c: && cd \temp && del *.* /q

Para volcar la salida de un comando a un archivo se utiliza el smbolo 'mayor que' '>'. Esto crear un nuevo archivo. Si el archivo existe, lo machaca. Si queremos aadir a un archivo existente, se utiliza doble smbolo '>>', ejemplos:
c: && cd \ && dir *.* /s > archivos.txt dir d:\*.* /b >> archivos.txt pathping www.google.es: muestra los routers atravesados hasta llegar al destino shutdown -a: anular la cuenta atrs del apagado perfmon.msc: Arranca el monitor de sistema Comandos de unix para windows: Unix Utils. Tendremos en Windows un montn de comandos muy tiles en Unix: zip, unzip, wget, wput, wc, tar, gzip, du, grep, bzip2, unrar, md5sum, diff, sort, etc.... Descomprimir directamente en C:\WINDOWS para poder ser ejecutados desde cualquier carpeta.

Crear alias
Para crear alias en el smbolo de sistema de Windows, hay que utilizar la orden doskey. Previamente hay que crear un archivo de alias como el siguiente, y luego ejecutar cmd /k doskey /MACROFILE=C:\alias.txt
REM Archivo c:\alias.txt REM Para cargar alias, ejecutar: cmd /k doskey /MACROFILE=C:\alias.txt .=cd.. editaralias=notepad c:\alias.txt cdt=c: && cd \temp cdd=c: && cd \Alberto\MisDocumentos\DocumentosImportantes updatedb=dir c:\*.* /a /b /s > c:\files.txt locate=grep -i $1 c:\files.txt

Conectar y desconectar carpetas compartidas


Se utiliza el comando net use. Ejemplos:
set ruta=\\192.168.1.2\compartida set user=alberto set pass=kkk123 net use x: %ruta% /user:%user% %pass% copy *.zip x:\ /Y net use x: /delete

Configurar IP desde linea de comandos


netsh interface ip set address "conexin de rea local" static 192.168.1.50 255.255.255.0 192.168.1.1 1 netsh interface ip set address "conexin de rea local" dhcp

Enrutar para una red concreta, por otra puerta de enlace


route -p add 10.0.0.0 mask 255.0.0.0 10.0.0.1 metric 1

Hola a todos, espero me puedan ayudar.

Quisiera cmo podra hacer para poder programar la copia diaria y a una determinada hora de una carpeta con todos sus archivos y subcarpetas desde un servidor windows 2003 a otro windows 2003.

Me dijeron que tendra que usar un script, pero no s cmo hacerlo ni donde colocarlo.

Gracias por sus aportes.

Respuestas
De nada, para eso estamos... Para copiar directorio y sus subdirectorios debera ser este: xcopy

/e

ruta_de_la_carpeta ruta_de_destino.
Copia rboles de archivos y directorios. XCOPY origen [destino] [/A | /M] [/D[:fecha]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:archivo1[+archivo2][+archivo3]...] origen Especifica el archivo(s) que hay que copiar. destino Especifica la ubicacin y/o nombres de archivos nuevos. /A Copia slo archivos con el atributo del archivo establecido, no cambia el atributo. /M Copia slo archivos con el atributo del archivo establecido, desactiva los atributos del archivo. /D:m-d-y Copia archivos cambiados durante o despus de la fecha. Si no se da una fecha, copia slo aquellos archivos cuya fecha de origen es ms nueva que la fecha de origen.

/EXCLUDE:archivo1[+archivo2][+archivo3]... Especifica una lista de archivos que contienen cadenas. Los archivos deben tener una cadena por lnea. Cuando cualquiera de las cadenas que coincidan con cualquier parte de la ruta absoluta del archivo que se debe copiar, ese archivo se excluir de ser copiado. Por ejemplo, el especificar una cadena como \obj\ u .obj excluir todos los archivos por debajo del directorio obj o todos los archivos con la extensin obj respectivamente. /P Pregunta antes de crear cada archivo de destino. /S Copia directorios y subdirectorios ,exceptuando los vacos. /E Copia directorios y subdirectorios, incluyendo los vacos. Igual que /S /E. Puede ser usado para modificar /T. /V Verifica el tamao de cada archivo nuevo. /W Pide que se presione una tecla antes de copiar. /C Continua copiando incluso si ocurren errores. /I Si el destino no existe y hay que copiar m s de un archivo, se asume que el destino debe ser un directorio. /Q No muestra nombres de archivos mientras copia. /F Muestra todo el origen y el destino de los nombres de archivo mientras se copian. /L Muestra los archivos que ser n copiados. /G Permite la copia de archivos destino cifrados para el destino que no es compatible con el cifrado. /H Copia archivos ocultos y tambin archivos del sistema. /R Sobrescribe archivos de slo-lectura. /T Crea una estructura de directorio, pero no copia archivos. No incluye directorios o subdirectorios vacos. /T /E incluye directorios y subdirectorios vacos. /U Copia slo archivos que ya existen en el destino. /K Copia atributos. Xcopy normal, restablecer atributos de slo lectura. /N Copia utilizando los nombres cortos generados. /O Copia archivos de propiedad e informacin ACL. /X Copia archivos de configuracin de auditora (implica /O). /Y Suprime la pregunta de confirmacin para sobrescribir un archivo de destino existente. /-Y Pregunta por la confirmacin de sobrescritura de un archivo de destino existente. /Z Copia archivos de red en modo reiniciable. El modificador /Y debe ser preestablecido en la variable de entorno COPYCMD. Esto se puede sobrescribir con /-Y en la lnea del comando. Como puedes ver, tienes infinidad de opciones para copiar directorios y sus subdirectorios. En tu caso, puedes utilizar los parametros /S si quieres excluir los directorios vacos o /E si quieres incluirlos. Echale un vistazo a todos los parmetros que te he listado arriba, tal vez ms de uno te puede resultar til... Si mis mensajes han respondido tu duda, no olvides marcarlos como respondido para que sirvan como referencia a otros usuarios con el mismo problema! Un saludo

Script para apagar la pc


Hola!

En mi primer post les traigo este mini tutorial para apagar automaticamente la pc cuando ustedes quieran. He visto tutoriales parecidos pero ninguno me sirvio en su momento (aun asi, si es repost me avisan que se borra). Esta hecho en Vista. Aca va... Lo primero que hay que hacer es crear el script. Para eso abrimos el bloc de notas y escribimos "shutdown -s -t 2". Este comando le dice a la pc que apartir de dos segundos luego de su ejecucion, se apague.

Luego tenemos que guardar el archivo con el nombre que querramos y ponerle la extension .bat

Asi se vera nuestro archivito...

Lo siguiente es buscar y abrir el Programador de Tareas. Lo mas sencillo para encontrarlo es escribir en la barra de busqueda "programador" que en seguida salta.

Abierto el Programador de Tareas crearemos una nueva tarea basica que sera la de apagar el equipo.

Se abrira una ventana en donde tendremos que poner el nombre de la tarea y si queremos, alguna descripcion. Completado esto debemos elegir el Desencadenador donde pondremos para que se ejecute una sola vez nuestra tarea (si quieren pueden apagarla todos los dias). Apretamos "Siguiente" y elegimos cuando queremos que se apague nuestra pc.

Apretamos otra vez "Siguiente" y dejaremos seleccionada la opcion de "Iniciar un Programa" Otra vez mas damos en "Siguiente" y aca es donde entra en accion nuestro archivo.

En donde dice "Programa o Script" seleccionamos el archivo que ya tenemos creado, como se ve en la imagen de arriba. El resto lo dejamos sin completar. Apetamos por ultima vez "Siguiente" y se nos mostrara un resumen de nuestra tarea. Apretamos en finalizar y ya tendremos nuestra tarea programada. Nuestra PC se apagara a la hora que le dijimos y todo sin la ayuda de ningun programita extrao descargado de la web. Espero les sea util
http://www.taringa.net/posts/info/2341848/Script-para-apagar-la-pc.html

Das könnte Ihnen auch gefallen