manual batch completo

34
MANUAL BATCH Hay que decir que una vez más, se ignora por completo quien ha hecho realmente este tutorial, de manera que no pondré mi firma, pero tampoco la de otros. En vista de que algunos tutoriales en batch no tenían todo y en base a algunas preguntas he decidido buscar y postear el siguiente tutorial! 1. Introducción Las siglas BAT características de los guiones en entorno MSDOS provienen del hecho de que son procesos BATCH. En Msdos los nombres de los archivos podían tener hasta 8 letras para el nombre y tres letras para la extensión. Dado que solo se disponía de tres letras para identificar la clase de archivo se optó por poner BAT (aunque a partir de Windows 2000 también se puede usar CMD). Las siglas BAT características de los guiones en entorno MSDOS provienen del hecho de que son procesos BATCH. En Msdos los nombres de los archivos podían tener hasta 8 letras para el nombre y tres letras para la extensión. Dado que solo se disponía de tres letras para identificar la clase de archivo se optó por poner BAT (aunque a partir de Windows 2000 también se puede usar CMD). Los proceso batch son nativos de MVS/DOS y VSE/DOS que suelen funcionar con JCL. RPG es un lenguaje basado íntegramente en la metodología batch. Desde entonces cada sistema operativo que ha salido ha incluido un sistema de scripting. Los grandes sistemas se quedaron con JCL/JOBS mientras que la aparición de UNIX, MINIX y demás empezaron a utilizar una shell diferente y mas interactiva con un espacio de consola para los usuarios y un lenguaje apropiado para administrar la estación (esto no era necesario en MVS o VSE porque el usuario actuaba sobre pantallas tontas 3270) Se llamó shell y se conoce habitualmente como sh. Posteriormente salieron otras entre

Upload: alexanderae

Post on 13-Jun-2015

16.371 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Manual Batch Completo

MANUAL BATCH

Hay que decir que una vez más, se ignora por completo quien ha hecho realmente este tutorial, de manera que no pondré mi firma, pero tampoco la de otros.

En vista de que algunos tutoriales en batch no tenían todo y en base a algunas preguntas he decidido buscar y postear el siguiente tutorial!

1. IntroducciónLas siglas BAT características de los guiones en entorno MSDOS provienen del hecho de que son procesos BATCH. En Msdos los nombres de los archivos podían tener hasta 8 letras para el nombre y tres letras para la extensión. Dado que solo se disponía de tres letras para identificar la clase de archivo se optó por poner BAT (aunque a partir de Windows 2000 también se puede usar CMD).

Las siglas BAT características de los guiones en entorno MSDOS provienen del hecho de que son procesos BATCH. En Msdos los nombres de los archivos podían tener hasta 8 letras para el nombre y tres letras para la extensión. Dado que solo se disponía de tres letras para identificar la clase de archivo se optó por poner BAT (aunque a partir de Windows 2000 también se puede usar CMD).Los proceso batch son nativos de MVS/DOS y VSE/DOS que suelen funcionar con JCL. RPG es un lenguaje basado íntegramente en la metodología batch.

Desde entonces cada sistema operativo que ha salido ha incluido un sistema de scripting. Los grandes sistemas se quedaron con JCL/JOBS mientras que la aparición de UNIX, MINIX y demás empezaron a utilizar una shell diferente y mas interactiva con un espacio de consola para los usuarios y un lenguaje apropiado para administrar la estación (esto no era necesario en MVS o VSE porque el usuario actuaba sobre pantallas tontas 3270) Se llamó shell y se conoce habitualmente como sh. Posteriormente salieron otras entre las cuales están bourne shell again conocida como bash.

Microsoft hizo una para su sistema operativo que copió descaradamente de bash. Invirtió la barra para identificar el path correcto a un archivo y adaptó el lenguaje a un sistema operativo monousuario e incapaz de trabajar en red. Este es el lenguaje BAT. Con los años microsoft se ha visto obligado a modificarlo considerablemente (sobre todo los comandos de entorno de red) dadas las muchas limitaciones que tenía. Aún hoy es increíblemente pobre en comparación con las de otros sistemas operativos. El lenguaje bat es un complemento en Windows y no una parte fundamental como en los demás.

2.- Qué se puede hacer con ellos?Pues se puede hacer de forma automatizada todo aquello que se pueda hacer en la consola de Msdos. Se pueden ejecutar programas, enviar y recibir parámetros y automatizar tareas

3. Creación de un programa.BATPues son texto plano. Quiere eso decir que se pueden escribir en el block de notas, utilidad Edit de Msdos  o algún editor ascii.

Page 2: Manual Batch Completo

Al guardarlos deben tener la notación de nombres propia de Msdos. Esto es un nombre con máximo 8 letras (espacios y \ no permitidos), luego un punto y la extensión que en este caso es obligatoriamente BAT (para compatibilidad con todas las versiones Windows) o CMD (a partir de Windows 2000).

Para crearlos desde la misma consola puedo utilizar varios sistemasMediante la orden COPY

copy con: nombre_de_archivo.bat    Orden de creación de archivo con el nombre 'nombre_de_archivo.bat'...     ...     comandos    órdenes a ejecutar...     ...     Ctrl + Z                                            Fin y grabación del archivo en el directorio actual    

Método 2 mediante la redirecciónecho 1¨? línea a insertar >nombre_de_archivo.bat    Se graba el fichero 'nombre_de_archivo.bat con la primera orden a ejecutarecho restantes l??neas >>nombre_de_archivo.bat    Se añade la segunda ordenecho restantes l??neas >>nombre_de_archivo.bat    Se añade la tercera orden ...

En cualquier caso para modificarlos podemos utilizar la utilidad Edit de Msdos (abriendo el archivo concreto y luego grabando los cambios) o el block de notas.

4. Redirección de entrada/salidaPues al igual que en unix se puede hacer que la salida de un comando sirva como entrada de otro. Cada proceso tiene ya predeterminados sus dispositivos de entrada y salida. Mediante la redirección podemos cambiar eso.DISPOSITIVO              SALIDACON                   Salida por la pantallaPRN                   Salida por la impresora por defectoLPT1                   Salida por la 1¨? impresora en paraleloCOM1           Salida por el primer puerto serieCOM2           Salida por el segundo puerto serie

Así, si ejecuto la orden 'dir' la orden saldrá en su dispositivo por defecto (CON) y ver?© el resultado por pantallaPara redireccionar se utilizan los operadores < y > que sirven para indicar que salida debe ir a qué lugarPor ejemplo si yo quiero redireccionar la salida estandar de dir para que en vez de ir a la pantalla vaya a la impresora har?©dir >prn     Con lo que la salida natural del comando DIR en vez de ir a su sitio natural (la pantalla)

Page 3: Manual Batch Completo

ir?? a la impresora por defecto.

5. FiltrosLos filtros son ??rdenes que sirven para formatear la salida del comando de acuerdo a nuestros intereses. Se utilizan mediante la barra vertical (Alt 124).El filtro SORT sirve para ordenar la salidaDIR | SORT     El filtro MORE sirve para pausar la salida cada pantalla para que pueda ver todos los datos de salida con tranquilidad. Pasa de pantalla a pantalla al pulsar una tecla.DIR | MORE

6. M??scaras y comodinesPara seleccionar varios archivos a la hora de realizar una determinada operaci??n existe la posibilidad de utilizar m??scaras. Estas m??scaras utilizan los caracteres comodines para describir que archivos deben verse afectados. Para ello y teniendo en cuenta que los nombres de los archivos deben cumplir la notaci??n de msdos (8 letras sin espacios como m??ximo, luego un punto y tres letras como m??ximo de extensi??n) se pueden utilizar los llamados comodines.*   Equivale a varios caracteres?   equivale a un solo caracter.

EjemplosCódigo:*.cfg         seleccionar todos los archivos que tengan la extensi??n cfga*.cfg seleccionar todos los archivos que comienzen por a y tengan la extensi??n cfga*b.cfg seleccionar todos los archivos que comienzen por a, acaben por b y tengan la extensi??n cfg*asa*.cfg seleccionar todos los archivos que contengan 'asa' y tengan la extensi??n cfgc?asa.cfg seleccionar todos los archivos que contengan una C, luego un caracter cualquiera y luego 'asa'. Debe tener tambi?©n la extensi??n cfgc?b*.* seleccionar todos los archivos que empiezen por c, tengan un caracter cualquiera, luego una b y cualquier extensi??n*.b?t seleccionar todos los archivos que tengan una extensi??n que empieze por b, luego un caracter cualquiera y luego una t.

7. Trayectos (paths)La trayectoria es el nombre completo de un archivo e indica la situaci??n exacta de un archivo y su nombre.

leeme.txt   el archivo se llama indico su nombre, pero nada mas. Se da por supuesto que se encuentra en el directorio actual.c:\leeme.txt   el archivo que me interesa se llama leeme.txt y se encuentra en el directorio ra??z de C.Dado que en msdos no se admiten nombres largos (mas de 8 letras) ni espacios, cuando quiero utilizar un nombre de windows en msdos debo saber que este ser?? reconvertido a su

Page 4: Manual Batch Completo

nombre corto. Este se obtiene a?±adiendo los seis primeros car??cteres v??lidos del nombre, luego el signo ~ (alt 126) y luego un n??mero.

De esta forma un archivo que se encuentre en Mis documentos en win98 tendr?? el path

c:\misdoc~1\leeme.txt     Y en Windows 2000/XP

c:\Docume~1\Usuario\misdoc~1\leeme.txt    Tambi?©n se pueden utilizar (mientras las comillas para delimitar el nombre

"c:\Mis Documentos\leeme.txt"     Esta ser??a la trayectoria de mimusica.mp3 (en Mis Documentos en Win 98)

c:\misdoc~1\mi~1\mimusica.mp3     Qu?© equivale a     "c:\Mis Documentos\Mi M??sica\mimusica.mp3"

8. Unidades L??gicasSiempre es una letra seguida del signo dos puntos.    A: = disquetera    B: = reservada para segunda disquetera    C: = primera partici??n (normalmente es la que arranca)    D: = segunda partici??n (generalmente el cdrom)Por eso si se crea una unidad l??gica mediante netbios en windows, esta puede tener un nombre msdos para poder acceder a ella desde la consola. La letra que se asigne no puede corresponder a una unidad l??gica existente.

9. Comandos MSDOSLos comandos en msdos tienen las siguientes caracter??sticas:a) el formato general es COMANDO [OPCIONES] [ARGUMENTOS]b) Da igual que se usen may??sculas o min??sculasc) Los argumentos y opciones se separan por espacios9.1 Comandos b??sicos de consola9.1.1 CLSBorra la pantalla ( viene de CLear Screen) ^^

9.1.2 Echo [par??metros]Tiene varias posibilidades:

Page 5: Manual Batch Completo

* ECHO sin par??metros saca el estado en que se encuentra la variable echo (on u off) * ECHO ON activa el echo (como en un terminal TTY) por lo que los comandos se ver??n en pantalla y luego su resultado * ECHO OFF desactiva el comando echo y ya se ver??n los resultados de la ejecuci??n del comando, pero no el comando en s?? mismo * ECHO LITERAL saca por pantalla el literal. Por eso al hacer echo literal >fichero.bat estamos redirigiendo la salida de echo literal (que tendr??a que salir por la pantalla) al archivo fichero.bat.

9.1.3 Pause [mensaje]

Sirve para sacar un mensaje y parar la ejecuci??n hasta que se pulse una tecla

9.1.4 Prompt [par??metros]

Sirve para cambiar el prompt de msdos.$p Mostrar el trayecto actual$g Mostrar el separador >$l Mostrar el separador <$b Mostrar el separador |$q Mostrar el separador =$$ Mostrar el separador $$t Mostrar la hora$d Mostrar la fecha$v Mostrar la versi??n del sistema$n Mostrar la unidad actual$h Retroceso. Borra el caracter previo$e Escape. Muestra el caracter \$_ Retorno de carro y salto de l??nea (equivale a chr 10 y chr 13 ascii

Por eso si ponemos prompt $p$g el cursor muestra la trayectoria donde estamos y luego el separador

Es posible a?±adir texto (por ejemplo prompt Mi_nombre $p$g

9.1.5 Date [fecha]

Ver/poner la fecha del sistema

9.1.6 Time [hora]

Ver/poner hora del sistema

Page 6: Manual Batch Completo

9.1.7 Ver

Versi??n del sistema

9.1.8 Vol [Unidad]

Volumen de la unidad especificada.

9.1.9 Path [trayecto]

Indica un trayecto por defecto si se produce una petici??n de un archivo que no est?? en el directorio actual.Por eso en windows 98 suele haber una l??nea en autoexec.bat que es path c:\windows; c:\windows\command que indica que si se solicita un ejecutable que no est?© en el directorio actual, lo busque primero en la carpeta windows y luego en la subcarpeta command.

En Windows 2000 y XP no se utiliza autoexec.bat pero se existe una variable del sistema llamada PATH.

9.1.10 KEYB c??digo_pais,juego_de_caracteres,definici??n_de_teclado,

El c??digo de pa??s de espa?±a es el 'sp'El juego de caracteres aplicable a espa?±a es el 850 ?? 437El archivo de definici??n de teclado es keyboard.sysPara configurar un teclado en espa?±olkeyb sp,,c:\windows\command\keyboard.sys

9.1.11 SYS [unidad]

Transfiere el sistema operativo msdos a la unidad especificada.

9.1.12 DOSKEY

Muestra los comando utiliados anteriormente al pulsar la tecla arriba del teclado.

9.1.13 MEM [par??metros]

Muestra la memoria usada y libre en el sistema/p Muestra por programas/d por programas y controladores/c por tama?±o

Page 7: Manual Batch Completo

9.2 Comandos de manejo de archivos

9.2.1 COPY [opciones] [origen] [destino]

Sirve para copiar archivos de un lugar a otro. el origen debe ser un trayecto completo de donde est??n los archivos a copiar. Si se omite se entiende que en el directorio actual. El destino debe ser una trayectoria completa de donde dejar el/los archivo(s)copy miarchivo.txt c:\ copiarlo al directorio ra??z de Ccopy miarchivo.txt c:\miarch.txt copiarlo y adem??s cambiarle el nombre a miarch.txcopy *.txt a:\ copiar todos los archivos que tengan la extensi??n txt a la unidad Acopy *.txt c:\misdoc~1 copiar todos los archivos que tengan la extensi??n txt al directorio Mis documentos (cuyo nombre corto es misdoc~1).

Tambi?©n se pueden concatenar archivoscopy archivo1.txt+archivo2.txt c:\archivo3.txt Unir archivo1.txt y archivo2.txt y dejarlo en archivo3.txt en C:\

Las opciones son/A Tratar el archivo como un archivo ASCII/B Tratar el archivo como un archivo binario/D Permite que el archivo destino se grabe descifrado/V Verifica la copia/N Al copiar usa el nombre corto en vez del nombre largo/Y Suprime la pregunta de confirmaci??n si se va a sobreescribir alg??n archivo/Z Copia archivos de red en modo reiniciable/S Copia subdirectorios/E Crea subdirectorios en el destino aunque los subdirectorios originales est?©n vac??os.

Se pueden guardar estos valores por omisi??n en la variable de entorno COPYCMD (solo a partir de Windows 2000).

9.2.2 DEL [opciones] [archivo]

Borra archivos/P Pide confirmaci??n en cada caso/F Modo force. Borra incluso los archivos de solo lectura/S Borra tambi?©n los subdirectorios./Q Modo silencioso. No pide confirmaci??n en ning??n caso

9.2.3 MKDIR o MD [directorio]

Page 8: Manual Batch Completo

Crear directorio

9.2.4 RMDIR o RD [directorio]

Borra un directorio. El directorio debe estar vac??o

9.2.5 CHDIR o CD [path]

Cambia al directorio indicado.CD "c:\archivos de programa" Trasladarse al directorio Archivos de programaCD .. Trasladarse al directorio superiorCD \ Trasladarse al ra??z

9.2.6 DIR [opciones][trayecto]

Saca una lista del contenido del directorio especificado en el trayecto. Si no se especifica nada, se entiende el actual.Si se pone como par??metro /W saca un listado resumido. Si se pone como par??metro /P saca un listado utilizando el filtro more.

9.2.7 ATTRIB [/S] [archivo]

Muestra los atributos de los archivos indicados y en su caso permite cambiarlos.

Con el par??metro /S busca tambi?©n en subdirectorios.

Los atributos son: H -> oculto. Se activa con +h y desactiva con -h R -> Lectura. Solo lectura con +r, normal con -r S -> Sistema. Se activa con +s y desactiva con -s A -> Modificado. Para copias de seguridad incrementales. +a indica modificado y -a indica no modificado.ATTRIB archivo.txt Muestra los atributos de ese archivoATTRIB -r archivo.txt Pone el atributo solo lectura a archivo.txt

Attrib miarchivo.txt (mostrar los atributos de miarchivo.txt)attrib *.exe +r +r +s (pone a todos los archivos con extensi??n exe como ocultos, del sistema y read only)

9.2.8 RENAME o REN [Nombre_antiguo] [Nombre_nuevo]

Page 9: Manual Batch Completo

Renombra un archivo.

Si se ponen m??ltiples archivos todos se renombran mediante la misma reglaREN *.txt *.bak Renombra todos los archivos TXT a BAK

9.2.9 TYPE fichero

Muestra el fichero. Se suele utilizar con el filtro MORE si se desea que se vea paginadotype archivo.txt | more

o bien con redirecci??n a la impresora para imprimirlotype archivo >prn

9.3 Comandos de disco

9.3.1 Diskcopy [origen] [destino]

Copia un disquete completo de origen a destinodiskcopy a: a: copia un disquete de unidad A a la unidad Adiskcopy a: b: copia un disquete de unidad A a la unidad B

9.3.2 Fdisk [/mbr]

Utilidad para gestionar las particiones de un disco.

Con el par??metro /mbr se puede borrar el mbr (Master Boot Record) de un disco

9.3.3 Format [/s] [/a]

Formatear disquetes.

Con el par??metro /s se transfiere adem??s el sistema operativo (v??lido para win98 y anteriores)

Con el par??metro /a se realiza un formateo r??pido.

9.3.4 label [unidad][etiqueta]

Poner etiqueta a un volumenlabel a: copia Poner etiqueta copia en el disquetelabel c: DiscoDuro Poner etiqueta DiscoDuro al disco duro

9.3.5 Mscdex [/d:montaje]

Page 10: Manual Batch Completo

Monta un cdrom o dvd ya configurado mediante un driver de dispositivo. El punto de montaje es el especificado en config.sys en el driver de dispositivo.

V??lido en Win98 y anteriores

9.3.6 Scandisk [unidad] [/autofix] [/scanonly] [/surface]

Comprueba la integridad de un disco en Windows 98 y anteriores.

Con el par??metro autofix repara autom??ticamente los errores encontrados.

Con el par??metro scanonly solo comprueba el disco y muestra estad??sticas

Con el par??metro Surface realiza una comprobaci??n de superficio del disco

9.4 Comandos de red

9.4.1 ARP [opciones]

Ver/Modificar la tabla de ARP.arp -a Muestra la tabla de arpapr -s IP mac Agrega una entrada a la tabla de arp

9.4.2 FTP

Cliente ftp de windows

9.4.3 IPCONFIG [Par??metros]

Mostrar los par??metros de conexi??n tcp/ipipconfig /all muestra toda la informaci??n de configuraci??n/release adaptador libera la ip del adaptador especificado/renew adaptador renueva la ip para el adaptador especificado/flushdns purga la cach?© de resoluci??n de dns/registerdns actualiza las conexiones dhcp y vuelve a registrar los nombres dns/displaydns muestra el contenido de la cache de resoluci??n dns

9.4.4 NBTSTAT [opciones]

Hace un estado de la red por netbiosnbtstat -a Lista la tabla de nombres por nombre

Page 11: Manual Batch Completo

nbtstat -A Lista la tabla de nombres por IPnbtstat -c Lista la cach?© nbt mostrando nombres y direcciones IPnbtstat -n Lista los nombres netbios localesnbtstat -r Lista de nombres resueltos por difusi??n y WINSnbtstat -R Purgar y recargar la cache nbtnbtstat -S Lista las sesiones con las IP de los destinosnbtstat -s Lista las sesiones con los nombres de los destinos

9.4.5 Net [opciones]

Conmando para acceder a dominios, crear/quitar sesiones netbios, montar unidades netbios, ...

Algunos comandos tambi?©n funcionan en win9X, pero a partir de Win2k se a?±adieron muchos par??metros nuevos.

Tiene muchas posibilidades y se usa siempre con par??metros. Los par??metros son:Servicios net start X Inicia el servicio Xnet stop X Termna el servicio Xnet config server Muestra/modifica servicios. /hidden=yes/no indica si el servidor debe mostrarse en la lista de ordenadores. Se corresponde con el comando Samba 'browseable' /autodisconnect:X minutos antes de que se desconecte un usuario del servidornet pause X Detiene el servicio Xnet continue X Reanuda el servicio X Recursosnet view X /domain: Y mostrar dominios enteros o recursos en un equipo /Domain: y -> muestra equipos en el dominio X es el servidor que se desea ver (\\X)net print impresora Permite ver/modificar la cola de impresi??n /hold:x -> no imprimir el trabajo X /release:x -> reanudar trabajo Xnet share Mostrar/modificar recursos compartidosnet use nombre \\recurso Crear una conexi??n de red Usuarios net group x A?±adir/ver/modificar grupos de usuarios en un dominio /Domain:x -> nombre del dominio /add x -> a?±adir un grupo nuevonet user usuario clave A?±adir/ver/modificar usuarios en un dominio /domain:nombre -> nombre del dominio

Page 12: Manual Batch Completo

/add x -> agregar usuario al dominio Si en clave se pone * se indica ue hay que preguntar cada vez /delete -> borrar usuarionet accounts Muestra/modifica la cuenta de un usuario /minpwlen:x -> longitud m??nima de password uniquepw:x -> solo se puede usar la clave x veces. Luego hay que cambiar /domain: nombre -> nombre del dominio /sync -> sincronizar los cambios en los servidores BDC Comunicaciones net send x y Enviar mensaye Y a usuario/ordenador X Si nombre es * se env??a a todos los miembros del grupo/dominio /domain: nombre -> nombre del dominio

9.4.6 Netstat [opciones]

Comando para comprobar el estado actual de la rednetstat -a Mostrar todos los puetos y conexionesnetstat -n Mostrar n??mero de puerto y direccionesnetstat -r Mostrar la tabla de rutasnetstat -s Mostar estad??sticas por protocolonetstat -p tcp/udp Mostrar las conexiones activas TCP o UDP

9.4.7 Nslookup[opciones]

Utilidad para interrogar dns

9.4.8 Ping [opciones]

Enviar paquetes icmp a un determinado destino.ping -t ping al host hasta que se pareping -a resolver direcciones en nombres de hostping -n numero N??mero de peticiones a enviarping -l tama?±o tama?±o del buffer

9.4.9 Telnet [host] [puerto]

Inicia una sesi??n telnet al host especificado en el puerto especificado. Si el puerto se omite se usa el 23.

9.4.10 Tracert [destino]

Page 13: Manual Batch Completo

Tracear el destino hasta llegar a la ruta indicada.

9.5 Comandos de programaci??n

9.5.1 Edit [archivo]

Editor de textos (equivalente al bloc de notas)

9.5.2 Debug [archivo] [opciones]

Inicia el desensamblador con el programa indicado.

9.5.3 choice [texto] [opciones]

Se utiliza en programas bat para dar a elegir a un usuario entre un conjunto de opcionesLa respuesta se devuelve mediante la variable errorlevelMostrar el literal "elija una opci??n y dar a elegir s (s??), n (no) o C (continuar). las tres siguientes l??neas especifican a donde debe saltar el flujo del programa seg??n la tecla pulsada.choice Elija una opci??n snc Mostrar el texto y las opciones (S, N, C)if errorlevel 1 goto ... si se ha pulsado Sif errorlevel 2 goto ... si se ha pulsado Nif errorlevel 3 goto ... si se ha pulsado C

9.5.4 If [condicion] [comando]

Sirve para hacer bifurcaciones en el c??digo.Admite 6 sintaxis distintas:if exist fichero orden si existe 'fichero' ejecutar la ordenif not exist fichero si no existe fichero ejecuar la ordenif cadena1==cadena2 orden comparar cadena1 y cadena2if not cadena1 == cadena2 orden si son distintosif errorlevel numero orden si el comando anterior acab?? con un errorlevel igual o superior a numero ejecutar ordenif not errorleven numero orden si el comando anterior acab?? con un errorlevel inferior a numero ejecutar orden

9.5.4 for

El formato general esfor %%variable in lista do ( orden 1 orden 2

Page 14: Manual Batch Completo

orden 3 )

La variable siempre lleva dos veces el signo %

EjemploFOR %%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.TXTDELETE TEXTO2.TXTDELETE TEXTO3.TXT

10 Variables de entornoset variable=valor    Declarar una variable de tipo string y le da un valorSET /n variable = valor1 + valor2 + valor3    Declara una variable de tipo num?©rico cuyo valor es la suma de valor1+valor2+valor3

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 hacesIF %os% == WINDOWS98 ECHO ES WINDOWS 98    

11. 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 etiquetaPor ejemplo:Código:ORDEN 1

ORDEN 2

if %os% == Winnt goto winnt Si el sistema operativo es NT ir a etiqueta winntORDEN 3 esta l??nea se ejecuta si no es winntgoto fin :winnt etiqueta

Page 15: Manual Batch Completo

ORDEN 4 esta l??nea se ejecuta si es NT:fin etiqueta

12. Par??metros reemplazablesA 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:Código:AVERIGUARSISTEMAOPERATIVO windows98AVERIGUARSISTEMAOPERATIVO win2000AVERIGUARSISTEMAOPERATIVO 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:Código:if %os%==%1 goto correcto si el sistema operativo (%os%) es igual al primer par??metro (%1) ir a etiqueta correctoecho el sistema operativo NO es %1 poner el mensaje de que no esgoto fin :correcto etiquetaecho el sistema operativo SI es %1 poner el mensaje de que si es:fin

13. Acceso al registro

13.1 Reg [operacion] [parametros]

Operacion puede serREG QUERY clave [/v nvalor | /ve] [/s] #Consultar una clave o subclave    Clave = \equipo\lclave #si se omite equipo se usa el equipo local. En equipos remotos solo disponibles HKLM y HKU    /v = consulta para una clave de registro espec??fica    /ve = consulta el valor predeterminado    /s = consultar todos los valores/subclavesSAVE SAVE clave archivo #guarda en un archivo un arbol del registro.    Clave=ClaveRaiz\SubClave   ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    SubClave=nombre completo de la subclave         Archivo = Nombre del archivo para guardar    

Page 16: Manual Batch Completo

COMPARE clave1 clave2 [/v valor | /ve] [salida] [/s] #compara dos subclaves o ??rboles de registro    Clave = \\equipo\ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    Valor = nombre del valor para comparar en la clave seleccionada (si se omite se comparan todos)    /ve = Comparar el nombre de valor vac??o    /s = comparar todas las subclaves y valores    salida [/oa | od | os | on] #oa=devuelve todas las coincidencias y diferencias, od=solo diferencias, os=solo coincidencias, on=nadaADD Clave [/v nvalor | /ve] [/t tipo] [/s separador] [/d datos] [/f] #agregar una subclave al registro    Clave = \\equipo\ClaveRaiz\SubClave   ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    /v = Nombre del valor a agregar         /ve = agrega el valor vac??o (sin nombre)         /t = REG_SZ, REG_MULTI_SZ, REG_DWORD_BIG_ENDIAN, REG_DWORD, REG_BINARY, REG_DWORD_LITTLE_ENDIAN, REG_NONE, REG_EXPAND_SZ (si se omite se asume REG_SZ)    /s = caracter. (si se omite se asume \0)         /d = datos que se agregan al valor a insertar         /f = fuerza la sobreescritura sin avisar     LOAD clave archivo #carga un archivo en un ??rbol    Clave =ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU (solo para equipo local)    Archivo: creado con reg save     EXPORT clave archivo # exportar subclaves y valores    Clave =ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    Archivo: archivo donde exportarDELETE clave [/v nvalor | ve] [/va] [/f] #borrar un arbol del registro    Clave =ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    nvalor: nombre de valor a borrar. Si se omite se borrar??n todas las subclaves y valores    /ve elimina el valor de un nombre de valor vac??o    /va elimina todos los valores en la clave actual    /f fuerza la eliminaci??n sin avisarUNLOAD clave    #descargar un arbol del registro    Clave =ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU (solo para equipo local)IMPORT archivo   Importa un arbol al registro. El archivo debe haber sido creado con export    archivo = archivo.reg (solo equipo local)COPY clave1 clave2 [/s] [/f] #copia una clave en el registro    Clave =ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    /s = copia todas las subclaves y valores         /f = fuerza la copia sin avisar     RESTORE clave archivo    Clave =ClaveRaiz\SubClave    ClaveRaiz=HKLM, HKCU, HKCR, HKU, HKCC    Archivo: Nombre del archivo a restaurar   Este archivo debe haber sido creado con reg save

Page 17: Manual Batch Completo

Ejemplos

Mostrar el valor de versi??n del registroCódigo:reg query HKLM\Software\Microsoft\Rest /v Version

Mostrar todas las subclaves y valores en la clave de registro SetupCódigo:reg query HKLM\Software\Microsoft\Rest\Setup /s

Guardar el subarbol MiAp en el archivo CopiAp.hiv en la carpeta actualCódigo:reg save hklm\Software\Mico\MiAp CopiaAp.hiv

Comparar los valores de MiAp con los de GuardaMiApCódigo:reg compare khlm\softare\Mico\Miap HKLM\Software\Mico\GuardaMiAp

Agregar una clave Mico en el equipo remoto ABCCódigo:reg add \\abc\HKLM\Software\Mico

Agregar un valor 'datos' de tipo REG_BINARY y contenido 'fe340ead'Código:reg add HKLM\Software\Mico /v datos /t REG_BINARY /d fe340ead

Cargar el archivo CopiaAp.hiv en MiApCódigo:reg load hklm\Software\Mico\MiAp CopiaAp.hiv

Exportar todas las subclaves de la clave MiAp a CopiaAp.REGCódigo:reg export HKLM\Software\Mico\MiAp CopiaAp.reg

Eliminar el contenido de TIMEOUT y todas sus subclaves y valoresCódigo:reg delete hklm\Software\Mico\MiAlp\Timeout

Descargar el arbol MiAlp del registroCódigo:reg unload /hklm\software\Mico\MiAp

Importar el archivoCopiaAp.regCódigo:reg import CopiaAp.reg

Copia todas las subclaves y valores de MiAp a GuardaMiApCódigo:

Page 18: Manual Batch Completo

reg copy hklm\software\mico\MiAp hklm\Software\Mico1

Copiar todos los valores de la clave Mico en otro equipo al equipo actualCódigo:reg copy \\equipo\hklm\softwaer\Mico hklm\software\mico1

Restaurar el archivo CopiaAp.hiv sobreescribiendo la clave 'datos'Código:reg restore hklm\software\mico\MiAp\Datos CopiaAp.hiv

14 Enviar por ftp de forma autom??tica (cortes??a de rkk)Código:@echo offrem Inicia sesion en el servidor FTPftp -s:Coman.txt 124.102.23.5

en la ultima linea estoy indicando con el -s:Coman.txt el nombre del archivo donde se encuentran guardados los comandos que va a ejecutar el ftp seguido de la direccion ip a la que me voy a conectar; dentro del archivo Coman.txt tengo el nombre del usuario, la contrase?±a y los comandos que se van a ejecutar:

Ejemplo:Código:Marco12345binaryhashbye

Espero que les haya servido y lamento la cantidad de post pero no me entraba.

Comandos básicos de consola1. Cls (Borrar pantalla)

2. Echo (Eco en pantalla)· Sin parámetros te indica si está activado o desactivado.· Echo on activa el echo. (Comandos y resultados se repiten en pantalla)· Echo off desactiva el echo (Comandos ocultos y resultados visibles)· Echo literal saca por pantalla el literal

3. Pause (Para la actividad del programa hasta que es pulsada una tecla, muy útil ala hora de programar algo)

4. Prompt (Modifica el símbolo de sistema)· En el símbolo del sistema se pueden escribir caracteres normales y lo

Page 19: Manual Batch Completo

siguientes códigos especiales:· $A & (Símbolo de unión)· $B | (barra vertical)· $C ( (Paréntesis izquierdo)· $D Fecha actual· $E Código de escape (código ASCII 27)· $F ) (Paréntesis derecho)· $G > (signo mayor que)· $H Retroceso (elimina el carácter previo)· $L < (signo menor que)· $N Unidad actual· $P Unidad y ruta de acceso actual· $Q = (signo igual)· $S (espacio)· $T Hora actual· $V Versión de Windows XP· $_ Retorno de carro y alimentación de línea· $$ $ (signo del dólar)

5. Date (Sirve para ver o cambiar la fecha del sistema)

6. Time (Sirve para ver o cambiar la hora del sistema)

7. Ver (Sireve para ver la versión del sistema operativo)

8. Vol (Sirve para ver el volumen de una unidad)· Se le tiene que añadir la unidad detrás ( C: , D: , E: , A: )

9. Path (Establece una ruta especificada como trayecto)· Como ya sabemos que es un trayecto y demás debéis saber que con estecomando añadiéndole la ruta detrás (entre comillas si contiene algúnespacio) obtendremos un nuevo path que podremos consultar tecleandopath en la consola.

10. Keyb (Configuración de teclado)· Su sintaxis es así:keyb Código del país, juego de caracteres, definición de teclado.El código de país de España es SPEl juego de caracteres aplicable a España es el 850 ó 437El archivo de definición de teclado es keyboard.sys

11. Sys (Transfiere un sistema Operativo de una unidad a otra)

Page 20: Manual Batch Completo

· Su sintaxis es así: sys unidad: ej- sys A:

.12. D oskey (Edita líneas de comandos, recupera comandos de Windows XP y creamacros)· Su sintaxis es:DOSKEY [/REINSTALL] [/listSIZE=tamaño] [/MACROS[:ALL |:nombre]][/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=nombre][/MACROFILE=archivo] [nombre_macro=[texto]]/REINSTALL Instala una nueva copia de Doskey./LISTSIZE=tamaño Establece el tamaño del búfer de comandos./MACROS Muestra todas las macros de Doskey./MACROS:ALL Muestra todas las macros de DOSKEY de todos losejecutables que tengan macros de Doskey./MACROS:nombre Muestra todas las macros de DOSKEY del ejecutable./HISTORY Muestra todos los comandos guardados en la memoria./INSERT El nuevo texto se introduce en el texto anterior./OVERSTRIKE El nuevo texto sobrescribe el texto anterior./EXENAME=ejecutable Especifica el ejecutable./MACROFILE=archivo Especifica un archivo de macros para instalar.nombre_macro Especifica el nombre de una macro creada.Texto Especifica comandos que se desean grabar.Flechas ARRIBA y ABAJO recuperan comandos; Esc limpia la línea decomandos;F7 muestra comandos usados; Alt+F7 elimina comandos usados; F8 buscacomandos;F9 selecciona un comando por número; Alt+F10 elimina definiciones demacros.La siguiente codificación se usa para definir macros de DOSKEY:$T Separador de comandos. Permite múltiples comandos en una macro.$1-$9 Parámetros por lotes. Equivalente a %1-%9 en los programas porlotes.$* Reemplazado por lo que sigue al nombre de la macro en la línea decomandos

13. M em (Muestra el espacio de memoria usado y libre del sistema)Su sintaxis es así:· /p Muestra memoria por programas· /d Muestra memoria por programas y controladoresCURSO DE BATCH DESDE 0 – POR JUANLACURSO DE BATCH DESDE 0 – POR JUANLA· /c Muestra memoria por tamaño

Page 21: Manual Batch Completo

14. Start (abre un programa, archivo o página web, este comando es más profundo,pero si quieren saber más, escriban help start)

15. Shutdown (Apaga el ordenador, reinicia o cierra la sesión)· Shutdown –l ( cierra sesión ) (es una ele, no confundir con el 1 –nº uno-)· Shutdown –s ( Apaga el equipo)· Shutdown –r ( Reinicia equipo)· Shutdown –a (Anula el apagado de un equipo)· Shutdown –m //equipo (establece el equipo que seapagará,anulará,reiniciará)· Shutdown –t xx (Cambia xx por un número que corresponderá al tiempo deapagado en segundos)· Shutdown –c “texo texto” (establece un comentario personalizado)· Shutdown –f (Apaga forzadamente la computadora)

Page 22: Manual Batch Completo

Comandos de manejo de archivos

1. Copy (Copia archivos)· Su sintaxis es así:Copy opciones archivoinicial archivoorigen.Las opciones son: /A Tratar el archivo como un archivo ASCII/B Tratar el archivo como un archivo binario/D Permite que el archivo destino se grabe descifrado/V Verifica la copia/N Al copiar usa el nombre corto en vez del nombre largo/Y Suprime la pregunta de confirmación si se va a sobreescribir algúnarchivo/Z Copia archivos de red en modo reiniciable/S Copia subdirectorios/E Crea subdirectorios en el destino aunque los subdirectorios originalesestén vacíos.-Para poner el nombre de un archivo yo personalmente recomiendo ponersiempre la ruta entera del archivo, si se omite la ruta se sobreentenderá eldirectorio actual de la cmd, pero se lo que digo y os recomiendo escribirlaentera, pueden usar comodines si les resulta más cómodo.-También les servirán las variables de entorno, que ya veremos más adelante.-Se pueden concatenar archivos de la siguiente manera:copy archivo1.txt+archivo2.txt c:\archivo3.txtEsto no funciona siempre, no lo recomiendo…-Se le puede asignar un nombre nuevo directamente, por ejemplo:Copy archivo1.txt C:/ archivo2.txtQuedará el mismo archivo copiado con otro nombre.2. D el (Borra archivos – NO CARPETAS -)· Su sintaxis es:del opciones archivodel /f /q “C:\Dangelo.txt”· Sus opciones son:/P Pide confirmación en cada caso/F Modo force. Borra incluso los archivos de solo lectura./S Borra también los subdirectorios./Q Modo silencioso. No pide confirmación en ningún caso

3. M d ó mkdir (Crear directorio)

4. R d ó rmdir (Borra Directorio, - NO archivos -)· Su sintaxis es: RMDIR ruta (Igual que el anterior)· Sus opciones:

Page 23: Manual Batch Completo

/S Elimina los archivos de dentro y las subcarpetas también. Si hay archivosdentro y no se pone esta opción no se podrá eliminar la carpeta./Q Modo silencioso.

5. chdir ó cd (Cambia de directorio)· Su sintaxis es:Cd rutaCd .. sube un salto en el árbol donde se encuentreCd / Sube al directorio Raíz de la misma unidadCd Unidad: Cambia de unidad

6. Dir (muestra el contenido de un directorio)· Dir /all muestra incluso los archivos ocultos.· Dir ruta (si no se establece se muestra la actual)

7. Attrib (Establece atributos a los archivos indicados)· Su sintaxis es:Attrib archivo –argumento· Los atributos son:H -> oculto. Se activa con +h y desactiva con -hR -> Lectura. Solo lectura con +r, normal con -rS -> Sistema. Se activa con +s y desactiva con -sA -> Modificado. Para copias de seguridad incrementales. +a indicamodificado y -a indica no modificado.

8. Rename o Ren (Renombrar nombre de archivo)

9. Type (muestra un fichero .txt, admite la redirección)

10. At (programa las acciones a un día y tiempo determinados)· Su sintaxis:at 15:50 /next M start c:/...blablabla.blapara utilizar los parámetros /every y /next sustituir con abreviaturas losdías: M, T, W, Th, F, S, Suy para los días del mes con números: del 1 al 31

Comandos de disco

1. Diskcopy (Copia un disquete de una unidad a otra)· Su sintaxis:Diskcopy unidaddeorigen: unidaddedestino:

Page 24: Manual Batch Completo

diskcopy a: b: copia un disquete de unidad A: a la unidad B:

2. Fdisk (Herramienta que gestiona las particiones del disco)· Con el parámetro /mbr se puede borrar el mbr (Master Boot Record) de undisco.

3. Format (Da formato a un disco)· Su sintaxis:Format unidad:· Sus opciones:/a se realiza de forma rápida/s traspasa incluso el sistema operativo (hasta Windows 98)

4. Label (Pone una etiqueta a una unidad)· Su sintaxis es: label C: Windows – establece la etiqueta Windows a launidad C:

comandos de red

3. Ipconfig (Muestra toda la configuración tcp/ip de tu ordenador)· Sus opciones son:Ipconfig /all (Muestra TODO)Ipconfig /release adaptador libera la IP del adaptador especificadoIpconfig /renew adaptador renueva la IP para el adaptador especificadoIpconfig /flushdns purga la caché de resolución de DNSIpconfig /registerdns actualiza las conexiones DHCP y vuelve a registrar losnombres DNSIpconfig /displaydns muestra el contenido de la caché de resolución DNS

4. Nbtstat (Muestra las estadísticas del protocolo y las conexiones actuales deTCP/IP usando NetBios)· Sus opciones son:nbtstat -a Lista la tabla de nombres por nombrenbtstat -A Lista la tabla de nombres por IPnbtstat -c Lista la caché NetBios mostrando nombres y direcciones IPnbtstat -n Lista los nombres NetBios localesnbtstat -r Lista de nombres resueltos por difusión y WINSnbtstat -R Purgar y recargar la caché NetBiosnbtstat -S Lista las sesiones con las IP de los destinosnbtstat -s Lista las sesiones con los nombres de los destinosnbtstat –RR Envía paquetes de liberación de nombres a WINS y despuésactualiza.

Page 25: Manual Batch Completo

Para más información help nbtstat

5. Net (sirve para muchísimas cosas, no se mencionarán todas en este tutorial, osexplicaré sólo algunas, las demás busquen información por su cuenta, si veninteresante este comando y quieren mandarme una descripción clara paraexponerla y compartirla, será expuesta con permisos y créditos en el tutorial, ycon mucho gusto tambien)· Se puede relacionar a:Accounts – Computer – Config – Continue – File – Group – Help –Helpmsg – Localgroup – Name – Pause – Print – Send – Session –Share – Start – Statistics – Stop – Time – Use – User – View· NET [ ACCOUNTS ]/MINPWLEN:longitud Establece la cantidad mínima de caracterespara la contraseña. El intervalo es de 0 a 14 caracteres; el valorpredeterminado son 6 caracteres/MAXPWAGE:{días | UNLIMITED} Establece el mínimo de días devalidez de una contraseña. No se especifica ningún límite si usaUNLIMITED. /MAXPWAGE no puede ser inferior a /MINPWAGE. Elintervalo es 1-999; el valor predeterminado son 90 días./MINPWAGE:días Establece el mínimo de días que deben pasar antesde que un usuario pueda cambiar una contraseña. El valor 0 no establecetiempo alguno. El intervalo es 0-999; el valor predeterminado es 0./WINPWAGE no puede ser superior a /MAXPWAGE./UNIQUEPW:número Requiere que la contraseña de un usuario sea únicaa través la cantidad específica de cambios. El va máximo es 24./DOMAIN Realiza la operación en un controlador de dominio del dominioactual. De otra forma, la operación se realiza en el equipo local. Así escomo funciona este archivo.

6. Netstat (Comprueba la configuración y el estado de la red)· Sus opciones son:netstat -a Mostrar todos los puertos y conexionesnetstat -n Mostrar número de puerto y direccionesnetstat -r Mostrar la tabla de rutasnetstat -s Mostar estadísticas por protocolonetstat -p tcp/udp Mostrar las conexiones activas TCP o UDP

7. Nslookup (Utilidad para interrogar DNS)

8. Ping (Envía paquetes ICMP a un determinado destino)· Sus opciones son:ping -t ping al host hasta que se pare

Page 26: Manual Batch Completo

ping -a resolver direcciones en nombres de hostping -n numero Número de peticiones a enviarping -l tamaño del buffer

9. Telnet (Inicia una sesión de telnet al host impuesto)· Sus opciones son:telnet host puerto (Si el puerto se omite se sobreentiende el 23)

10. Tracert (Tracea el destino hasta el punto determinado)