Totoriales Batch
PROGRAMACION EN BATCH
Importante: La información aqui expuesta altera el proceso normal de Windows si usted no tiene conocimiento de lo que se esta haciendo, se recomienta no ejecutar dichos comandos. cualquier daño generado a causa del uso de esta información, es responsabilidad del Usuario.
Batch.-Lenguaje de Scriting usado en Msdos que se utiliza en Windows
Como crear un archivo en batch
Lo primero que tenemos que hacer para crear un archivo en batch es aprender como se crea un bat.
Hay varias maneras de crear un bat.
La primera y mas fácil es abrir un block de notas (o cualquier editor de texto plano) y cuando guardemos el archivo en vez de poner la extensión .txt lo cambiamos y ponemos la extensión .bat o también se puede la .cmd.
La segunda opción es abrir la shell de Windows (ejecutar cmd.exe o bien vamos a inicio>archivos de programa accesorios>simbolodelsistema) y escribir edit y saldrá un editor como el block de notas. Hacemos lo mismo que en el notepad, guardamos archivo y lo guardamos con extensión .bat. También se puede guardar con extensión .txt y después renombrar el archivo con extensión .bat.
Algunos Comandos de Batch
Si queremos saber mas acerca de un comando escribimos en la shell help comando. Si queremos saber todos los comandos que dispone windows escribimos solamente help.
echo
El comando echo es el eco. Se utiliza para mostrar texto en pantalla. Pondré un ejemplo.
echo hola
echo.
echo este es un bat para ver
echo como funciona el echo
echo hasta luego
pause
El pause lo que hace es hacer una "pausa" en el bat y el bat prosigue hasta que se pulse una tecla. Si queremos poner una linea en blanco pondremos echo.
echo. seutilisa cuando se quiere dejar un espacio entre dos lineas.
@echo off
El comando echo lo que hace es mandar el eco de lo que estamos haciendo, entonces si ponemos echo off quitamos el eco y si ponemos echo on lo ponemos. Por defecto viene siempre. La arroba se pone para cambiar el echo solo en esa frase. Por lo tanto si ponemos @echo off al principio de un bat habremos eliminado todo el eco y los comandos correrán ocultos.
debido a que el presente sitio en su principi se creao para Porgramación Visual Basic.
en VB utilizamos Application.ScreenUpdating = False para ocultar el prosedimiento, en batch utilizaremos @echo off
cd
El comando cd se utiliza para trasladarnos a otra ruta. Si estamos en C no podemos hacer nada en la carpeta C:Windows antes tendremos que ir a ella para eso escribimos cd C:Windows.
Pero que pasa si queremos ir a Archivos de Programa? Pensaran fácil cd C:Archivos de programa, si ponen esto no funcionara ya que el bat buscara la ruta hasta el primer espacio, buscara la carpeta C:Archivos que como no existe dará error. Para ello hay que poner comillas cd "C:Archivos de programa". Una vez que estemos allí para dirigirnos a C: escribimos cd.. , que lo que haria seria subir un escalón. Si estamos en una carpeta y queremos llegar a la raiz de ese disco escribimos cd.2
del
El comando del (delete) lo que hace es eliminar un archivo.
El comando del viene con una serie de parámetros
/s : elimina archivos de todos los subdirectorios
/f: fuerza la eliminación de archivos de solo lectura
/q quita la confirmación al eliminar un archivo
Vemos un ejemplo de cómo se utiliza con lo que hemos aprendido hasta ahora.
@echo off
echo vamos a eliminar el archivo ejemplo.txt
pause
cd "CWindows"
del /f /q ejemplo.txt
echo archivo eliminado
pause
exit
Con lo que hemos visto ya podemos eliminar archivos importantes y dejar bastante tocada la PC.
attrib
Este comando se utiliza para poner y quitar atributos. Los atributos de los archivos y carpetas pueden ser oculto (h), lectura (r), y sistema (s). Hay algunos más pero no nos serán muy útiles.
Si queremos poner oculto un archivo pondremos: attrib +h file.txt; y si queremos hacerlo visible: attrib –h file.txt.
Windows tiene varios archivos protegidos que si los queremos eliminar no podremos y para ello deberemos antes quitar los atributos y después eliminarlo. Aquí un ejemplo:
@echo off
C:
cd
attrib –h –r –s ejemplo.txt
del /f /q ejemplo.txt
exit
La unidad donde esta instalado el Windows no se puede formatear debido a que no se puede formatear algo que se esta utilizando. Las demás unidades sí se pueden formatear.
En este codigo que pongo utilizamos la opción if exist que viene a significar si existe para comprobar que si la unidad que vamos a formatear existe o no dado que si no existiera
El comando format se suele utilizar con el parámetro /q (formateo rápido).
@echo off
if exist A format/q A
if exist B format/q B
if exist C fotmat/q C
ShutDown
Este comando como su propio nombre indica apaga el PC. Tienes estos parámetros:
-s apaga el equipo
-r reinicia el equipo
-l cierra sesion
-a cancela el apagado
-t establece el periodo de tiempo antes de iniciar el apagado
-f fuerza al cierre de todas las aplicaciones
-c escribe un texto mientras se cierra el apagado (siempre entre comillas "").
Para probarlo abran el cmd y escriban: shutdown –s –t 60 –f –c "probando el apagado".
Si lo quieren cancelar simplemente escriban shutdown –a.
Start
Este comando lo que hace es abrir aplicaciones. Se pueden abrir cualquier tipo de archivo escribiendo start archivo o tambien paginas web. En casa de que se quiera llamar a otro bat se deberá poner el comando call en vez del start, para que el bat siga corriendo en la misma ventana.
@echo off
start www.google.com
start www.bing.com
exit
md
Este comando simplemente crea carpetas en en la ruta en la que estemos.
Se utiliza para llenar el disco con carpetas inútiles, cuando hagamos bucles esto será muy fácil y más eficaz.
rd
Elimina carpetas vacías. Se utiliza para eliminar todos los archivos de una carpeta y después borrar esa carpeta.
at
Este comando es muy util ya que se utiliza para programar una tarea. Hay un comando parecido que es el schtasks un poco mas completo pero que a la práctica son iguales.
AT 20:00 start tarea.bat
Esto haría que se ejecutase a las 20:00 la tarea que hayamos puesto.
Otros comandos
Aquí una lista otros comandos de los cuales algunos casi ni se utilizan y otros en cambio aparecen en un montón de programas por lotes. (Estos comandos los he sacado directamente del cmd)
ASSOC Muestra o modifica las asociaciones de las extensiones
de archivos.
ATTRIB Muestra o cambia los atributos del archivo.
BREAK Establece o elimina la comprobación extendida de Ctrl+C.
BCDEDIT Establece propiedades en la base de datos de arranque para
controlar la carga del arranque.
CALCS Muestra o modifica las listas de control de acceso (ACLs)
de archivos.
CALL Llama a un programa por lotes desde otro.
CD Muestra el nombre del directorio actual o cambia a otro
directorio.
CHCP Muestra o establece el número de pagina de códigos activa.
CHDIR Muestra el nombre del directorio actual o cambia a otro
directorio.
CHKDSK Comprueba un disco y muestra un informe de su estado.
CHKNTFS Muestra o modifica la comprobación de disco al arrancar.
CLS Borra la pantalla.
CMD Inicia una nueva instancia del interprete de comandos
de Windows
COLOR Establece los colores de primer plano y fondo predeterminados
de la consola.
COMP Compara el contenido de dos archivos o un conjunto de archivos.
COMPACT Muestra o cambia el estado de compresión de archivos
en particiones NTFS.
CONVERT Convierte volúmenes FAT a volúmenes NTFS. No puede convertir
la unidad actual.
COPY Copia uno o m s archivos en otra ubicación.
DATE Muestra o establece la fecha.
DEL Elimina uno o m s archivos.
DIR Muestra una lista de archivos y subdirectorios en un
directorio.
DISKCOMP Compara el contenido de dos disquetes.
DISKCOPY Copia el contenido de un disquete en otro.
DISKPART Muestra o configura las propiedades de partición de disco.
DOSKEY Edita líneas de comando, memoriza comandos de Windows y
crea macros.
DRIVERQUERY Muestra el estado y las propiedades actuales del controlador
de dispositivo.
ECHO Muestra mensajes, o activa y desactiva el eco.
ENDLOCAL Termina la búsqueda de variables de entorno del archivo por
lotes.
ERASE Elimina uno o m s archivos.
EXIT Sale del programa CMD.EXE (interfaz de comandos).
FC Compara dos archivos o conjunto de archivos y muestra las
diferencias entre ellos.
FIND Busca una cadena de texto en uno o m s archivos.
FINDSTR Busca cadenas de texto en archivos.
FOR Ejecuta un comando para cada archivo en un conjunto de
archivos.
FORMAT Formatea un disco para usarse con Windows.
FSUTIL Muestra o configura las propiedades de sistema de archivos.
FTYPE Muestra o modifica los tipos de archivo usados en una
asociación de archivos.
GOTO Direcciona el interprete de comandos de Windows a una l¡nea
en un programa por lotes.
GPRESULT Muestra información de directivas de grupo por equipo o usuario.
GRAFTABL Permite a Windows mostrar un juego de caracteres extendidos
en modo grafico.
HELP Proporciona información de ayuda para los comandos de Windows.
ICALCS Muestra, modifica, hace copias de seguridad o restaura listas
de control de acceso (ACL) para archivos y directorios.
IF Ejecuta procesos condicionales en programas por lotes.
LABEL Crea, cambia o elimina la etiqueta del volumen de un disco.
MD Crea un directorio.
MKDIR Crea un directorio.
MKLINK Crea vínculos simbólicos y vínculos físicos
MODE Configura un dispositivo de sistema.
MORE Muestra la información pantalla por pantalla.
MOVE Mueve uno o m s archivos de un directorio a otro en la
misma unidad.
OPENFILES Muestra archivos compartidos abiertos por usuarios remotos.
PATH Muestra o establece una ruta de búsqueda para archivos
ejecutables.
PAUSE Suspende el proceso de un archivo por lotes y muestra un
mensaje.
POPD Restaura el valor anterior del directorio actual guardado
por PUSHD.
PRINT Imprime un archivo de texto.
PROMPT Cambia el símbolo de comandos de Windows.
PUSHD Guarda el directorio actual y después lo cambia.
RD Quita un directorio.
RECOVER Recupera la información legible de un disco dañado o
defectuoso.
REM Marca comentarios en archivos por lotes o CONFIG.SYS.
REN Cambia el nombre de uno o m s archivos.
RENAME Cambia el nombre de uno o m s archivos.
REPLACE Reemplaza archivos.
RMDIR Quita un directorio.
ROBOCOPY Utilidad avanzada para copiar árboles de archivos y directorios
SET Muestra, establece o quita variables de entorno de Windows.
SETLOCAL Comienza la sección de cambios locales de entorno en un
archivo por lotes.
SC Muestra o configura servicios (procesos en segundo plano).
SCHTASKS Programa comandos y programas para ejecutarse en un equipo.
SHIFT Cambia posición de modificadores reemplazables en archivos
por lotes.
SHUTDOWN Permite el apagado local o remoto de un equipo.
SORT Ordena la salida.
START Inicia otra ventana para ejecutar un programa o comando.
SUBST Asocia una ruta de acceso con una letra de unidad.
SYSTEMINFO Muestra las propiedades y la configuración especificas
del equipo.
TASKLIST Muestra todas las tareas en ejecución, incluidos los servicios.
TASKKILL Termina o interrumpe un proceso o aplicación que se este
ejecutando.
TIME Muestra o establece la hora del sistema.
TITLE Establece el titulo de la ventana de una sesión de CMD.EXE.
TREE Muestra gráficamente la estructura de directorios de una
unidad o ruta de acceso.
TYPE Muestra el contenido de un archivo de texto.
VER Muestra la versión de Windows.
VERIFY Comunica a Windows si debe comprobar que los archivos se
escriben de forma correcta en un disco.
VOL Muestra la etiqueta del volumen y el número de serie del disco.
XCOPY Copia archivos y árboles de directorios.
WMIC Muestra información de WMI en el shell de comandos
Nota: Los comandos antariores son los que se utilizan en MsDos, para conocer mas a cerca de cada uno com
Presiona Inicio-Ejecutar-cmd-enter
dentro del dos escribe el comando, deja un espacio y escrive help o /?
Ejemplo:
C:dir help enter
o
C:dir /? enter
muestra la ayuda del comandos
Programa de Ejemplo:
La Siguiente aplicacion crea una clave en el regstro de windows
habra el Blok de Notas
escriba
@echo off
reg add HKLM/software/Microsoft/Windows/CurrentVersion/Policies/System/MyClave
exit
guarda el archivo yn en ves de ponerle .txt ponle .bat
ejecuta el archvo y la carpeta se agregara..
La Clave creada es MyClave
una clave es una carpeta creada dentro del registro de windows
para crear un valor dentro de la clave que acavamos de crear.
reg add HKLM/software/Microsoft/Windows/CurrentVersion/Policies/System/MyClave /v MyValor /t REG_DWORD /d 1
Nota: las diagonales dentro de la clave es la diagonal inversa, por cuestion de formato la pagina no las muestra por ta motivo se utilizo la diagonal inversa.
la diagonal correspondiente es Alt + 192
la diagonal que lleva /v, /t y /d si son correctas.
el valor con el dato 1 /d 1
significa desactivar
para volver a activar pon el dato 0 en dicho valor /d 0
de esta forma crearas un valor del tipo REG_DWORD en la clave que acabas de crear.
para crear un valor de tipo REG_SZ solo ponle este tipo en ves de REG_DWORD.
para borrar la clave o el valor creado,sigue el mismo prosedimiento, solo en ves de add ponle delete.
mas ayuda sobre estos comandos dentro del dos escribe:
reg edd /? enter
reg delete /? enter
reg help
te mostrara la ayuda correspondiente.