educatica!

educación, informática y demás

Comandos, Informática, Sistemas operativos, Windows

Algunos ejemplos de comandos Windows

Si no conocemos cómo utilizar un comando tenemos que consultar la ayuda.

Muestra el árbol de directorios del directorio actual.

Muestra el árbol de directorios del directorio C:\Windows usando rutas relativas.

Muestra el árbol de directorios del directorio actual mostrando los ficheros que contiene.

Comando CD.

Mkdir

Vamos a crear un directorio ssoo

Crea los directorios w7, w10 y GNULinux dentro del directorio ssoo que está en el directorio actual.

Borrar directorios

Borra el directorio W7 que está dentro del directorio sssoo dentro del directorio actual.

Borra el directorio ssoo y todo su contenido.

Redirecciones suavecitas

Todos los comandos y aplicaciones utilizan dos salidas para mostrar información al usuario: salida estándar y la salida de error. Por defecto ambas salidas son la pantalla.

Nosotros podemos cambiar la salida estándar y la de error si queremos. Con esto, en lugar de mostrarse el texto en pantalla se redirecciona a un fichero.

Es decir, en lugar de mostrar información en pantalla, todo lo que tendría que salir en pantalla se almacenará en un fichero.

Se ha creado un fichero cuyo contenido será toda la información que el comando DIR hubiera mostrado en la salida estándar. Si el fichero listado.txt hubiera existido, con esta redirección se hubiera sobrescrito su contanido.

Si no queremos que se sobrescriba el fichero podemos utilizar otro tipo de redirección que permite añadir el texto al final del fichero. Esta redirección es >>.

Fecha y hora

Copiando, moviendo y eliminando ficheros

Si queremos copiar directorios tenemos que utilizar xcopy.

Copia el fichero leeme.txt que acabamos de crear en el directorio w10 que está dentro del directorio sssoo que está en el directorio actual.

Copia el fichero leeme.txt que en el directorio w7 que está dentro del directorio sssoo que está en el directorio actual con el nombre info.txt.

Hemos copiado un fichero, con lo que hemos creado un nuevo fichero en cada caso. Supongamos que ahora queremos mover el fichero leeme.txt al directorio GNULinux que está dentro de ssoo con el nuevo nombre readme.txt.

¡Todo ha salido fenomenal! Pero nos gustaría copiar el directorio ssoo dentro del directorio 2020.

No funciona, porque hemos olvidado pasarle al comando XCOPY la opción /S o /E. en este caso, como todos los directorios tienen fichero, /S y /E harán lo mismo. Sin embargo, tenemos que tener clara la diferencia: /E copiará los directorios vacíos!.

Queremos copiar la estructura de directorios, sin copiar ningún fichero, en el directorio 2021.

Vamos a borrar el fichero readme.txt que está dentro del directorio GNULinux dentro del directorio ssoo.

Borra todos los ficheros que estén en el directorio ssoo y todos sus subdirectorios. Pista: Para especificar todos los ficheros podemos utilizar el patrón *.* o símplemente *.

Si no queremos que nos pregunta antes de eliminar cada uno de los 2.457.231 ficheros deberíamos utilizar /Q

Variables de entorno

Una variable de entorno es un dato que almacena un valor que puede cambiar. En matemáticas hemos utilizado variables antes, por ejemplo x.

Las variables se identifican por un nombre único que sirve para hacer referencia a ellas. El nombre que se le asocia a una variable debería ser significativo, es decir, debería indicarnos el tipo de valor que almacena.

Por ejemplo, una variable que almacene el nombre del usaurio debería llamarse usuario o nombreUsuario. Una variable llamada edad almacenará la edad de una persona. Este valor irá cambiando año a año, pero seguirá guardando la edad de la persona.

Mostrando las variables de entorno del sistema

Para mostrar las variables de entorno disponibles en el sistema podemos ejecutar el comando set sin ningún parámetro.

Podemos echar un vistazo a las últimas variables de entorno del listado.

Podemos ver que hay un par de variables de entorno que hacen referencia al nombre del usuario y a la ruta del perfil del usuario actual, que son USERNAME y USERPROFILE respectivamente.

Las variables de entorno podemos escribirlas en mayúsculas o minúsculas, el interprete de comandos de windows no distingue entre unas y otras. Sin embargo, como convenio deberíamos utilizar las mayúsculas para las variables del sistema y las minúsculas para las variables que creemos nosotros como usuarios.

Podemos consultar el valor de variables de entorno concretas utilizando el comando set seguido del comienzo del nombre de la variable. Por ejemplo, si quermeos mostrar todas las variables que cuyo nombre comience por la cadena USER podemos utilizar set user.

Esto es a título informativo, para que se pueda consultar esta información.

Si queremos más información sobre el comando set podemos consultar su ayuda.

Como se utilizan las variables de entorno

Para poder utilizar el valor de una variable de entorno tenemos que escribir el nombre de la variable y rodearla del símbolo %. Esto indica al interprete de comandos que queremos sustituir esa cadena de texto por el contenido de la variable.

Sustituye la cadena de texto %USERNAME% por el valor de la variable USERNAME

Hemos utilizado las variables de entorno con un comando simple como echo. Sin embargo, podemos utilizar las variables de entorno en cualquier tipo de comando.

Ejercicio Crea un directorio llamado facturas dentro del directorio personal del usuario actual. Utiliza variables de entorno para determinar la ruta del directorio personal o perfil del usuario actual.

Como se crean variables de entorno en la terminal

Desde la terminal podemos crear variables de entorno con el comando set.

Sin embargo, el ámbito de estas variables es la terminal desde la que se crea.

Es decir, cuando creamos una variable en una terminal, esta variable solo se podrá usar en dicha terminal. Es una variable de entorno, pero es que cada terminal tiene su entorno. Por eso, podemos tener distintas variables en distintas terminales (entornos)

Cuando ejecutamos una terminal, se cargan las variables de entorno de usuario y de sistema. Estas variables, como ya sabemos, se pueden gestionar a través de propiedades del sistema.

En variables de entorno podemos gestionar las variables de usuario y sistema.

Estas variables son persistentes, es decir aunque reiniciemos la máquina el sistema operativo las guarda. Sin embargo, las variables de entorno que creemos en una terminal utilizando el comando set son temporales y además propias de ese entorno.

¿Cómo podemos crear una variable de entorno de forma persistentes desde una terminal? Con el comando setx.

Ejercicio. Crea una variablde de entorno llamada backup cuyo contenido sea la ruta del directorio backup que está en el raíz de la unidad C:

Lo primero que hacemos es consultar la ayuda del comando set para comprobar como se crean las variables.

Cuidado cuando establezcamos variables, tenemos que ceñirnos a la sintaxis del comando set y no dejar espacio entre el nombre de la variable, el signo = y el valor asignado. Si no lo hacemos así, el comando set funcionará, pero los resultados no serán los esperados.

Con esto hemos creado una variable llamada backup seguida de un espacio y el valor que le hemos asignado es la cadena hola precedida de un espacio.

Ahora vamos a hacerlo como se pide en el enunciado

Ejercicio. Crea el directorio de Backups. La ruta de este directorio está almacenada en la variable de entorno Backup.

Ejercicio. Crea un fichero llamado listado.txt dentro del directorio de Backups – ya sabes, la ruta está en la variable de entorno backup que hemos creado – cuyo contenido sea el listado de ficheros que contiene el directorio personal del usuario actual.

Este ejercicio es complejo, así que vamos a solucionarlo por partes. Lo primero que tenemos que tener claro es que nos piden. Tenemos que crear un fichero cuyo contenido sea el listado de ficheros del directorio personal del usuario actual.

¿Sabemos mostrar en pantalla el contenido de un directorio?. Si, con el comando DIR. Sabemos mostrar en pantalla el contenido del directorio personal del usuario actual?.

¿Sabemos guardar en un fichero la salida de un comando?. Si, con las redirecciones. Por ejemplo, la redirección de salida con sobrescritura >. La ruta del fichero destino será %backup%\listado.txt.

Ahora lo que tenemos que hacer es juntar todo para obtener el resultado que nos solicitan.

Comprobando un comando. Si queremos comprobar un comando que utiliza variables de entorno antes de ejecutarlo, podemos ejecutar el comando echo seguido de todo el comando que ejecutaríamos.

Hay que tener cuidado con las redirecciones. Si en un comando usamos redirecciones y queremos comprobar que todo está bien, tenemos que quitar la redirección para poder comprobarlo.

Ejercicio. Crea un directorio con el nombre del usuario actual dentro del directorio de backups. A continuación, copia todo el contenido del directorio personal del usuario actual al directorio del usuario dentro del de backups.

De nuevo tenemos que usar la técnica de divide y venceras.. (gracias, Cesar!). Primero creamos el directorio del usuario dentro del directorio de backups.

Ejercicio. Muestra el contenido del directorio que almacena las aplicaciones instaladas en el sistema. Utiliza variables de entorno.

Como no conocemos la variable que guarda la ruta, usamos set y lo buscamos.

Si no rodeamos de » la ruta creada con la variable de entorno nos dará un error. Esto es así porque dir recibe dos parámetros por un lado C:\Program y por otro files.

Ejercicio. Ahora vamos a crear una copia de seguridad del perfil del usaurio actual dentro del directorio de backups de dicho usuario, ese directorio que acabamos de crear hace un par de ejercicios.

¿Qué comando usamos para crear una copia de un directorio y todo su contenido, incluidos directorios vacíos?. El comando xcopy y la opción que tenemos que pasar por parámetro es /E.

¿Cuál es la ruta del directorio personal del usuario actual?. La tenemos almacenada en una variable de entorno: USERPROFILE.

¿Cuál es el destino?. Pues, tenemos parte del destino en una variable de entorno que hemos creado previamente, backup, y la otra parte en la variable de entorno USERNAME.

Podemos comprobar si el comando que ibamos a ejecutar es correcto utilizando el comando echo. De esta forma, escribimos echo seguido del comando que queremos comprobar. El interprete de comandos nos mostrará en pantalla el comando que se ejecutará con las sustituciones de variables de entorno. Así podemos comprobar que todo está bien.

Por supesto, al haber ejecutado el comando echo, todo lo que viene detrás no se ha ejecutado, se ha tomado como la cadena de caracteres a mostrar en pantalla.

Ahora que hemos visto que está bien, lo ejecutamos.

Variables dinámicas

Aparte de las variables de entorno del usuario y del sistema, hay más variables disponibles. Para conocerlas podemos consultar la ayuda del comando SET

Variables dinámicas que se calculan dinámicamente

Ejercicio. Muestra en pantalla una cadena de texto con el nombre del usaurio actual, seguida de la fecha actual y la hora actual, todo ello separado por el caracter «-«.

Para mostrar un mensaje en pantalla usamos el comando echo. Ahora utilizamos las variables oportunas.

Hemos separado el valor de las variables con un guión porque era lo que nos pedían.

Repite el proceso, pero ahora utiliza como separador el caracter «;».

Añade al final del fichero listado.txt, que está almacenado en el directorio de backups, la cadena de texto anterior. Como bien sabemos la ruta del directorio de backups está almacenada en la variable de entorno backup.

Para añadir datos a un fichero utilizamos la redirección doble o redirección de adición. La ruta del fichero destino será %backup%\listado.txt.

Ahora tan solo tenemos que conseguir mostrar en pantalla el mensaje que nos piden, que lo haremos con el comando echo como hemos hecho antes.

¿Dónde van las variables de un entorno?

Cuando cerremos la terminal con la que hemos estado trabajando las variables de entorno que hayamos creado o modificado en su entorno se perderán como lágrimas en la lluvia.

Podemos crear una variable persistente a través de propiedades del sistema. Sin embargo, estaría bien saber cómo podemos crear una variable de entorno persistente desde terminal.

Ejercicios. ¿Cómo podemos crear una variable de entorno desde una terminal de forma persistente?. Crea la variable backup de forma persistente con el contenido de la ruta del directorio de backups de tu sistema. Busca información sobre setx.

Podemos consultar la ayuda del comando setx para comprobar como se crean variables de entorno.

Ejercicio. Crea una variable de entorno de sistema persistente llamada backup cuyo contenido sea la ruta del directorio Backup que está en el raíz de la unidad C:

Después, crea una variable de entorno de usuario persistente llamada myBackup cuyo contenido sea la ruta del directorio de backups del usuario actual. Esta ruta estará dentro del directorio de backups que contiene la variable de entorno Backup que hemos creado previamente, con el nombre del usuario actual.

Si leemos la sintaxis del comando setx, para crear una variable de entorno tan solo tenemos que pasarle como parámetro el nombre de la variable y después el valor que queramos asignarle.

Sin embargo, la misma ayuda nos advierte que dicha variable no estará disponible para esta terminal. Hay que tener en cuenta que lo mismo sucedería si establecieramos una nueva variable de entorno a través de Propiedades del sistema.

Hay que tener en cuenta que esta primera variable será de sistema, no de usuario, así que tenemos que utilzar la opción /M como parámetro.

Si intentamos ejecutar el comando desde una terminal normal nos dará el siguiente error.

Como es lógico, el sistema no deja crear una variable de entorno del sistema a un usuario normal. ¿Pero si yo soy admin?, pero has ejecutado la terminal como usuario normal. La forma más sencilla sería abrir una consola de comandos como administrador, como se explica en esta misma página.

Ahora si que ha realizado la operación, puesto que estamos en una terminal como administrador. Vamos a ver si realmente se ha creado la variable

Ahora creamos la variable de entorno del usuario desde su terminal utilizando setx. Si esta terminal la hubieramos abierto después de crear la variable de entorno del sistema backup podríamos hacer uso de dicha variable para crear la variable de entorno myBackup.

Vamos a aprovecharnos… Abrimos una nueva terminal.

Cuidado, porque aunque la variable se ha creado, esta variable no está en el entorno de esta terminal, está como variable de usuario en el sistema. Si intentemos acceder a ella ahora mismo, nos dirá que no está definida.

No obstante, si consultamos variables de entorno en Propiedades del sistema, podremos comprobar que dicha variable se ha creado para el usuario actual.

De esta forma, si abrimos una nueva terminal, aparecerán las nuevas variables persistentes de usuario y sistema recién creadas.

¿Por qué son persistentes?. Windows ha almacenado estas variables en el registro de windows de forma que las puede cargar en cualquier momento, aunque cerremos terminale, sesiones o apaguemos el equipo.

Ejercicio. En nueva terminal, con las nuevas variables cargadas, realiza una copia de seguridad del perfil del usuario actual en su directorio de backups. Utiliza variables de entorno, al menos una de las creadas previamente.

Consola de comandos como administrador

Si vamos a realizar tareas administrativas desde la consola de comandos ejecutando comandos como administrador, tenemos que lanzar una terminal o símbolo del sistema como administrador.

Para ello, hacemos clic con el botón secundario sobre el icono de símbolo de sistema y Ejecutar como administrador…

Deja un comentario

Tema creado por Anders Norén