educatica!

educación, informática y demás

Clases de informática, Comandos, Informática, Scripts Windows, Windows

Comprobar parámetros. Sentencias condicionales.

Hastas ahora hemos aparendido a crear scripts, configurar la variable de entorno PATH para poder ejecutar los scripts desde cualquier directorio, a utilizar variables para facilitar la legibilidad y manimiento de los scripts; a pasar y utilizar varlos por parámetro para aumentar la potencia de nuestros scripts.

Sin embargo, nos falta algo. Deberíamos comprobar que el usuario pasa los parámetros adecuados. Esto se llama control de errores en tiempo de ejecución.

Cuando creamos un script podemos dar las indicaciones oportunas sobre su uso. Por ejemplo, indicar que es necesario que se pase en el primer parámetro un valor concreto. Volvamos al ejemplo del script userBackup.bat donde recibimos en el primer parámetro el nombre de un usuario del sistema.

Según este código, el primer parámetro será el nombre del usuario del que vamos a crear una copia de seguridad. Sin embargo, el usuario que ejecute el script puede olvidar pasarnos un valor por parámetro. ¿qué pasaría en ese caso?.

En ese caso la variable %1 estaría vacía y al estar vacía provocaría una situación no esperada que en el caso de este script posiblemente pasaría desapercibida.

Veamos que pasaría si %1 no tiene valor alguno.

La variable usuario no contendría ningún valor y las rutas de los directorios y fichero de log no serían los correctos. Se realizaría una copia de seguridad de todo el directorio C:\Users y, posiblemente, no se guardaría nada en el fichero de log, puesto que la ruta del fichero de log es la de un fichero sin nombre con extensión .log.

Lo que hemos hecho ha sido expandir o sustituir %1 por el valor que contiene, es decir, nada.

Si en un script queremos asegurarnos de que nos pasan un valor por parámetro, porque es necesario, deberíamos comprobarlo. Para eso utilizamos sentencias condicionales con el comando IF.

Script myBackup.bat (versión 20.01)

Crea un script que reciba por parámetro el nombre de un usuario del sistema y un directorio destino. El script creará una copia de seguridad del perfil del usuario cuyo nombre se ha pasado el el primer parámetro dentro del directorio cuya ruta se ha pasado en el segundo parámetro.

Si no se pasa el nombre del usuario por parámetro, se deberá mostrar un mensaje de error específico. Si no se pasa la ruta del directorio destino se deberá mostrar un mensaje de error específico.

Una vez comprobado que se ha recibido la información necesaria, crearemos la copia de seguridad del perfil del usuario en el directorio destino. Suponemos que el perfil del usuario se almacena en C:\Users con el nombre del usuario.

Pidiendo datos por teclado

Si no me pasan un parámetro, pide el dato por entrada estándar, es decir teclado.

Ojo, puede que el usuario sea un poco «cabezón» y no inserte ningún valor por teclado. Si no inserta ningún valor, nos vamos a error.

Pista

Echa un ojo a la ayuda del comando set. En las comprobaciones usad variables dentro del script, no las variables de parámetro.

Deja un comentario

Tema creado por Anders Norén