Tutorial para crear archivos batch en Windows
Manual sobre la creación y edición de los archivos batch. Aprender a hacer nuestras propias aplicaciones copiando y pegando el código en el Bloc de notas. Guía paso por paso, ejemplos prácticos, reglas y trucos.
Sencillo manual en el que se explica de forma detallada los principios elementales, para crear las aplicaciones ejecutables conocidas popularmente como archivos BATCH o BAT.Introducción al mundo de la programación batch, uso de los comandos más comunes de la consola de CMD, para crear aplicaciones que se pueden usar en Windows para infinidad de tareas prácticas.
Como crear un archivo batch paso a paso.
Ejemplos prácticos para copiar y pegar el código, consejos y trucos.
Precauciones a tener en cuenta.
Herramientas para descargar que facilitan la creación de estas aplicaciones y probarlas correctamente.
¿Que son los archivos batch?
Los archivos batch, también conocidos popularmente como archivos BAT, son aplicaciones ejecutables.
Son simplemente pequeños archivo de texto plano, que contienen códigos o instrucciones escritos en el lenguaje de MSDOS, estos códigos son lo que se conoce como comandos.
Estos archivos son guardados con la extensión de archivo .bat o .cmd. Al ejecutarse alguno de ellos (dar dos clics), Windows automáticamente inicia la consola o interprete de comandos de MSDOS y ejecuta las instrucciones o códigos que contienen en grupo, de forma secuencial.
En los años 80 para utilizar una PC era necesario ser informático, lo que limitaba el uso de estos equipos a un grupo reducido de personas. Al surgir el primer sistema operativo Windows, este incluye una interface entre el usuario y la computadora, que permite que un clic u otra acción del usuario, se conviertan en una secuencia de comandos.
Con el paso del tiempo lógicamente, disminuye el uso de la consola de CMD pero se mantiene completamente vigente el empleo de los comandos en las aplicaciones batch.
Cualquier usuario, aun con pocos conocimientos, puede crear tus propios archivos batch para facilitar la ejecución de varias tareas en Windows.
El propósito de este artículo es estimular y facilitar el uso de estas aplicaciones.
Uso y empleo de los archivos batch en Windows
El principal uso de estos archivos en la actualidad, es la de realizar tareas sencillas pero tediosas y repetitivas, de acuerdo a la labor en que usemos cada uno nuestra PC y así evitar la instalación de software de terceros, que a la larga harán la misma función, que un archivo batch creado con un simple archivo de texto.
Los archivos batch son ideales para varias funciones, por ejemplo hacer copias, extraer y listar información, eliminar virus, planificar tareas, ejecutar limpiezas en el sistema, hacer respaldos de datos e información, automatizar descargas de internet, en fin infinidad de aplicaciones.
¿Cómo crear un archivo batch en Windows?
Para crear un archivo batch solo es necesario un editor de texto plano, que puede ser el Notepad++ (recomendado) o hasta el simple Bloc de notas de Windows.
Notepad++ lo puedes descargar gratis de sourceforge.net, resalta con colores diferentes la sintaxis, lo que permite percatarse fácilmente de cualquier error en el código empleado.
No es necesario conocimientos de informática, solo comprender simples reglas que verás más abajo y familiarizarse con algunos de los comandos más empleados.
La estructura de un archivo batch es sencilla:
• Una primera línea: @ECHO OFF (no es imprescindible para que funcione)
• Las instrucciones que pueden constar de una simple línea o de varias, todas se irán ejecutando en su orden.
• Al final generalmente se emplea EXIT o EOF que cierra la ventana de la consola.
Al hacer tus primeros batch siempre emplea PAUSE después de las instrucciones, su uso como la palabra indica, pausa y permite ver mensajes de error, en caso de que exista alguno, de otra forma la consola se cerrará y será imposible conocer lo que lo ha causado.• Las instrucciones que pueden constar de una simple línea o de varias, todas se irán ejecutando en su orden.
• Al final generalmente se emplea EXIT o EOF que cierra la ventana de la consola.

Herramientas y configuración del sistema para la creación y edición de archivos batch
Antes de empezar con este pequeño tutorial debes de crear todas las condiciones en tu sistema para facilitar la edición, prueba y creación de los archivos batch, para eso te sugiero:
1- Crear el menú derecho de tu ratón la posibilidad de abrir una ventana de CMD en cualquier directorio en que te encuentres situado, para eso descarga y ejecuta la siguiente clave del registro.
Descarga clave para crear boton en el menu contextual para acceder a la Consola de CMD

2- Crea la posibilidad de crear plantillas de archivos batch con la opción Nuevo del menú contextual, para hacerlo descarga y ejecuta la siguiente clave del registro.
Descarga clave para crear Nuevo archivo CMD con el clic derecho del mouse
Otra opción es copiar y pegar el siguiente código en Ejecutar (WIN+R):
cmd.exe /c echo @echo off>%userprofile%\Desktop\muestra.cmd
te creará una pequeña plantilla en tu escritorio, para utilizarla arrástrala al Bloc de Notas, introduce el comando a ejecutar y guarda los cambios mediante CRL+G, sin cerrar el Bloc de notas, prueba el batch.

Otra opción es copiar y pegar el siguiente código en Ejecutar (WIN+R):
cmd.exe /c echo @echo off>%userprofile%\Desktop\muestra.cmd
te creará una pequeña plantilla en tu escritorio, para utilizarla arrástrala al Bloc de Notas, introduce el comando a ejecutar y guarda los cambios mediante CRL+G, sin cerrar el Bloc de notas, prueba el batch.
3- Activa en tu consola de CMD la opción de edición rápida, que te permitirá copiar y pegar texto desde y hacia la consola, si no sabes hacerlo manualmente descarga y ejecuta la siguiente clave del registro.
Descarga clave para habilitar la Edición rápida en la consola de cmd

4- Auxíliate de la siguiente lista de comandos, contiene solo los más utilizados y de uso más general. Abre la página que la contiene en el siguiente vínculo, puedes dejar abierta la ventana y seguir interactuando con tu navegador.
Lista de los comandos de la consola de CMD de Windows para móviles y celulares

Crear un archivo batch, método paso por paso
• Comenzaremos creando un Simple y clásico "Hola Mundo", escribiendo en tu plantilla el siguiente código:
@echo off echo Hola Mundo pause exit• Guardamos el archivo como nombre.cmd y lo ejecutamos, el archivo tomará el icono de una rueda dentada y nos aparecerá una pantalla negra que dirá "Hola Mundo", luego una línea abajo mostrará "Presione una tecla para continuar"
La explicación:
echoMuestra un texto en pantalla, que es el texto que viene después, en este caso es: Hola Mundo.
pauseComo bien se lee, pausa la ejecución del código. Además muestra el texto: "Presione una tecla para continuar".
exitCierra la ventana de comandos.
Funciones de algunos comandos
CD o CHDIR:
Sirve para cambiar de Directorio o mostrar el nombre del actual. Para usarlo, usa
CD
o CHDIR
seguido de la ubicación del directorio al cual nos moveremos.Por ejemplo:CD C:\
CHDIR C:\Los ejemplos anteriores hacen exactamente lo mismo, cambian al Disco C
COPY:
Copia uno o más archivos a otro destino.
Su sintaxis es la siguiente:
COPY "Dirección del archivo" "Nueva dirección"Por ejemplo:
Copy C:\archivo.txt C:\archivo2.txtAquí copiaríamos un archivo del Disco C llamado archivo.txt como archivo2.txt, para acortar un poco podríamos usar:
CD Copy archivo.txt archivo2.txtDonde primero cambiamos de directorio al Disco C con
CD C:\
y luego al copiar no tenemos que especificar que el archivo está en el Disco C, ya que ya nos encontramos en él.DEL:
Elimina uno o más archivos, su sintaxis es:
DEL ARCHIVOTambién se puede usar con los siguientes parámetros:
DEL /F /Q archivoDonde
/Q
logra que la consola no pida la confirmación de eliminar el archivo y /F
permite eliminar archivos que poseen el atributo de solo lecturaMOVE:
Sirve para mover un archivo. Su sintaxis es:
Move Dirección Archivo Nueva Dirección
CLS:
Sirve para limpiar el contenido de la pantalla.
Por ejemplo:
@echo off
ECHO Hola, Cuando pulses una tecla se borrará el contenido y cambiará por otro.
PAUSE
CLS
ECHO ¿Ves?
pause
exit
Si quisiéramos averiguar más sobre las funciones, o conocer algunas nuevas por nuestra propia cuenta podemos escribir en el CMD el nombre del comando seguido de ECHO Hola, Cuando pulses una tecla se borrará el contenido y cambiará por otro.
PAUSE
CLS
ECHO ¿Ves?
pause
exit
/?
y aparecerá toda la información necesaria.Ejemplos prácticos de archivos batch
Con el siguiente código podemos crear un archivo batch que copie un archivo, luego lo mueva a otro directorio, borre el original y vuelva a copiar el copiado.
En la carpeta donde crearás el archivo batch, crea un archivo de texto llamado copiame.txt. En él, escribe lo que quieras. Este será el archivo que copiaremos.
Código:
@echo off echo Hola, Copiaremos un archivo pause COPY copiame.txt copiado.txt MOVE copiado.txt C:\copiado.txt DEL copiame.txt CD C:\ COPY copiado.txt copiado2.txt EXITGuárdalo en la carpeta como prueba.cmd, y ejecútalo. Después, si vamos al Disco C, veremos que hay dos nuevos archivos de texto, uno llamado: copiado.txt y otro: copiado2.txt.
También si vamos a la carpeta del batch, comprobaremos que no está el archivo de texto original, copiame.txt.
Creación de nuevos archivos:
Usando archivos batch podemos crear otros archivos diferentes, para eso podemos usar algo como lo siguiente:
echo TEXTO DE PRIMERA LINEA > nombre.extensión echo TEXTO SEGUNDA LINEA >> nombre.extensión echo TEXTO SIGUIENTE LINEA >> nombre.extensiónAl escribir ECHO seguido de un texto y el signo > creamos un archivo con el nombre que siga.
Si ocupamos un ECHO seguido de un texto y el doble signo >> se escribirá en la siguiente linea vacía del archivo que prosiga.
Hagamos la prueba:
echo Creando un Archivo de texto > nuevo.txt echo Esta es la Segunda linea >> nuevo.txt echo Y esta es la Siguiente >> nuevo.txt echo Esto esta genial >> nuevo.txtAj ejecutarlo, la pantalla negra se abrirá y cerrará, pero en la carpeta en la que está nuestro batch, se habrá creado un nuevo archivo nuevo.txt que si lo abrimos, dentro tendrá escrito lo que especificamos anteriormente.
Además se puede jugar con los caracteres. Un ejemplo, donde se cambiaron los colores, los caracteres y el pause:

El código empleado es el siguiente:
@echo off color 30 echo ================================== echo = = echo = Personalizado = echo = = echo ================================== echo. echo. echo Para salir presiona una tecla. pause>nul exitVale mencionar que
ECHO
, seguido de un punto, sirve para saltarse una línea.Usar variables en los archivos batch
Las variables son muy importantes y prácticas en los archivos batch, aprende como crearlas.
SET NOMBREVARIABLE = VALORPara escribir una variable creada anteriormente, debemos escribir su nombre entre los signos
%%
Por ejemplo:
@echo off set Nombre = Norfi Carrodeguas echo %Nombre% pauseEn el caso anterior primero creamos la variable llamada Nombre y le dimos un valor, posteriormente la escribimos.
También podemos crear variables dinámicas y dar la opción que el usuario la defina, se hace de la siguiente forma:
@echo off SET /P Nombre = Escriba su Nombre:En este caso al ejecutar el archivo batch, solo se mostrará en la consola el mensaje: "Escriba su Nombre:"
Al usuario ingresar los caracteres que decida y oprimir la tecla Enter, el batch ejecutará la acción contenida en el código, usando como valor de la variable el texto que el usuario ingresó.
Realizar operaciones matemáticas con archivos batch
Mediante archivos batch también podemos realizar operaciones como multiplicar, sumar, dividir, etc. usando el modificador /A, por ejemplo de la siguiente forma hacemos la operación: 2 + 43 = 45.
SET numero1 = 2 SET numero2 = 43 SET /A suma = %numero1% + %numero2% echo %suma% pause exitUsando el modificador /A, lo que quede a la derecha del signo igual (=). se consideran expresiones numéricas a evaluar. Su pueden usar los siguientes caracteres como operadores matemáticos:
+ - * / %
Consejos y tips para la creación y uso de los archivos batch
➔ Para comentar, es decir escribir comentarios dentro del código de tus batch, antepone REM al comienzo de la línea, esta no será interpretada por la consola.
También es posible utilizar dos puntos dobles "::"(sin las comillas).
➔ Cuando al ejecutar un batch, este se cierre y te quedas con la duda de lo que sucedió, agrega PAUSE antes del final del código, lo que te permitirá saber si hay algún error, también puedes insertar varios en diferentes líneas, e ir ejecutándolo por partes.
Al igual que PAUSE puedes utilizar PAUSE>NUL, entonces no se mostrará el famoso mensaje "Presione una tecla para continuar…."
Como usar redireccionadores en los archivos batch
➔ Puedes combinar varios comandos en un archivo batch intercalando el signo |, esto indica que se ejecutará el segundo comando utilizando el resultado del primero, un ejemplo es:
ipconfig|FINDSTR /C:"Máscara de subred"Esta línea abre IPCONFIG y a continuación busca la cadena Mascara de subred y si existe muestra el resultado.
➔ Si empleas dos barras el segundo comando se ejecutará solo si el primero falla, por ejemplo:
COPY D:\NOEXISTE C:\ || ECHO No se pudo copiar el archivo
➔ Para redireccionar un primer comando a un segundo, intercala un amspersand entre ambos, pero si usas dos caracteres estas condicionando la ejecución del segundo al éxito del primero, es como insertar la frase "Si es así, entonces", por ejemplo:
START calc.exe && ECHO La calculadora se inicio con éxito.
➔ Para direccionar el resultado de un comando a un archivo de texto utiliza:
Comando > archivo.txt➔ Si deseas seguir agregando datos al mismo archivo creado utilizando otro comando utiliza:
Comando2 >> archivo.txt➔ Para pasar el contenido de un archivo de texto a un comando usa:
Comando < archivo.txt➔ Para mostrar un archivo de texto en pantalla usa:
TYPE texto.txt
Algunos ejemplos, se explican solos:
DIR C:\ >Lista_de_C.txt & DIR D:\ >Lista_de_D.txt FIND /i "Alberto" < texto.txt > resultado.txt MEM /C >> MemLog.txt DATE /T >> MemLog.txt TYPE texto.txt > texto.html
➔ Donde quiera que haya una cadena que tenga espacios tienes que utilizar las comillas, en las rutas a los archivos también es recomendado utilizarlas.
➔ Cuando la ruta a un archivo determinado es muy complicada, lo más fácil es dar clic en las Propiedades del archivo y copiar la ruta que allí aparece.
También para eso puedes instalar una clave del registro que agrega al menú contextual del mouse la facilidad de que al hacer clic en un archivo del explorador y seleccionar "Copiar Ruta" puedes pegarla en tu batch.
◄ Agregar en el menú contextual la opción de Copiar la ruta del archivo o carpeta
➔ Para crear un mensaje en un batch, es decir una ventana que muestra una indicación o comentario al usuario, escribe en el batch lo siguiente:
MSG * Este Es Mi Mensaje.
➔ Para que se muestre en el batch la fecha y la hora utiliza las variables DATE y TIME de la siguiente forma:
@echo off echo Fecha:%date% echo Hora:%time%
➔ Para detener un proceso o programa determinado averigua su nombre o identidad exacta en el Administrador de tares y utiliza:
taskkill /im /f programaespecifico.exe taskkill /f /im wmplayer.exe taskkill /f /im explorer.exeEn el caso del explorer se utiliza mucho para poder solucionar los bloqueos del explorador de Windows, al cerrarse el explorador para iniciarlo abre el administrador de tareas, selecciona Nueva tarea y escribe:
Start explorer.exe
CIBERGRAFIA:
http://norfipc.com/utiles/tutorialbatch1.html
La shell en entorno ms/dos.Tutorial programación.bat
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 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ó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.
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 que 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.
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
*.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. |
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.
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.1 CLS
Borra la pantalla
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.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.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.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.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
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 |
Se pueden definir etiquetas que se utilizarán para saltar a ellas cuando se cumpla una condición. Para definir una etiqueta pones una línea que empiece por : y luego el nombre de la etiqueta
Por ejemplo:
ORDEN 1 | |
ORDEN 2 | |
if %os% == Winnt goto winnt | 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:
AVERIGUARSISTEMAOPERATIVO windows98
AVERIGUARSISTEMAOPERATIVO win2000
AVERIGUARSISTEMAOPERATIVO winxp
En los tres casos llamas al mismo script AVERIGUARSISTEMAOPERATIVO, pero en cada caso le pasas un parámetro diferente. En el primero le pasas windows98, en el segundo le pasas win2000 y en el tercero le pasas winxp.
Para referirte al parámetro en el código debes saber que el sistema les asigna nombre de forma automática. Ál primero le llama %1, al segundo %2, al tercero %3, ..., al mil %1000
Así yo podría tener un archivo bat llamado AVERIGUARSISTEMAOPERATIVO.BAT que me confirma si mi sistema operativo es el que yo creo.
Su código sería:
if %os%==%1 goto correcto | 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.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
reg query HKLM\Software\Microsoft\Rest /v Version |
Mostrar todas las subclaves y valores en la clave de registro Setup
reg query HKLM\Software\Microsoft\Rest\Setup /s |
Guardar el subarbol MiAp en el archivo CopiAp.hiv en la carpeta actual
reg save hklm\Software\Mico\MiAp CopiaAp.hiv |
Comparar los valores de MiAp con los de GuardaMiAp
reg compare khlm\softare\Mico\Miap HKLM\Software\Mico\GuardaMiAp |
Agregar una clave Mico en el equipo remoto ABC
reg add \\abc\HKLM\Software\Mico |
Agregar un valor 'datos' de tipo REG_BINARY y contenido 'fe340ead'
reg add HKLM\Software\Mico /v datos /t REG_BINARY /d fe340ead |
Cargar el archivo CopiaAp.hiv en MiAp
reg load hklm\Software\Mico\MiAp CopiaAp.hiv |
Exportar todas las subclaves de la clave MiAp a CopiaAp.REG
reg export HKLM\Software\Mico\MiAp CopiaAp.reg |
Eliminar el contenido de TIMEOUT y todas sus subclaves y valores
reg delete hklm\Software\Mico\MiAlp\Timeout |
Descargar el arbol MiAlp del registro
reg unload /hklm\software\Mico\MiAp |
Importar el archivoCopiaAp.reg
reg import CopiaAp.reg |
Copia todas las subclaves y valores de MiAp a GuardaMiAp
reg copy hklm\software\mico\MiAp hklm\Software\Mico1 |
Copiar todos los valores de la clave Mico en otro equipo al equipo actual
reg copy \\equipo\hklm\softwaer\Mico hklm\software\mico1 |
Restaurar el archivo CopiaAp.hiv sobreescribiendo la clave 'datos'
reg restore hklm\software\mico\MiAp\Datos CopiaAp.hiv |
14 Enviar por ftp de forma automática (cortesía de rkk)
@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:
Marco
12345
binary
hash
bye
CIBERGRAFIA:
No hay comentarios:
Publicar un comentario