You are on page 1of 25

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 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.BAT
Pues son texto plano. Quiere eso decir que se pueden escribir en el block de notas, utilidad
Edit de Msdos o algún editor ascii.

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 sistemas


Mediante 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ón


echo 1¨? línea a insertar >nombre_de_archivo.bat Se graba el fichero
'nombre_de_archivo.bat con la primera orden a ejecutar
echo restantes l??neas >>nombre_de_archivo.bat Se añade la segunda orden
echo 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/salida
Pues 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 SALIDA
CON Salida por la pantalla
PRN Salida por la impresora por defecto
LPT1 Salida por la 1¨? impresora en paralelo
COM1 Salida por el primer puerto serie
COM2 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 pantalla
Para redireccionar se utilizan los operadores < y > que sirven para indicar que salida debe ir
a qué lugar
Por 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)
ir?? a la impresora por defecto.

5. 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

6. M??scaras y comodines
Para 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.

Ejemplos
Código:
*.cfg seleccionar todos los archivos que tengan la extensi??n
cfg
a*.cfg seleccionar todos los archivos que comienzen por a y tengan la
extensi??n cfg
a*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 cfg
c?asa.cfg seleccionar todos los archivos que contengan una C, luego
un caracter cualquiera y luego 'asa'. Debe tener tambi?©n la extensi??n
cfg
c?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
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??gicas
Siempre 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 MSDOS
Los 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??sculas
c) Los argumentos y opciones se separan por espacios
9.1 Comandos b??sicos de consola
9.1.1 CLS
Borra la pantalla ( viene de CLear Screen) ^^

9.1.2 Echo [par??metros]


Tiene varias posibilidades:

* 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

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 ?? 437
El archivo de definici??n de teclado es keyboard.sys
Para configurar un teclado en espa?±ol
keyb 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

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 C
copy miarchivo.txt c:\miarch.txt copiarlo y adem??s cambiarle el nombre a
miarch.tx
copy *.txt a:\ copiar todos los archivos que tengan la extensi??n txt a la
unidad A
copy *.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 archivos


copy 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]

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 programa
CD .. Trasladarse al directorio superior
CD \ 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 archivo
ATTRIB -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]

Renombra un archivo.

Si se ponen m??ltiples archivos todos se renombran mediante la misma regla


REN *.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
paginado
type archivo.txt | more

o bien con redirecci??n a la impresora para imprimirlo


type archivo >prn

9.3 Comandos de disco

9.3.1 Diskcopy [origen] [destino]

Copia un disquete completo de origen a destino


diskcopy a: a: copia un disquete de unidad A a la unidad A
diskcopy 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 volumen


label a: copia Poner etiqueta copia en el disquete
label c: DiscoDuro Poner etiqueta DiscoDuro al disco duro

9.3.5 Mscdex [/d:montaje]

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 arp
apr -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/ip


ipconfig /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 netbios


nbtstat -a Lista la tabla de nombres por nombre
nbtstat -A Lista la tabla de nombres por IP
nbtstat -c Lista la cach?© nbt mostrando nombres y direcciones IP
nbtstat -n Lista los nombres netbios locales
nbtstat -r Lista de nombres resueltos por difusi??n y WINS
nbtstat -R Purgar y recargar la cache nbt
nbtstat -S Lista las sesiones con las IP de los destinos
nbtstat -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 X
net stop X Termna el servicio X
net 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
servidor
net pause X Detiene el servicio X
net continue X Reanuda el servicio X

Recursos
net 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 X
net share Mostrar/modificar recursos compartidos
net 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 nuevo
net user usuario clave A?±adir/ver/modificar usuarios en un dominio
/domain:nombre -> nombre del dominio
/add x -> agregar usuario al dominio
Si en clave se pone * se indica ue hay que preguntar cada vez
/delete -> borrar usuario
net 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 red


netstat -a Mostrar todos los puetos y conexiones
netstat -n Mostrar n??mero de puerto y direcciones
netstat -r Mostrar la tabla de rutas
netstat -s Mostar estad??sticas por protocolo
netstat -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 pare
ping -a resolver direcciones en nombres de host
ping -n numero N??mero de peticiones a enviar
ping -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]

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


opciones
La respuesta se devuelve mediante la variable errorlevel
Mostrar 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 S
if errorlevel 2 goto ... si se ha pulsado N
if 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 orden
if not exist fichero si no existe fichero ejecuar la orden
if cadena1==cadena2 orden comparar cadena1 y cadena2
if not cadena1 == cadena2 orden si son distintos
if errorlevel numero orden si el comando anterior acab?? con un errorlevel
igual o superior a numero ejecutar orden
if not errorleven numero orden si el comando anterior acab?? con un
errorlevel inferior a numero ejecutar orden

9.5.4 for

El formato general es
for %%variable in lista do ( orden 1
orden 2
orden 3
)
La variable siempre lleva dos veces el signo %

Ejemplo
FOR %%x IN (texto1.txt texto2.txt texto3.txt) do delete %%i

Esta orden har??a lo siguiente: repetir??a 3 veces la orden delete. En cada vez
%%i valdr??a cada valor de la lista de manera que la primera vez ser??a
texto1.txt, la segunda vez texto2.txt y la tercera vez texto3.txt.

As?? esta orden har??a:


DELETE TEXTO1.TXT
DELETE TEXTO2.TXT
DELETE TEXTO3.TXT

10 Variables de entorno
set variable=valor Declarar una variable de tipo string y le da un valor
SET /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 haces
IF %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 etiqueta
Por ejemplo:
Código:
ORDEN 1

ORDEN 2

if %os% == Winnt goto winnt Si el sistema operativo es NT ir a etiqueta


winnt
ORDEN 3 esta l??nea se ejecuta si no es winnt
goto fin
:winnt etiqueta
ORDEN 4 esta l??nea se ejecuta si es NT
:fin etiqueta

12. Par??metros reemplazables


A menudo en este tipo de archivos tu quieres poder pasarle par??metros. Estos par??metros
sirven para que el script haga una cosa u otra en funci??n del par??metro que le pasas. Por
ejemplo si tienes un archivo bat cuyo nombre es
AVERIGUARSISTEMAOPERATIVO.BAT tu puedes hacer lo siguiente:
Código:
AVERIGUARSISTEMAOPERATIVO windows98
AVERIGUARSISTEMAOPERATIVO win2000
AVERIGUARSISTEMAOPERATIVO winxp

En los tres casos llamas al mismo script AVERIGUARSISTEMAOPERATIVO, pero en


cada caso le pasas un par??metro diferente. En el primero le pasas windows98, en el
segundo le pasas win2000 y en el tercero le pasas winxp.

Para referirte al par??metro en el c??digo debes saber que el sistema les asigna nombre de
forma autom??tica. ??l primero le llama %1, al segundo %2, al tercero %3, ..., al mil
%1000

As?? yo podr??a tener un archivo bat llamado AVERIGUARSISTEMAOPERATIVO.BAT


que me confirma si mi sistema operativo es el que yo creo.
Su c??digo ser??a:
Código:
if %os%==%1 goto correcto si el sistema operativo (%os%) es igual al
primer par??metro (%1) ir a etiqueta correcto
echo el sistema operativo NO es %1 poner el mensaje de que no es
goto fin
:correcto etiqueta
echo 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 ser


REG 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/subclaves
SAVE 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
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=nada
ADD 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 exportar
DELETE 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 avisar
UNLOAD 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

Ejemplos

Mostrar el valor de versi??n del registro


Código:
reg query HKLM\Software\Microsoft\Rest /v Version

Mostrar todas las subclaves y valores en la clave de registro Setup


Código:
reg query HKLM\Software\Microsoft\Rest\Setup /s

Guardar el subarbol MiAp en el archivo CopiAp.hiv en la carpeta actual


Código:
reg save hklm\Software\Mico\MiAp CopiaAp.hiv

Comparar los valores de MiAp con los de GuardaMiAp


Código:
reg compare khlm\softare\Mico\Miap HKLM\Software\Mico\GuardaMiAp

Agregar una clave Mico en el equipo remoto ABC


Có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 MiAp


Código:
reg load hklm\Software\Mico\MiAp CopiaAp.hiv

Exportar todas las subclaves de la clave MiAp a CopiaAp.REG


Código:
reg export HKLM\Software\Mico\MiAp CopiaAp.reg

Eliminar el contenido de TIMEOUT y todas sus subclaves y valores


Código:
reg delete hklm\Software\Mico\MiAlp\Timeout

Descargar el arbol MiAlp del registro


Código:
reg unload /hklm\software\Mico\MiAp

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

Copia todas las subclaves y valores de MiAp a GuardaMiAp


Código:
reg copy hklm\software\mico\MiAp hklm\Software\Mico1

Copiar todos los valores de la clave Mico en otro equipo al equipo actual
Có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 off
rem Inicia sesion en el servidor FTP
ftp -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:
Marco
12345
binary
hash
bye

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

Comandos básicos de consola


1. 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 a
la 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
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 este
comando añadiéndole la ruta detrás (entre comillas si contiene algún
espacio) obtendremos un nuevo path que podremos consultar tecleando
path 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 SP
El juego de caracteres aplicable a España es el 850 ó 437
El archivo de definición de teclado es keyboard.sys

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


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

.12. D oskey (Edita líneas de comandos, recupera comandos de Windows XP y


crea
macros)
· 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 los
ejecutables 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 de
comandos;
F7 muestra comandos usados; Alt+F7 elimina comandos usados; F8 busca
comandos;
F9 selecciona un comando por número; Alt+F10 elimina definiciones de
macros.
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 por
lotes.
$* Reemplazado por lo que sigue al nombre de la macro en la línea de
comandos

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 controladores
CURSO DE BATCH DESDE 0 – POR JUANLA
CURSO DE BATCH DESDE 0 – POR JUANLA
· /c Muestra memoria por tamaño

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 se
apagará,anulará,reiniciará)
· Shutdown –t xx (Cambia xx por un número que corresponderá al tiempo de
apagado en segundos)
· Shutdown –c “texo texto” (establece un comentario personalizado)
· Shutdown –f (Apaga forzadamente la computadora)

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ú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.
-Para poner el nombre de un archivo yo personalmente recomiendo poner
siempre la ruta entera del archivo, si se omite la ruta se sobreentenderá el
directorio actual de la cmd, pero se lo que digo y os recomiendo escribirla
entera, 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.txt
Esto no funciona siempre, no lo recomiendo…
-Se le puede asignar un nombre nuevo directamente, por ejemplo:
Copy archivo1.txt C:/ archivo2.txt
Quedará el mismo archivo copiado con otro nombre.
2. D el (Borra archivos – NO CARPETAS -)
· Su sintaxis es:
del opciones archivo
del /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:
/S Elimina los archivos de dentro y las subcarpetas también. Si hay archivos
dentro 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 ruta
Cd .. sube un salto en el árbol donde se encuentre
Cd / Sube al directorio Raíz de la misma unidad
Cd 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 -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.

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.bla
para utilizar los parámetros /every y /next sustituir con abreviaturas los
días: M, T, W, Th, F, S, Su
y 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:
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 un
disco.

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 la
unidad 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 especificado
Ipconfig /renew adaptador renueva la IP para el adaptador especificado
Ipconfig /flushdns purga la caché de resolución de DNS
Ipconfig /registerdns actualiza las conexiones DHCP y vuelve a registrar los
nombres DNS
Ipconfig /displaydns muestra el contenido de la caché de resolución DNS

4. Nbtstat (Muestra las estadísticas del protocolo y las conexiones actuales de


TCP/IP usando NetBios)
· Sus opciones son:
nbtstat -a Lista la tabla de nombres por nombre
nbtstat -A Lista la tabla de nombres por IP
nbtstat -c Lista la caché NetBios mostrando nombres y direcciones IP
nbtstat -n Lista los nombres NetBios locales
nbtstat -r Lista de nombres resueltos por difusión y WINS
nbtstat -R Purgar y recargar la caché NetBios
nbtstat -S Lista las sesiones con las IP de los destinos
nbtstat -s Lista las sesiones con los nombres de los destinos
nbtstat –RR Envía paquetes de liberación de nombres a WINS y después
actualiza.
Para más información help nbtstat

5. Net (sirve para muchísimas cosas, no se mencionarán todas en este tutorial,


os
explicaré sólo algunas, las demás busquen información por su cuenta, si ven
interesante este comando y quieren mandarme una descripción clara para
exponerla y compartirla, será expuesta con permisos y créditos en el tutorial, y
con 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 caracteres
para la contraseña. El intervalo es de 0 a 14 caracteres; el valor
predeterminado son 6 caracteres
/MAXPWAGE:{días | UNLIMITED} Establece el mínimo de días de
validez de una contraseña. No se especifica ningún límite si usa
UNLIMITED. /MAXPWAGE no puede ser inferior a /MINPWAGE. El
intervalo es 1-999; el valor predeterminado son 90 días.
/MINPWAGE:días Establece el mínimo de días que deben pasar antes
de que un usuario pueda cambiar una contraseña. El valor 0 no establece
tiempo 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 única
a 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 dominio
actual. De otra forma, la operación se realiza en el equipo local. Así es
como 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 conexiones
netstat -n Mostrar número de puerto y direcciones
netstat -r Mostrar la tabla de rutas
netstat -s Mostar estadísticas por protocolo
netstat -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
ping -a resolver direcciones en nombres de host
ping -n numero Número de peticiones a enviar
ping -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)

You might also like