Autor Tema: Dictado del Curso: Programación Batch

0 Usuarios y 1 Visitante están viendo este tema.

01 Enero, 2011, 03:14 am
Leído 14168 veces

manu2b

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 24
  • Karma: +0/-0
  • Sexo: Masculino
Curso de Programación Batch

Disculpen las molestias, pero este curso va a ser remodelado debido a su antigüedad y a su poca extensión. Si necesitan contactar conmigo, por favor, háganlo mediante vía Mensaje Privado de este mismo foro o a través de [email protected]


Apéndice
  • 1. · Introducción (FAQ)
  • 2. · Comandos Batch
  • 3. · Etiquetas y menús
  • 4. · Variables
    • 4.1. · Variables en Batch
    • 4.2. · Variables de Entorno
    • 4.3. · Carácteres de una variable
    • 4.4. · Polimetría
    • 4.5. · Criptografía
  • 5. · Operaciones aritméticas
  • 6. · Condiciones
    • 6.1. · Operadores lógicos
    • 6.2. · Condiciones
    • 6.3. · Filtros para condiciones
  • 7. · Comando For
    • 7.1. · Modificador D
    • 7.2. · Modificador R
    • 7.3. · Modificador L
    • 7.4. · Modificador F
  • 8. · Bucles
  • 9. · Anexo 1
    • 9.1. · Salida de comandos
    • 9.2. · Seguridad
    • 9.3. · Batch Inyections
    • 9.4. · Crackmes
  • 10. · Anexo 2
    • 10.1. · Personaliza tu consola
    • 10.2. · Trabajar con archivos
    • 10.3. · Tareas
    • 10.4. · Crea tus propios comandos Batch
    • 10.5. · Animaciones en Batch
  • 11. · Scripts




Editando continuamente.
Por favor, no publiquen respuestas en este tema.


04 Enero, 2011, 08:37 am
Respuesta #1

manu2b

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 24
  • Karma: +0/-0
  • Sexo: Masculino
1. Introducción (Frecuently Asked Questions).

·¿Qué es batch?
►Batch es un lenguaje de programación (scripting) que se basa en una ejecución secuencial de diversos comandos.

·¿Para / por qué debo estudiar batch?
►Al estudiar batch mejoras tu capacidad logística / deductiva y, a la vez, te adentras en el mundo de la programación. Batch te va a servir como iniciación en la programación.

·¿Puedo hacer virus con batch?
►Sí, el hecho de hacer virus nos ayuda a mejorar nuestra capacidad logísitca / deductiva pero, desde mi punto de vida, no tiene ningún sentido usarlos. Se pueden probar en máquinas virtuales. De todas formas, mi consejo es que os intereséis por la programación en sí, no sólo voy a aprender estos comandos para crear este virus...

·¿Merece la pena aprender batch?
►Sí, con tan sólo una semana de estudio puedes llegar a dominar el lenguaje, crear tus propios scripts, etcétera.

·¿Batch es un lenguaje muy potente?
►Obviamente no, es sólo un lenguaje scripting diseñado con la intención de automatizar las tareas de nuestro ordenador. Sin embargo, se puede lograr grandes cosas con batch.

·¿Qué es lo que puedo llegar a hacer en batch?
►Las posiblidades de batch son "casi ilimitadas", sólo te limitan tu imaginación, tu ingenio y cierta lógica. Por ejemplo, no puedes crear un sistema operativo en batch. Scripts, programas que automatizan tareas...

¿Por qué aprender batch primero y no otro lenguaje como C o Perl?
►Fácil, en batch logras resultados inmediatos. Además de su facilidad y simplicidad a la hora de programar. Es un lenguaje muy poderoso. Se pueden crear muchos programas complejos con solo unas cuantas líneas de codigo. Muy eficaz, liviano y servicial. Puedes editar el código en cualquier ordenador, tan sólo con un editor de texto plano.

04 Enero, 2011, 08:52 am
Respuesta #2

manu2b

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 24
  • Karma: +0/-0
  • Sexo: Masculino
2. Comandos Batch

· ¿Qué comandos existen en batch?

Existen los comandos internos y los comandos externos:
·Comandos internos. Son aquéllos que vienen en el ordenador (comandos predeterminados).
·Comandos externos. Son aquéllos que descargamos y guardamos en nuestro ordenador (en la carpeta system32).

Lista de comandos internos y su función
Hay más comandos internos ocultos
Citar
ASSOC: Muestra o modifica las asociaciones de las extensiones de archivos.
Citar
AT: Planifica comandos y programas para ejecutarse en un equipo.
Citar
ATTRIB: Muestra o cambia los atributos del archivo.
Citar
BREAK: Establece o elimina la comprobación extendida de Ctrl+C.
Citar
CALCS: Muestra o modifica las listas de control de acceso (ACLs) de archivos.
Citar
CALL: Llama a un programa por lotes desde otro.
Citar
CD: Muestra el nombre del directorio actual o cambia a otro directorio.
Citar
CHCP: Muestra o establece el número de página de códigos activa.
Citar
CHDIR: Muestra el nombre del directorio actual o cambia a otro directorio.
Citar
CHKDSK: Comprueba un disco y muestra un informe de su estado.
Citar
CHKNTFS: Muestra o modifica la comprobación de disco al iniciar.
Citar
CLS: Borra la pantalla.
Citar
CMD: Inicia una nueva instancia del intérprete de comandos de Windows.
Citar
COLOR: Establece los colores de primer plano y fondo predeterminados de la consola.
Citar
COMP: Compara el contenido de dos archivos o un conjunto de archivos.
Citar
COMPACT: Muestra o cambia el estado de compresión de archivos en particiones NTFS.
Citar
CONVERT: Convierte volúmenes FAT a volúmenes NTFS. No puede convertir la unidad actual.
Citar
COPY: Copia uno o más archivos a otro lugar.
Citar
DATE: Muestra o establece la fecha.
Citar
DEL: Elimina uno o más archivos.
Citar
DIR: Muestra una lista de archivos y subdirectorios en un directorio.
Citar
DISKCOMP: Compara el contenido de dos disquetes.
Citar
DISKCOPY: Copia el contenido de un disquete en otro.
Citar
DOSKEY: Edita líneas de comando, memoriza comandos y crea macros.
Citar
ECHO: Muestra mensajes, o activa y desactiva el eco.
Citar
ENDLOCAL: Termina la búsqueda de variables de entorno del archivo por lotes.
Citar
ERASE: Elimina uno o más archivos.
Citar
EXIT: Sale del programa CMD.EXE (interfaz de comandos).
Citar
FC: Compara dos archivos o conjunto de archivos y muestra las diferencias entre ellos.
Citar
FIND: Busca una cadena de texto en uno o más archivos.
Citar
FINDSTR: Busca cadenas de texto en archivos.
Citar
FOR: Ejecuta un comando para cada archivo en un conjunto de archivos.
Citar
FORMAT: Da formato a un disco para usarse con Windows.
Citar
FTYPE: Muestra o modifica los tipos de archivo utilizados en una asociación de archivos.
Citar
GOTO: Direcciona el intérprete de comandos de Windows a una línea en un programa por lotes.
Citar
GRAFTABL: Permite a Windows mostrar un conjunto de caracteres extendidos en modo gráfico.
Citar
HELP: Proporciona información de ayuda para los comandos de Windows.
Citar
IF: Ejecuta procesos condicionales en programas por lotes.
Citar
LABEL: Crea, cambia o elimina la etiqueta del volumen de un disco.
Citar
MD: Crea un directorio.
Citar
MKDIR: Crea un directorio.
Citar
MODE: Configura un dispositivo de sistema.
Citar
MORE: Muestra la información pantalla por pantalla.
Citar
MOVE: Mueve uno o más archivos de un directorio a otro en la misma unidad.
Citar
PATH: Muestra o establece una ruta de búsqueda para archivos ejecutables.
Citar
PAUSE: Suspende el proceso de un archivo por lotes y muestra un mensaje.
Citar
POPD: Restaura el valor anterior del directorio actual guardado por PUSHD.
Citar
PRINT: Imprime un archivo de texto.
Citar
PROMPT: Cambia el símbolo de comandos de Windows.
Citar
PUSHD: Guarda el directorio actual y después lo cambia.
Citar
RD: Elimina un directorio.
Citar
RECOVER: Recupera la información legible de un disco dañado o defectuoso.
Citar
REM: Graba comentarios en archivos por lotes o CONFIG.SYS.
Citar
REN: Cambia el nombre de uno o más archivos.
Citar
RENAME: Cambia el nombre de uno o más archivos.
Citar
REPLACE: Reemplaza archivos.
Citar
RMDIR: Elimina un directorio.
Citar
SET: Muestra, establece o elimina variables de entorno de Windows.
Citar
SETLOCAL: Inicia la localización de cambios del entorno en un archivo por lotes.
Citar
SHIFT: Cambia posición de modificadores reemplazables en archivos por lotes.
Citar
SORT: Ordena las entradas.
Citar
START: Inicia otra ventana para ejecutar un programa o comando.
Citar
SUBST: Asocia una ruta de acceso con una letra de unidad.
Citar
TIME: Muestra o establece la hora del sistema.
Citar
TITLE: Establece el título de la ventana de una sesión de CMD.EXE.
Citar
TREE: Muestra gráficamente la estructura de directorios de una unidad o ruta de acceso.
Citar
TYPE: Muestra el contenido de un archivo de texto.
Citar
VER: Muestra la versión de Windows.
Citar
VERIFY: Comunica a Windows si debe comprobar que los archivos se escriben de forma correcta en un disco.
Citar
VOL: Muestra la etiqueta del volumen y el número de serie del disco.
Citar
XCOPY: Copia archivos y árboles de directorios.


Explicación de algunos comandos.

Echo (eco en español): Muestra mensajes. Activa / desactiva el eco, es decir, muestra u oculta la ruta donde estás situado. Echo on / off. Eco activado por defecto.

Ejemplo:



Cls
Borra la pantalla.

Goto
Sirve para desplazarte a una etiqueta*.
Citar
*Una etiqueta es una palabra [seguida de 'dos puntos' ( : )] que identifica un menú.

Help
Muestra los comandos de la consola (internos predeterminados).

Pause
La ejecución secuencial de comandos se para hasta que se presione una tecla para continuar.



Title
Inserta un título en la ventana donde estés trabajando.

►Al colocar los símbolos /? detrás de un comando, obtienes la ayuda de dicho comando. Estructura:
Comando /?

Ejemplo:
Código: [Seleccionar]
if /?

15 Agosto, 2011, 02:36 pm
Respuesta #3

manu2b

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 24
  • Karma: +0/-0
  • Sexo: Masculino
3. Etiquetas y menús

Nosotros, cuando programamos en Batch, tenemos la posibilidad de crear nuestros propios menús (bloques de código) para estructurar mejor el cuerpo de nuestro código. Estableceremos la etiqueta del menú de la siguiente forma:

Código: [Seleccionar]
:menu

De esa manera, estaremos definiendo un menú. Las etiquetas se usan conjuntamente con los comandos goto y call. Así, podremos acceder a un bloque de código cuando lo deseemos. También estos menús nos permiten crear bucles, finitos o infinitos (ayudándonos de un contador; lo veremos en el capítulo 8).

Código: [Seleccionar]
@echo off
:cond
set /p "op= Cual es tu nombre?:"
if not defined op (cls&goto:cond)

De esa manera, si el usuario no introduce nada cuando es requerido. Se borrará la pantalla (cls) y se volverá a la etiqueta :cond. De tal forma, que se le volverá a pedir la información.