Sunteți pe pagina 1din 9

manual de programacion BAt 100% recomendado Introduccin Antes que nada indicaros que se llaman procesos batch.

La razn por la que a menudo se alude a ellos como bat es porque el entorno msdos requiere como mximo tres letras en la extensin y por tanto los archivos tienen la extensin .bat Qu se puede hacer con ellos? Pues se puede hacer de forma automatizada todo aquello que se pueda hacer en la consola de msdos. Como hago un archivo bat Pues son texto plano. Quiere eso decir que se pueden escribir en el block de notas, utilidad Edit de msdos o algn editor ascii. Al guardarlos deben tener la notacin de nombres propia de msdos. Esto es un nombre con mximo 8 letras (espacios y \ no permitidos), luego un punto y la extensin que en este caso es obligatoriamente bat. Para crearlos desde la misma consola puedo utilizar varios sistemas Sistema 1: mediante la orden copy copy con: nombre_de_archivo.bat ... ... comandos ... ... Ctrl z (se acaba y se graba al pulsar Ctrl Z Mtodo 2 mediante la redireccin echo 1 lnea a insertar >nombre_de_archivo.bat echo restantes lneas >>nombre_de_archivo.bat 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. Qu es eso de la redireccin? Pues al igual que en unix se puede hacer que la salida de un comando sirva como entrada de otro. Para ello se utilizan los operadores < y > que sirven para indicar que salida debe ir a que lugar Por ejemplo si yo le doy la orden DIR, esta ir por defecto a la pantalla (dispositivo CON), pero puedo redirigir la salida a la impresora por defecto (dispositivo PRN) de la siguiente forma dir >prn Qu son los filtros Los 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 salida dir | 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 Como puedo seleccionar varios archivos Para ello y teniendo en cuenta que los nombres de los archivos deben cumplir la notacin de msdos (8

letras sin espacios como mximo, luego un punto y tres letras como mximo de extensin) se pueden utilizar los llamados comodines. * Equivale a varios caracteres ? equivale a un solo caracter. Ejemplos comando *.cfg -> seleccionar todos los archivos que tengan la extensin cfg comando a*.cfg -> seleccionar todos los archivos que comienzen por a y tengan la extensin cfg comando a*b.cfg -> seleccionar todos los archivos que comienzen por a, acaben por b y tengan la extensin cfg comando *asa*.cfg -> seleccionar todos los archivos que contengan 'asa' y tengan la extensin cfg comando c?asa.cfg -> seleccionar todos los archivos que contengan una C, luego un caracter cualquiera y luego 'asa'. Debe tener tambin la extensin cfg comando c?b*.* -> seleccionar todos los archivos que empiezen por c, tengan un caracter cualquiera, luego una b y cualquier extensin comando *.b?t -> seleccionar todos los archivos que tengan una extensin que empieze por b, luego un caracter cualquiera y luego una t. Que son las trayectorias o paths? La trayectoria es el nombre completo de un archivo e indica la situacin exacta de un archivo y su nombre. Si digo que el archivo se llama leeme.txt indico su nombre, pero nada mas. Se da por supuesto que se encuentra en el directorio actual. Si digo c:\leeme.txt indico que el archivo que me interesa se llama leeme.txt y se encuentra en el directorio raz 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 nombre corto. Este se obtiene aadiendo los seis primeros carcteres vlidos del nombre, luego el signo ~ (alt 126) y luego un nmero. De esta forma un archivo que se encuentre en Mis documentos en win98 tendr el path c:\misdoc~1\leeme.txt Tambin se pueden utilizar (mientras las comillas para delimitar el nombre "c:\Mis Documentos\leeme.txt" Pero esto solo vale cuando se utiliza msdos como consola (no cuando se inicia windows 98 en modo msdos) Obsrvese que se utiliza la barra contraria a la de linux/unix para especificar subcarpetas o subdirectorios Esta sera la trayectoria de mimusica.mp3 c:\misdoc~1\mi~1\mimusica.mp3 Qu equivale a "c:\Mis Documentos\Mi Msica\mimusica.mp3" Cuales son los nombres de dispositivos La pantalla se llama CON. Por eso si redirigo algo a CON lo estoy sacando por pantalla. La impresora por defecto se llama PRN La primera impresora se llama Lpt1 y las dems Lpt2, Lpt3 (una en cada puerto paralelo instalado en el sistema). Hasta donde yo s no hay posibilidad de llegar a USB si no es la impresora por defecto. Como se les llama a las unidades lgicas Siempre es una letra seguida del signo dos puntos. A: = disquetera B: = reservada para segunda disquetera

C: = primera particin (normalmente es la que arranca) D: = segunda particin (generalmente el cdrom) Por eso si se crea una unidad lgica 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 lgica existente. Qu comandos puedo utilizar? Comandos bsicos CLS -> borra pantalla ECHO -> tiene varias posibilidades: Echo sin parmetros 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 vern en pantalla y luego su resultado Echo off desactiva el comando echo y ya se vern los resultados de la ejecucin 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 tendra que salir por la pantalla) al archivo fichero.bat. PAUSE ->Sirve para sacar un mensaje y parar la ejecucin hasta que se pulse una tecla PROMPT ->Sirve para cambiar el prompt de msdos. El ms habitual es $p$g que corresponde a $p = mostrar trayecto actual $g = mostrar el separador > $l = mostrar el separador < $b = mostrar el separador | $q = mostrar el signo = $$ = mostrar el signo $ $t = mostrar la hora $d = mostrar la fecha $v = mostrar la versin del sistema $n = mostrar unidad actual $h = retroceso. Borra el caracter previo $e = esc. Muestra el signo correspondiente al asci 27 $_ = Retorno de carro y salto de lnea (equivale a chr(10) & chr(13) Por eso si ponemos prompt $p$g el cursor muestra la trayectoria donde estamos y luego el separador. Es posible aadir texto (por ejemplo prompt Mi_nombre $p$g DATE Ver/poner la fecha del sistema TIME Ver/poner la hora del sistema VER Versin del sistema VOL unidad Volumen de la unidad especificada PATH Indica un trayecto por defecto si se produce una peticin de un archivo que no est en el directorio actual. Por eso en windows 98 suele haber una lnea 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. KEYB cdigo_pais,juego_de_caracteres,definicin_de_tecl ado, El cdigo de pas de espaa es el 'sp' El juego de caracteres aplicable a espaa es el 850 437 El archivo de definicin de teclado es keyboard.sys Para configurar un teclado en espaol

keyb sp,,c:\windows\command\keyboard.sys SYS unidad Transferir el sistema operativo a la unidad especificada. DOSKEY Emular la capacidad de unix/linux de recordar los comandos introducidos anteriormente mediante la flecha arriba del teclado. MEM parmetros Muestra la memoria usada y libre en el sistema /p -> muestra por programas /d -> por programas y controladores /c -> clasifica por tamao Comandos de manejo de archivos COPY origen destino Sirve para copiar archivos de un lugar a otro. el origen debe ser un trayecto completo de donde estn 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 raz de C) copy miarchivo.txt c:\miarch.txt (copiarlo y adems cambiarle el nombre a miarch.txt) copy *.txt a:\ (copiar todos los archivos que tengan la extensin txt a la unidad A) copy *.txt c:\misdoc~1 (copiar todos los archivos que tengan la extensin txt al directorio Mis documentos (cuyo nombre corto es misdoc~1). DEL archivo(s) Borrar archivos en seleccionados del leeme.txt (borra el archivo leeme.txt en el directorio actual) del c:\leeme.txt (borra el archivo leeme.txt que se encuentra en c:\) del archiv~1\*.* (borra todos los archivos que se encuentren en el directorio 'Archivos de programa' cuyo nombre corto es archiv~1 (no se borran las subcarpetas) DELTREE archivo(s) -y Borra el arbol especificado (si es un archivo pues el archivo, si es una carpeta pues la carpeta con todas las subcarpetas que incluya). Con el parmetro -y no pregunta cada vez Este comando en realidad no es un comando sino una utilidad includa en msdos. MKDIR nombre (o bien MD nombre) Sirve para crear un directorio Md micarpeta CHDIR nombre (o bien CD nombre) Sirve para ir al directorio aludido. Se le tiene que dar la trayectoria completa o si no intentar desplazarse desde el directorio actual. Cd c:\archiv~1 (se va a archivos de programa) Cd .. (se va al directorio superior) RMDIR nombre (o bien MD nombre) Borra un directorio. Este debe estar vaco. RD c:\Misdoc~1 (borra Mis Documentos, aunque no podr porque no est vaco). DIR 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 parmetro /W saca un listado resumido. Si se pone como parmetro /P saca un listado utilizando el filtro more. ATTRIB archivo(s)-> Muestra los atributos de los archivos indicados y en su caso permite cambiarlos. 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 miarchivo.txt (mostrar los atributos de miarchivo.txt) attrib *.exe +r +r +s (pone a todos los archivos con extensin exe como ocultos, del sistema y read only) RENAME o REN nombre1 nombre2 Cambiar el nombre de archivo Ren miarchivo.txt miarchivo2.txt TYPE archivo Muestra por pantalla el contenido de un archivo type miarchivo.txt Comandos de disco DISCKCOPY origen destino-> Copia disquetes completos. Diskcopy a: a: Copia el disquete introducido en la unidad A a un disquete que se introducir posteriormente en la unidad A FDISK Permite editar las particiones del disco duro. Con la opcin /mbr permite borrar el Master Boot Record FORMAT unidad parmetros /q -> formateo rpido /s -> Transferir el sistema operativo Format a: /s formatea el disquete y le transfiere el sistema operativo bsico de arranque. LABEL unidad etiqueta Cambiar la etiqueta de volumen del disco de la unidad label a: midisquete MSCDEX Montar una unidad de CdRom en msdos (solo requerido si se carga msdos sin estar windows cargado previamente (por ejemplo cuando se arranca desde disquete). Suponiendo un CdRom al que se haya cargado en config.sys con el nombre MiCd mscdex /d:MiCd Scandisk unidad parmetros Para comprobar/reparar el estado del disco /autofix -> reparar automticamente errores /surface -> hacer pruebas de superficie /checkonly -> no reparar, solo chequear Comandos para programacin EDIT archivo Editor de textos utilizado para editar scripts y archivos de texto. DEBUG archivo parmetros de archivo Inicia el desensamblador con el programa indicado al que se le pasan los parmetros especificados.

CHOICEtexto opciones Se utiliza en programas bat para dar a elegir a un usuario entre un conjunto de opciones La respuesta se devuelve mediante la variable errorlevel choice Elija una opcin snc if errorlevel 1 goto ... if errorlevel 2 goto ... if errorlevel 3 goto ... Este ejemplo muestra el literal "elija una opcin y da a elegir s (s), n (no) o C (continuar) por ejemplo las tres siguientes lneas especifican a donde debe saltar el flujo del programa segn la tecla pulsada. Comandos de red ARP parmetros Modificar la tabla arp. -a -> mostrar la tabla arp -s ip mac -> agregar una entrada a la tabla arp FTP Iniciar el cliente ftp IPCONFIG parmetros Mostrar las caractersticas de configuracin de IP /all -> muestra toda la informacin de configuracin /release adaptador -> libera la ip del adaptador especificado /renew adaptador -> renueva la ip para el adaptador especificado /flushdns -> purga la cach de resolucin de dns /registerdns -> actualiza las conexiones dhcp y vuelve a registrar los nombres dns /displaydns -> muestra el contenido de la cache de resolucin dns NBTSTAT Hace un estado de la red por netbios Tiene muchos parmetros. Consultarlos mediante nbtstat /? NET parmetros Comando para el uso de redes netbios USE \\equipo\recurso -> para acceder a unidades lgicas compartidas. Se le asignar un nombre de unidad y estar disponible como una unidad mas del sistema. USE \USER: dominio\usuario para acceder a un dominio USE unidad /DELETE eliminar el acceso a unidad compartida. SHARE trayecto /REMARK texto -> para compartir un recurso en red START -> para comenzar sesin netbios STOP -> para detener netbios NETSTAT Para ver el estado de la red. -a -> mostrar todos los puertos y conexiones -n -> mostrar nmeros de puertos y direcciones -r -> mostrar la tabla de rutas -s -> mostrar estadsticas por protocolo -p protocolo-> protocolo puede ser tcp o udp. muestra las conexiones activas NSLOOKUP dominio Muestra el dominio, su ip, dns donde se resuelve y sus alias PING Utilizar ICMP para llegar a un determinado nodo

TELNET ip puerto Utilizar el protocolo telnet para acceso a un servidor exterior TRACERT destino tracear el camino hasta llegar al destino especificado Programacin BAT Para crear un script bat podemos utilizar cualquiera de los mtodos expuestos anteriores y utilizar cualquiera de los comandos especificados. Pueden recibir parmetros segn los cuales realizar operaciones u otras. Un caso especial es el archivo autoexec.bat que se ejecuta automticamente en windows 98 y anteriores. debe estar en el directorio raz. ******************************************** Ejemplo 1 Archivo bat crea un disquete de arranque en la unidad A con cdrom montado y teclado en espaol. echo off rem **** esto es un comentario rem **** formatear disquete y pasarle el sistema format a: /s rem **** copiar archivos necesarios para teclado en espaol copy c:\windows\command\keyboard.sys a: copy c:\windows\command\keyb.com a: rem **** copiar archivos necesarios para montar el cdrom copy c:\windows\command\mscdex.exe rem aqu hay que copiar el driver dos del cdrom que rem viene con el disquete que lo acompaa. rem copiar otras utilidades prcticas para un disco de inicio copy c:\windows\command\fdisk.exe a: copy c:\windows\command\format.exe a: copy c:\windows\command\deltree.exe a: rem crear el archivo de inicio autoexec.bat en disquete echo keyb sp,,keyboard.sys >a:autoexec.bat echo path c:\windows;c:\windows\command;a:\ >>a:autoexec.bat echo mscdex /d:MiCdrom >>a:autoexec.bat rem crear el archivo de configuracin para montar el driver del cdrom echo dos=high,umb >a:config.sys echo device=a:\nombre_del_driver.sys /d:MiCdRom >>a:config.sys echo ************************************** echo El disco de arranque ha sido creado echo ************************************** ******************************************* Ejemplo 2 En el caso anterior he puesto la ruta de origen c:\windows\command que es donde se encuentra en windows 98. Sin embargo en Win2k se encuentra en \winnt\win32 por lo que en caso de win2k deberamos cambiar eso. Win2k tampoco usa autoexec.bat por lo que para no perderme en diferencias entre uno y otro voy a suponer que en vez de c:\windows\command quiero que el origen sea variable

echo off rem si no se da parmetro terminar if %1z = z goto fin rem **** esto es un comentario rem **** formatear disquete y pasarle el sistema format a: /s rem **** copiar archivos necesarios para teclado en espaol copy %1\keyboard.sys a: copy %1\keyb.com a: rem **** copiar archivos necesarios para montar el cdrom copy %1\mscdex.exe rem copiar utilidades copy %1\fdisk.exe a: copy %1\format.exe a: copy %1\deltree.exe a: fin: para ejecutar este script deberamos darle un parmetro que ser el origen de los archivos. En el caso anterior esto era c:\windows\command. En el caso de Win2k esto es c:\winnt\win32 Miprograma c:\windows\command (para utilizar esta ruta como ruta origen) Miprograma c:\winnt\win32 (para utilizar esta otra ruta como ruta origen) ******************************************** Ejemplo 3 ******************************************** Creacin de un archivo para consultas habituales sobre la red echo off echo 1 -> examinar netbios echo 2 -> examinar la red echo 3 -> examinar dominio echo 4 -> examinar la tabla de arp echo 5 -> Acceder a unidad lgica echo 6 -> Compartir unidad lgica echo 7 -> Acceder a un dominio echo pulse una tecla del 1 al 6 para elegir choice 123456 if errorlevel 1 goto netbios if errorlevel 2 goto red if errorlevel 3 goto dominio if errorlevel 4 goto arp if errorlevel 5 goto acceder if errorlevel 6 goto compartir if errorlevel 7 goto accesodominio goto fin netbios: nbtstat -na goto fin red: netstat -na goto fin

dominio: rem %1 es un parmetro del dominio a consultar nslookup %1 goto fin arp: arp -a goto fin acceder: rem %1 es un parmetro de la unidad a acceder. Debe rem ser del tipo \\ordenador\recurso net use %1 net start goto fin compartir: rem %1 es el directorio a compartir. Debe ser algo como rem c:\misdoc~1 rem %2 es el texto que queremos que tenga como nombre largo en windows net share %1 remark %2 net start goto fin accesodominio: rem %1 es el dominio al que queremos acceder rem %2 es el usuario al que queremos introducir net use user %1\%2 net start fin:

S-ar putea să vă placă și