PowerShell: esplorazione e analisi dei file in una directory
Esplorare una directory con PowerShell, filtrare i file, elaborarne i nomi e produrre report con proprietà e comandi utilizzati. Video e traccia dell’esercitazione.
Traccia dell’esercitazione
Scrivi uno script che esplora una directory indicata dall’utente, analizza i file in essa contenuti e applica operazioni di filtro e modifica dei nomi. Utilizza cicli per iterare sui file, operatori di matching e sostituzione, e produci un report formattato dei file elaborati.
1. Input del percorso
Richiedi all’utente il percorso della directory da esplorare con Read-Host -Prompt e salvalo in una variabile, per esempio $directoryPath.
2. Recupero dei file
Usa Get-ChildItem -Path $directoryPath per ottenere gli elementi della directory. Aggiungi -File per selezionare soltanto i file.
Se nel tuo ambiente è presente un comando chiamato Get-Children, verificane la sintassi: la cmdlet standard di PowerShell è Get-ChildItem.
3. Filtraggio e matching
Applica Where-Object per filtrare i file in base a un criterio: per esempio, quelli con estensione .log o con una determinata parola nel nome. Utilizza operatori di matching come -like o -match.
4. Elaborazione dei file con cicli
Utilizza un ciclo for, oppure while o do…while, per iterare sui file filtrati. Per ciascun file, impiega -replace per ottenere un nome modificato, per esempio sostituendo spazi o caratteri non validi con un trattino. Verifica il tipo dell’oggetto con -is o -isnot.
Nota: -replace restituisce una stringa modificata; da solo non rinomina il file sul disco.
5. Output e attese
Visualizza informazioni sull’operazione effettuata per ogni file con Write-Output. Inserisci brevi pause con Start-Sleep per simulare il tempo di elaborazione e rendere più leggibile l’output in tempo reale.
6. Documentazione e report
Utilizza Get-Member su un oggetto file e salva con Out-File un report delle proprietà disponibili.
Ordina i risultati con Sort-Object, per esempio per data di modifica o dimensione, quindi presenta l’output finale in una tabella con Format-Table.
Bonus: documentazione dei comandi
Integra Get-Command per elencare i comandi utilizzati dallo script e scriverli su file, producendo una documentazione automatica del lavoro svolto.
