educatica!

educación, informática y demás

Ejercicios de repaso

Vamos a ver algunos scripts que nos pueden servir de repaso o como inicio al mundo de la programación de procesos por lotes o scripts en windows.

Ejercicio 01

Crea un script llamado infoUsuario.bat que añada al final del fichero llamado users.log, que estará dentro del directorio C:\Data, la fecha, hora y el nombre del usuario actual.

Ejercicio 02

Modifica el script anterior de forma, además de la información que ya guardaba, almacene también el árbol de directorios del perfil del usuario actual incluyendo los ficheros que contienen los directorios.

Ejercicio 03

Modifica el script anterior de forma que, además de guardar la información en el fichero de datos, muestre dicho fichero en pantalla.

Ejercicio 04

Modifica el script anterior para que compruebe que el directorio C:\Data existe. Si no existe el directorio C:\Data el script deberá crearlo.

Ejercicio 05

Modifica el script anterior para que se pase por parámetro el nombre del usuario para el que se muestre la información se pase por parámetro.

Es obligatorio que se pase un parámetro, si no se pasas se muestra mensaje de error y se termina la ejecución.

Suponemos que todos los perfiles de usuario del sistema están dentro del directorio C:\Users y que el nombre del directorio perfil de un usuario coincide con el nombre del usuario.

Por ejemplo, el usuario alfredoff tendrá su perfil de usuario en C:\Users\alfredoff.

Ejercicio 06

Crea un script llamado trash.bat que se encargará de asegurarse de que el directorio trash existe en el directorio personal del usuario actual.

Si el directorio trash no existe el perfil del usuario actual, entonces deberá crearlo.

Ejercicio 07

Modifica el script llamado trash.bat para que el script mueva el fichero cuya ruta se pasa por parámetro al directorio trash del usuario actual.

Se debe pasar por parámetro la ruta del fichero a mover. Si no se pasa por parámetro ningún valor entonces se deberá mostrar un mensaje de error y terminar con el script.

El script debe comprobar que existe el fichero cuya ruta se ha pasado por parámetro. Si el fichero no existe, deberá mostrar un mensaje de error adecuado y terminar la ejecución del script.

El script también debe asegurarse de que el directorio trash existe en el directorio personal o perfil del usuario actual. Si no existe, deberá crearlo.

Una vez realizadas las comprobaciones moverá el fichero pasado por parámetro al directorio trash.

Ejercicio 08

Modifica el script llamado trash.bat para que el script reciba dos parámetros, la operación a realizar y la ruta del fichero en caso de operación de añadir.

En el primer parámetro el script recibirá la operación a realizar que tan solo podrá ser una de las dos siguientes: add o clear.

Si el usuario no pasa parámetro o pasa por parámetro otro valor distinto, entonces el script mostrará un mensaje de error y terminará la ejecución.

Si el script recibe por parámetro el valor clear, entonces el script tan solo borrará el directorio trash, que se encuentra en el perfil del usuario actual, y todo su contenido.

Si el script recibe por parámetro el valor add, entonces realizará la acción que ya realizaba anteriormente, pero recibiendo en el parámetro 2 la ruta del fichero a borrar. En este caso, será obligatorio recibir parámetro 2, así que si no se proporciona el segundo parámetro se mostrará un mensaje de error adecuada y se terminará la ejecución del script.

El script debe comprobar que existe el fichero cuya ruta se ha pasado por parámetro. Si el fichero no existe, deberá mostrar un mensaje de error adecuado y terminar la ejecución del script.

El script también debe asegurarse de que el directorio trash existe en el directorio personal o perfil del usuario actual. Si no existe, deberá crearlo.

Una vez realizadas las comprobaciones moverá el fichero pasado por parámetro al directorio trash.

Ayuda

Como en todos los scripts deberíamos tratar de resolver el problema utilizando las herramientas de programación estructurada que hemos estado viendo en clase.

Sin embargo, con los scripts, en particular con los de Windows, podemos tener problemas de expresividad con algunas herramientas de programación. Por ejemplo, con la sentencia condicional IF. En las condiciones nos será muy difícil o imposible expresar una condición compuesta, por ejemplo que el parámetro sea add o que sea clear. Ese o lógico es posible que no podamos expresarlo.

Tened en cuenta que IF en procesos por lotes o script de windows es un comando. Que el lenguaje de scripts que estamos usando es lo más parecido posible a un lenguaje de programación de alto nivel, como C o Java, pero utilizando comandos. Por eso, algunas sentencias no son tan potentes o tienen muchas más limitaciones que las que nos podemos encontrar en un lenguaje de programación de alto nivel.

De esta forma, para solucionar este problema tenemos que utilizar un porque de ingenio y las herramientas disponibles en la consola de comandos de Windows.

Tema creado por Anders Norén