lunes, 27 de octubre de 2008

Programar en Batch (II)

Bill WHG [michel.grc1@gmail.com]

Continuamos con algunos comandos de MS-DOS muy comunes que en programas Batch.

- Pause: Este comando lo que hace es que para el programa hasta que se pulse una tecla. Es muy útil porque si creamos un programa como este, explico mejor como batch son archivos de procesamiento por lotes, se ejecutan rápidamente y seria imposible verlo, ahora usando este comando podemos ver paso a paso lo que esta sucediendo con nuestro proyecto:

Código:
cls
@echo off
echo HOLA

Como dije ya al ejecutarlo se abrirá y se cerrara tan rápidamente que no podremos ver lo que hace, en cambio haciendo así:
Código:
@echo off
cls
echo HOLA
pause

El programa no se cerrara hasta que pulsemos una tecla. Al escribir el pause en un programa cuando y lo ejecutemos, se vera esto:
Código:
Presione un tecla para continuar...
Si queremos que no se vea nada tenemos que escribir pause>nul, el símbolo > es una redirección que explicare mas adelante

- Cls: Esto no tiene ninguna complicación, lo único que hace es borrar lo que hay escrito en la pantalla, pongo un ejemplo:
Código:
@echo off
dir
pause>nul
cls
pause>nul
dir nueva carpeta
pause>nul

Este código te muestra el interior de la carpeta donde lo abres, al pulsar una tecla borra la pantalla y cuando vuelves a pulsar otra tecla te muestra el contenido de nueva carpeta que debe estar dentro de la carpeta donde se ha ejecutado.

- Time: Este comando muestra y te permite cambiar la hora del sistema

- Date: Este comando muestra y te permite cambiar la fecha del sistema

- Del: Sirve para borrar un fichero. Mira este ejemplo:
Código:
@echo off
del /q texto.txt

Este codigo borra de la carpeta donde se ha abierto el archivo "texto.txt" sin pedir confirmación ( para no pedir confirmación hay que usar el atributo /q). Para mas ayuda escribir help del. Si queremos borrar todos lo archivos que comiencen por texto y tengan la extensión .txt, escribiremos esto:
Código:
@echo off
del /q texto*.txt

Voy a poner algunos ejemplos de uso de comodines como el anterior, imaginemos que queremos borrar un archivo que se llama texto pero que en la extensión solo sabemos la 1º letra y la segunda, entonces escribimos esto:
Código:
@echo off
del /q texto.t?t

Por si no se ha entendido bien, el comodín " * " representa el resto de caracteres de un nombre y el comodín " ? " representa un carácter, así que si escribimos esto:
Código:
@echo off
del /q *.*
Borraremos todos los archivos de la carpeta donde lo hayamos abierto

- Start: Este comando abre una nueva ventana de la consola de comandos, aunque también puede abrir webs así:
Código:
@echo off
start www.google.es

- Type: Muestra el contenido de un archivo de texto, por ejemplo así:
Código:
@echo off
type texto.txt

- Title: Establece el titulo de una ventana de la consola de comandos, se usa así:
Código:
@echo off
title mi ventana
pause>nul
Esto cambia el titulo de la ventana a "mi ventana"

- Md: Crea un directorio:
Código:
@echo off
md carpeta
Esto crea un directorio llamado carpeta

- Rd: Elimina un directorio:
Código:
@echo off
rd carpeta
Esto elimina el directorio "carpeta" antes creado

- Copy: Copia ficheros y carpetas:
Código:
@echo off
copy texto.txt carpeta1
Esto copia el archivo "a.txt" en la carpeta "carpeta 1"

Bien, creo que ya he puesto los comandos más básicos, pasemos a la siguiente parte

REDIRECCIONES Y FILTROS

Aquí voy a explicar el uso de las redirecciones y los filtros, la cosa es bastante sencilla, pero no es tan sencilla como lo visto anteriormente. Primero hablemos de las redirecciones:

Por defecto los comando que se ejecutan van dirigidos a la pantalla de la consola, pero eso lo podemos cambiar, anteriormente hemos visto un ejemplo de redirección con pause, al escribir un comando >nul lo que hará es que le comando se ejecute pero no muestra nada en ningún sitio, ejemplo:
Código:
@echo off


echo hola>nul
dir>nul
tree>nul
pause>nul
Nada de lo que se ha escrito aquí se vera en la pantalla.

Se puede redirigir a otros sitios como la impresora (>prn) o a algún archivo (>nombre_del_archivo.extension). Pongo algún ejemplo:
Código:
@echo off
cls
echo HOLA>texto.txt
echo HOLA DE NUEVO>>texto.txt
dir>prn
pause>nul

Si te has fijado en el primer echo se redirige al archivo texto.txt (si no esta lo crea), si ese archivo tuviese algo escrito lo borraría todo para escribir "HOLA", pero bajo sale una redirección así ">>" esto hace que en vez de borrar el archivo siga escribiendo en la ultima línea.

Ahora pasemos a hablar de los filtros, los filtros sirven para cambiar la salida de un comando se usan mediante la barra horizontal " | " (para escribirla hay que presionar alt + 124). Pongo aquí dos filtros:

| sort ----> Sirve para ordenar la salida.
| more ----> Sirve para poder ver todos los datos que se imprimen en la pantalla mas despacio.

SET, ASIGNAR VARIABLES Y OPERACIONES

Ahora llegamos al comando Set, también uno de los más usados, sirve para asignar variables y hacer operaciones entre ellas. Cuando sepamos este comando ya podemos hacer una calculadora perfectamente.

Si queremos escribir algo en la pantalla y que lo almacene en una variable tenemos poner Set /p varible=, pongo un ejemplo:
Código:
@echo off
cls
echo Como te llamas??
set /p var=
echo Hola %var%!!
pause>nul
Y si queremos hacer operaciones entre variables ponemos set /a var= %var1%+%var2%, pongo un codigo:
Código:
@echo off
cls
echo Introdice el numero 1º
set /p n1=
echo Introduce el numero 2º
set /p n2=
set /a res=%n2%+%n1%
echo La suma de los dos es: %res%
pause>nul



Artículos relacionados


No hay comentarios: