🗃️ PowerShell y manipulación de archivos
- Individual, a su propio ritmo
🎯 Objetivo de aprendizaje
- Manipular archivos y directorios mediante PowerShell
- Automatizar tareas simples con scripts
- Utilizar rutas relativas y absolutas
- Buscar archivos y contenido textual en una estructura de carpetas
- Mostrar y modificar los permisos de los archivos
📜 Enunciado
🔧 Contexto
Un administrador de sistemas le encarga una serie de tareas para realizar mediante PowerShell. Estas tareas podrían automatizarse en un pequeño script. Usted debe crear un entorno de trabajo, manipular archivos y directorios, todo utilizando PowerShell.
📁 Paso 1 – Preparar un entorno
- Abra PowerShell en una carpeta de trabajo de su elección.
- Cree la siguiente estructura con PowerShell:
projet/
├── notes/
├── archives/
└── temp/
- En la carpeta
notes, cree 3 archivos de texto llamadoscours1.txt,cours2.txt,cours3.txt. Cada uno de estos archivos debe contener una frase diferente, incluyendo la palabra important en uno de ellos. Inserte el contenido directamente en los archivos con PowerShell. - En la carpeta
temp, cree un archivo de texto llamadotemp.txtcon el siguiente contenido:Ce fichier est temporaire.
Comandos útiles:
New-Itempara crear archivos y carpetasSet-Contentpara escribir contenido en los archivosGet-ChildItempara listar archivos y carpetas
📂 Paso 2 – Búsquedas y rutas
- Busque todos los archivos
.txten la carpetaprojet, incluso en los subdirectorios. - Busque la palabra
importanten todos los archivos de texto. - Muestre la ruta absoluta de cada uno de los archivos
.txt.
Comandos útiles:
Get-ChildItem -Recursepara listar archivos recursivamenteSelect-Stringpara buscar texto en los archivosResolve-Pathpara obtener la ruta absoluta de los archivos
🔄 Paso 3 – Automatización y englobamiento simple
-
Escriba un script de PowerShell llamado
gestion.ps1que realice las siguientes operaciones:-
Copia todos los archivos de
notesaarchives -
Elimina el contenido de la carpeta
tempsi existe (sin eliminar la carpetatempen sí) -
Renombra los archivos copiados en
archivesagregando_backupantes de.txt- Ejemplo:
cours1.txt→cours1_backup.txt
- Ejemplo:
-
Comandos útiles:
Test-Pathpara verificar la existencia de una carpeta o archivoCopy-Itempara copiar archivosRemove-Itempara eliminar archivos o carpetasRename-Itempara renombrar archivos
Ejecute varias veces su script para verificar que es idempotente (no causa errores si se ejecuta varias veces).
🧪 Paso 4 – Verificación automática
Agregue a su script un comando que:
- Cuente y muestre el número de archivos en
archives - Muestre un mensaje "Éxito: todos los archivos han sido respaldados." si este número es 3
🔐 Paso 5 – Permisos NTFS (derechos de acceso)
-
En la carpeta
notes/, quite al usuario actual el derecho de lectura sobre uno de los archivos. Esto debe hacerse utilizando PowerShell. -
Intente leer este archivo con
Get-Content. ¿Qué sucede? -
Restablezca luego el permiso con PowerShell.
-
Dé temporalmente a toda la carpeta
archives/un permiso de lectura y escritura solamente (sin permiso de eliminación). -
Intente luego borrar un archivo de
archives/conRemove-Item. ¿Qué observa?