sábado, 8 de mayo de 2010

Conociendo MS-DOS, Parte II

Bueno, siento haberme perdido y olvidado un rato de este Blog. Tenía casi un año de no actualizarlo.


En la Parte I les estuve explicando acerca de la apariencia y de algunos comandos básicos de MS-DOS, ahora les explicaré cómo crear un script (podríamos llamarlo, una aplicación que realice tareas básicas).

Una explicación muy importante, es que al hacer un script en cualquiera de sus dos formas, el formato de salida deberá ser .bat o .cmd. Además, al terminarse de ejecutar las líneas de código, automáticamente se cerrará la sesión de MS-DOS.


Para ello, existen dos formas de creación:


1) Abriendo el Bloc de Notas
2) Usando el comando echo dentro de MS-DOS



Bueno, les explicaré cada una de ellas:


La primera, mediante el Bloc de Notas, consiste en abrir una hoja nueva en un Bloc de Notas y escribir en una nueva línea los comandos y parámetros deseados. Por ejemplo, suponiendo que estoy en una hoja nueva del Bloc de Notas:



@Echo off
Msg * Hola, acabas de crear tu primer script en Bloc de Notas
Echo Presiona cualquier tecla para salir de esta ventana...
Pause>nul
Exit



La segunda forma, mediante MS-DOS con el comando echo. En lo personal, prefiero la primera forma porque resulta más fácil y rápida, pero es bueno saber cómo darle salida desde MS-DOS a cualquier tipo de archivo.

Bien, sabemos que el comando echo sirve para mostrar un texto en pantalla. Pero también posee una segunda función: crear un archivo con cualquier formato y que contenga el texto que queramos.

para utilizarlo con este propósito, su sintaxis es la siguiente:

echo mi texto o mi línea de comando + parámetros>miarchivo.bat

Pongamos un ejemplo:

supongamos que yo quiera crear un script que establezca un título a la consola de MS-DOS y que luego me muestre un mensaje. El script quiero guardarlo en el disco C:\ y se llamará Prueba.bat

Desde MS-DOS escribiría lo siguiente:


cd..
cd..
@echo off
echo title Programando un script de MS-DOS>Prueba.bat
echo echo Si puedes ver esto al ejecutar el script, felicidades>>Prueba.bat
echo Pause>>Prueba.bat
echo Exit


Bueno, a continuación explicaré algunas líneas de este script:

El @echo off, lo utilizamos para deshabilitar el eco. El eco es lo que muestra el MS-DOS por su propia cuenta, es decir, lo que viene por defecto cuando lo abrimos. Por ejemplo, al deshabilitar el eco eliminamos lo que nos aparece antes de escribir nuestros comandos (C:\Documents and settings\User\>). Esto es muy útil para cuando queremos mostrar un mensaje en la pantalla y no queremos que salga nada más que nuestro mensaje.

Cada línea que será enviada al script debe de ir antecedida de un echo y al final de ella deberá ir el signo > ó el signo >>, seguido del nombre del archivo.bat. El signo > indica que todo el contenido de esa línea irá hacia un el script y creará un nuevo archivo.

Dénse cuenta que también está >>, pero, ¿será lo mismo > que >>? La función es muy parecida, pero no es idéntica: cuando le damos salida a un texto con > y existe un script o archivo con ese mismo nombre, todo su contenido será eliminado y escribirá sólo lo que acabamos de hacer. En cambio, si usamos >>, significa que lo que ya contenga el archivo que estamos creando no será eliminado, simplemente se le agregará al final más información.

Si les resulta un poco complicado entender lo del párrafo anterior, aquí les va un ejemplo:

Imagínense que yo quiero crear un archivo que contenga nombres de personas con MS-DOS. Se llamará Nombres.txt, quiero irle agregando un nombre por cada línea. Yo quiero guardar este archivo en el disco C:\ y estoy seguro de que ahí mismo tengo un archivo llamado Nombres.txt, pero ya no quiero ese archivo. Entonces escribo en MS-DOS:

echo Yobo>Nombres.txt

Cómo les expliqué, al usar el signo > indica que si existe un archivo llamado Nombres.txt, borrará todo su contenido y sólo quedará escrito lo que acabo de hacer, en este caso "Yobo" será lo único que contendrá.

Ahora, quiero sumarle otro nombre en otra nueva línea a ese mismo archivo. No puedo usar un signo > porque sino, me borraría el nombre que ya tengo (Yobo), entonces utilizaré >>

echo Juan>>Nombres.txt

Con esto, al abrir el archivo Nombres.txt, leeré lo siguiente:

Yobo
Juan

Creo que con este ejemplo quedó muy claro el uso de > y de >>



Bueno, volviendo a la explicación de las líneas de código, al final le coloco dos líneas al script:

Pause>nul
Exit

Pause es un comando que sirve para hacer una pausa en el script de MS-DOS. >nul, es un dispositivo virtual que existe dentro del entorno de MS-DOS. se utiliza para que cuando usamos un comando, el texto o la explicacion que este nos brinda no sea mostrada en pantalla. Pueden probar a escribir "echo hola>nul" (sin las comillas). No les mostrará nada, porque el eco fue dirigido a ese dispotitivo nulo virtual. Pueden probar con todos los comandos y no les mostrará nada en pantalla.

En este caso, si yo escribiese Pause sin usar >nul, no habría ningún problema, me mostraría un mensaje "Presione una tecla para continuar...", pero como yo no quiero que muestre ese mensaje, le puse uno personalizado y por eso lo dirijo a >nul.


En el ejemplo que les mostré de la creación del script mediante MS-DOS, el Pause no lleva >nul, ya que si lo hubiera escrito de esa forma no se podría enviar al archivo de texto, porque MS-DOS entendería que la línea tendrá que dirigirse al dispositivo nulo y no al archivo. Por eso, prefiero escribirlo directamente en el Bloc de Notas.

Por último, escribo la última línea, Exit. Exit es un comando para salir de la consola de MS-DOS. Aunque como les dije, en el script no es necesario, ya que automáticamente al terminarse de ejecutar todas las líneas de código se cierra la consola (a no ser que le hayan puesto una condición o un bucle), pero sólo porque se me ocurrió la escribí, al fin y al cabo siempre se cerrará la consola.



Para correr nuestro programita o script, simplemente debemos de abrirlo, veremos que se abre una ventana negra de MS-DOS y que hace las operaciones que le establezcamos. Siempre que se desee mostrar un texto en pantalla, será necesario un Pause o Pause>nul, de lo contrario, el texto siempre se mostrará pero la ventana se cierra demasiado rápido y pueda que no lo logremos ver.

Si el script se desea correr en Windows Vista o Windows 7, siempre será el mismo procedimiento, pero si muestra problemas a la hora de hacer ciertas operaciones, se debe dar clic derecho al script, luego en "Ejecutar como administrador".

Bueno, espero haber ayudado a resolver más dudas acerca del maravilloso mundo de MS-DOS, dentro de poco tiempo si puedo les escribiré la Parte III de Conociendo MS-DOS. Cualquier duda, posteenla.

Yobo.