🗃️ PowerShell e manipulação de arquivos
- Individual, no seu ritmo
🎯 Objetivo pedagógico
- Manipular arquivos e diretórios via PowerShell
- Automatizar tarefas simples com scripts
- Utilizar caminhos relativos e absolutos
- Pesquisar arquivos e conteúdo textual em uma árvore de diretórios
- Exibir e modificar permissões de arquivos
📜 Enunciado
🔧 Contexto
Um administrador de sistemas lhe confia uma série de tarefas para serem realizadas via PowerShell. Essas tarefas podem ser automatizadas em um pequeno script. Você deve criar um ambiente de trabalho, manipular arquivos e diretórios, tudo utilizando PowerShell.
📁 Etapa 1 – Preparar um ambiente
- Abra o PowerShell em uma pasta de trabalho de sua escolha.
- Crie a seguinte estrutura com PowerShell:
projet/
├── notes/
├── archives/
└── temp/
- Na pasta
notes, crie 3 arquivos de texto chamadoscours1.txt,cours2.txt,cours3.txt. Cada um desses arquivos deve conter uma frase diferente, incluindo a palavra important em um deles. Insira o conteúdo diretamente nos arquivos usando PowerShell. - Na pasta
temp, crie um arquivo de texto chamadotemp.txtcom o seguinte conteúdo:Ce fichier est temporaire.
Comandos úteis:
New-Itempara criar arquivos e pastasSet-Contentpara escrever conteúdo nos arquivosGet-ChildItempara listar arquivos e pastas
📂 Etapa 2 – Pesquisas e caminhos
- Pesquise todos os arquivos
.txtna pastaprojet, incluindo os subdiretórios. - Pesquise a palavra
importantem todos os arquivos de texto. - Exiba o caminho absoluto de cada um dos arquivos
.txt.
Comandos úteis:
Get-ChildItem -Recursepara listar arquivos recursivamenteSelect-Stringpara pesquisar texto nos arquivosResolve-Pathpara obter o caminho absoluto dos arquivos
🔄 Etapa 3 – Automação e agrupamento simples
-
Escreva um script PowerShell chamado
gestion.ps1que realize as seguintes operações:-
Copie todos os arquivos de
notesparaarchives -
Apague o conteúdo da pasta
tempse existir (sem apagar a própriatemp) -
Renomeie os arquivos copiados em
archivesadicionando_backupantes de.txt- Exemplo:
cours1.txt→cours1_backup.txt
- Exemplo:
-
Comandos úteis:
Test-Pathpara verificar a existência de uma pasta ou arquivoCopy-Itempara copiar arquivosRemove-Itempara apagar arquivos ou pastasRename-Itempara renomear arquivos
Execute seu script várias vezes para verificar se ele é idempotente (não causa problemas se for executado mais de uma vez).
🧪 Etapa 4 – Verificação automática
Adicione ao seu script um comando que:
- Conte e exiba o número de arquivos em
archives - Exiba a mensagem "Sucesso: todos os arquivos foram salvos." se esse número for 3
🔐 Etapa 5 – Permissões NTFS (direitos de acesso)
-
Na pasta
notes/, remova do usuário atual o direito de leitura de um dos arquivos. Isso deve ser feito usando PowerShell. -
Tente ler esse arquivo com
Get-Content. O que acontece? -
Em seguida, restaure a permissão usando PowerShell.
-
Dê temporariamente à pasta
archives/inteira permissão de leitura e escrita apenas (sem permissão de exclusão). -
Em seguida, tente apagar um arquivo de
archives/comRemove-Item. O que você observa?