En esta serie de ejercicios vamos a practicar con redirecciones de salida y variables de entorno. Para ello se plantean una serie de ejercicios ordenados y secuenciales.
Apartado 1
Vamos a crear un árbol de directorios en el que realizaremos distintas operaciones. Vamos a practicar distintas contenidos, como rutas relativas y absolutas, comandos de Windows, redirecciones, etc.
- Comprueba si existe el directorio C:\educatica
- Si no existe el directorio C:\educatica, créalo.
- Cambia de directorio al directorio C:\educatica utilizando rutas relativas.
- Crea los directorios enero, febrero y marzo dentro del directorio 2023 dentro del directorio C:\educatica. Utiliza un comando.
- Muestra en pantalla la cadena de texto «Mi nombre es » seguido de tu nombre de pila y primer apellido.
- Crea un fichero llamado usuario.txt dentro del directorio C:\educatica cuyo contenido sea la cadena de texto «Mi nombre es » seguido de tu nombre de pila y primer apellido.
- Copia el fichero C:\Educatica\usuarios.txt al directorio C:\educatica\2023 con el nombre listado.txt. Utiliza rutas relativas.
- Renombra el fichero C:\educatica\usuarios.txt con el nombre usuarios.log
- Cambia de directorio al directorio C:\educatica\2023
- Muestra en pantalla el árbol de directorios del directorio C:\Educatica, utilizando rutas relativas.
- Almacena el árbol de directorios del directorio C:\Educatica en el fichero C:\educatica\2023\listado.txt. Utiliza rutas relativas. Si el fichero existe, sobrescríbelo.
- Añade el árbol de directorios del directorio C:\Educatica en el fichero C:\educatica\usuarios.log. Utiliza rutas relativas (si el fichero existe, añade los datos)
Ayuda. Como siempre piensa primero qué comando utilizarías para llevar a cabo la acción que se pide. Después piensa qué parámetros necesitarías pasarle para que el comando haga lo que quieres.
Solución
- Comprueba si existe el directorio C:\educatica
Como humanos, con el comando dir podemos comprobar si existe un directorio. Si dir nos muestra un mensaje de error, es que no existe. Si dir muestra el contenido del directorio, existe.
En nuestro caso, el directorio si existe. ¿Qu´`e pasaría si no hubiera existido?
Nos informa de que no existe el directorio.
Si no existe el directorio C:\educatica, créalo.
Si no hubiera existido, tendríamos que utilizar el comando mkdir pasqando la ruta del directorio a crear por parámetro.
En nuestro caso, como existe el propio comando nos informa de que ya existe.
Cambia de directorio al directorio C:\educatica utilizando rutas relativas.
Lo primero que tenemos que saber cuál es la ruta del directorio actual:
Sabiendo esto, ahora tenemos que buscar el directorio en común con la ruta del directorio destino.
Crea los directorios enero, febrero y marzo dentro del directorio 2023 dentro del directorio C:\educatica. Utiliza un comando.
Muestra en pantalla la cadena de texto «Mi nombre es » seguido de tu nombre de pila y primer apellido.
Este comando, así en una consola de comandos no tiene mucha utilidad. No obstente, si lo utilizaremos mucho cuando creemos scripts, si queremos crear ficheros o añadir datos a un fichero.
Crea un fichero llamado usuario.txt dentro del directorio C:\educatica cuyo contenido sea la cadena de texto «Mi nombre es » seguido de tu nombre de pila y primer apellido.
Nos pide que creemos un fichero cuyo contenido sea precisamente la cadena de texto que acabamos de mostrar en pantalla. Para crear un fichero podemos utilizar redirecciones de salida.
La idea es obtener el comando que mostraría en pantalla los datos que queremos almacenar en el fichero destino. Una vez con el comando lo único que tenemos que hacer es añadir la redirección de salida que necesitamos seguida de la ruta del fichero.
Vamos a comprobar si el fichero se ha creado y mostraremos su contenido
Copia el fichero C:\Educatica\usuarios.txt al directorio C:\educatica\2023 con el nombre listado.txt. Utiliza rutas relativas.
Comando: copy.
Renombra el fichero C:\educatica\usuarios.txt con el nombre usuarios.log
Comando: Rename o ren
Vamos a comprobar
Cambia de directorio al directorio C:\educatica\2023
Muestra en pantalla el árbol de directorios del directorio C:\Educatica, utilizando rutas relativas.
Almacena el árbol de directorios del directorio C:\Educatica en el fichero C:\educatica\2023\listado.txt. Utiliza rutas relativas. Si el fichero existe, sobrescríbelo.
Añade el árbol de directorios del directorio C:\Educatica en el fichero C:\educatica\usuarios.log. Utiliza rutas relativas (si el fichero existe, añade los datos)
Apartado 2
Vamos a continuar con redirecciones y variables de entorno.
- Muestra en pantalla, utilizando variables de entorno, la ruta del directorio actual seguida de la fecha y hora separados por la cadena de texto » – «.
- Almacena en el fichero C:\Educatica\sysInfo.txt la ruta del directorio actual seguida de la fecha y hora separados por la cadena de texto » – «. Si el fichero existe, sobrescribelo.
- Añade al fichero C:\Educatica\dataInfo.txt la ruta del directorio actual seguida de la fecha y hora separados por la cadena de texto » – «. Si el fichero existe, que los datos se añadan al final del fichero.
- Muestra en pantalla el contenido del directorio C:\Educatica y todos sus subdirectorios.
- Almacena en el fichero C:\Educatica\sysInfo.txt el contenido del directorio C:\Educatica y todos sus subdirectorios. Si el fichero existe, sobrescríbelo.
- Añade al fichero C:\Educatica\dataInfo.txt el contenido del directorio C:\Educatica y todos sus subdirectorios.
- Muestra en pantalla el nombre del usuario actual, seguido de la ruta de su perfil de usuario.
- Almacena en el fichero C:\Educatica\sysInfo.txt el nombre del usuario actual, seguido de la ruta de su perfil de usuario.. Si el fichero existe, sobrescríbelo.
- Añade al fichero C:\Educatica\dataInfo.txt el nombre del usuario actual, seguido de la ruta de su perfil de usuario.
- Muestra el contenido del fichero C:\Educatica\sysInfo.txt.
- Muestra el contenido del fichero C:\Educatica\dataInfo.txt.
- Copia todos los ficheros que contengan la cadena Info en su nombre con extensión TXT del directorio C:\Educatica y todos sus subdirectorios al escritorio (Desktop) del usuario actual.
Solución
Muestra en pantalla, utilizando variables de entorno, la ruta del directorio actual seguida de la fecha y hora separados por la cadena de texto » – «.
Almacena en el fichero C:\Educatica\sysInfo.txt la ruta del directorio actual seguida de la fecha y hora separados por la cadena de texto » – «. Si el fichero existe, sobrescribelo.
Añade al fichero C:\Educatica\dataInfo.txt la ruta del directorio actual seguida de la fecha y hora separados por la cadena de texto » – «. Si el fichero existe, que los datos se añadan al final del fichero.
Muestra en pantalla el contenido del directorio C:\Educatica y todos sus subdirectorios.
Almacena en el fichero C:\Educatica\sysInfo.txt el contenido del directorio C:\Educatica y todos sus subdirectorios. Si el fichero existe, sobrescríbelo.
Vamos a comprobar que contiene este fichero.
Hemos perdido los datos que había antes en este fichero porque hemos utilizado una redirección simple o de sobrescritura.
Añade al fichero C:\Educatica\dataInfo.txt el contenido del directorio C:\Educatica y todos sus subdirectorios.
Vamos a comprobar qué ha pasado en el fichero.
Como podemos ver, se añade la salida del comando al contenido del fichero, sin sobrecribirlo.
Muestra en pantalla el nombre del usuario actual, seguido de la ruta de su perfil de usuario.
Tenemos que usar variables de entorno.
Almacena en el fichero C:\Educatica\sysInfo.txt el nombre del usuario actual, seguido de la ruta de su perfil de usuario. Si el fichero existe, sobrescríbelo.
Ejecutamos el comando con redirección simple porque queremos sobrescribir el contenido. Ahora comprobamos qué hay almacenado en dicho fichero con el comando type.
Añade al fichero C:\Educatica\dataInfo.txt el nombre del usuario actual, seguido de la ruta de su perfil de usuario.
Vamos a mostrar el contenido del fichero
Si nos vamos al final de la salida…
Muestra el contenido del fichero C:\Educatica\sysInfo.txt.
Muestra el contenido del fichero C:\Educatica\dataInfo.txt.
Copia todos los ficheros que contengan la cadena Info en su nombre con extensión TXT del directorio C:\Educatica y todos sus subdirectorios al escritorio (Desktop) del usuario actual.
En este ejercicio nos piden que copiemos todos los ficheros que cumplan con un patrón del directorio C:\educatica y todos sus subdirectorios. Vamos a tener que usar el comando xcopy. El comando copy no copia ficheros de subdirectorios.
¿Qué parámetro especial tenemos que pasarle a xcopy para que copie ficheros de subdirectorios?
Vamos a utilizar /S porque en este caso vamos a copiar ficheros, por tanto los directorios vacíos del árbol de directorios no nos interesan.
¿Dónde lo hemos copiado?
Vamos a mirar que hay en el escritorio 🙂
Apartado 3
Vamos a jugar con entornos distintos y variables de entorno de usuario y sistema.
Crea una nueva variable de entorno llamada alumno cuyo contenido tenga tu nombre de pila.
Abre una nueva terminal y muestra el contenido de la variable alumno.
En esta terminal no existe la variable de entorno alumno. Cada terminal o shell tiene su propio entorno y variables de entorno. Se copian al iniciarse la terminal de las variables de entorno de usuario y del sistema que tengamos configuradas.
Vamos a mostrar en ambas terminales el contenido de la variable de entorno username y path.
Contienen los mismos valores. Se han copiado de las variables de usuario y de sistema. Vamos a acceder a propiedades del sistema para comprobar los varlores de estas variables de entorno.
Las terminales siguen manteniendo los valores antiguos. Vamos a cerrarlas y abrir terminales nuevas para que tomen el valor de la variable de usuario recién creada.
Hemos creado una nueva variable de entorno, pero las terminales que estaban en ejecución no tienen constancia de esa variable, puesto que se copiaron las variables de usuario y sistema cuando se lanzaron.
Si cambiamos el contenido de una variable de usuario o sistema con el comando set en una terminal, el cambio solo afecta a la copia de la variable en esa terminal.
Dejar una respuesta