Come ottenere il percorso completo dei file in PowerShell

  1. Usa Get-ChildItem per ottenere il percorso completo dei file in PowerShell
  2. Usa Select-Object per ottenere il percorso completo dei file in PowerShell
  3. Usa Format-Table per ottenere il percorso completo dei file in PowerShell
  4. Usa il ciclo foreach per ottenere il percorso completo dei file in PowerShell
  5. Usa Format-List per ottenere il percorso completo dei file in PowerShell
  6. Conclusione
Come ottenere il percorso completo dei file in PowerShell

PowerShell ha vari cmdlet per gestire i file nel sistema. Puoi creare, copiare, spostare, rinominare e eliminare i file utilizzando PowerShell.

Puoi anche cercare i file e controllare l’esistenza di un file in PowerShell. Un percorso di file indica la posizione del file nel sistema.

Questo tutorial introdurrà diversi metodi per ottenere il percorso completo dei file in PowerShell.

Usa Get-ChildItem per ottenere il percorso completo dei file in PowerShell

Il cmdlet Get-ChildItem visualizza un elenco di file e directory nella posizione specificata. Puoi utilizzare il parametro -Recurse per elencare tutti i file e le directory in modo ricorsivo.

Mostra anche le sottodirectory e i loro file. È utile per la ricerca di file ricorsiva in PowerShell.

Questo approccio è comunemente utilizzato negli scenari in cui è necessario eseguire operazioni su un insieme di file distribuiti in una gerarchia di cartelle, come ricerche di file, elaborazione batch o attività di organizzazione dei dati.

Esempio:

Get-ChildItem -Path C:\ExampleDirectory -Filter *.txt -Recurse

Iniziamo designando la nostra directory radice con -Path C:\ExampleDirectory. Questa scelta stabilisce il punto di partenza della nostra ricerca, assicurandoci di cercare nel posto giusto.

Successivamente, introduciamo il parametro -Filter *.txt. Questa è una mossa strategica da parte nostra, poiché restringe notevolmente la nostra ricerca solo ai file con estensioni .txt.

In questo modo, evitiamo efficientemente un’infinità di file non correlati, rendendo il nostro script più focalizzato e veloce nell’esecuzione.

Il vero cambiamento nel nostro script è il parametro -Recurse. Questo è il punto in cui sfruttiamo la capacità di PowerShell di esplorare a fondo le strutture delle directory.

Con -Recurse, non stiamo solo raschiando la superficie di C:\ExampleDirectory; stiamo esplorando ogni angolo e fessura, ogni sottodirectory, non importa quanto sia profondamente annidata.

Output:

ottieni il percorso completo dei file in powershell - output 1

Puoi ottenere il percorso completo del file utilizzando il comando %{$_.FullName}.

Esempio:

Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }

Output:

ottenere il percorso completo dei file in powershell - output 2

Oppure, puoi utilizzare questo comando per ottenere tutti i file con l’estensione .txt e i loro percorsi nella posizione specificata.

Esempio:

Get-ChildItem -Path ExampleDirectory\ -Recurse | where { $_.extension -eq ".txt" } | % { $_.FullName }

Output:

ottieni il percorso completo dei file in powershell - output 3

Usa Select-Object per ottenere il percorso completo dei file in PowerShell

Un metodo simile sarà utilizzato, ma utilizzeremo il cmdlet Select-Object con il comando Get-ChildItem per ottenere il percorso completo dei file in PowerShell.

Il cmdlet Select-Object seleziona le proprietà specificate di un oggetto o di un insieme di oggetti. Questa tecnica è particolarmente utile negli scenari in cui è necessario audire i sistemi di file, gestire i dati o eseguire operazioni di pulizia.

Esempio:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Select-Object -ExpandProperty FullName

Attraverso questo script, stiamo sfruttando il potere combinato di Get-ChildItem e Select-Object per localizzare e elencare in modo efficiente i file .txt. Iniziando la nostra ricerca da ExampleDirectory\, ci assicuriamo che tutte le sottodirectory pertinenti siano incluse.

Il -Filter *.txt è una componente cruciale, che ci consente di concentrarci solo sui file .txt, semplificando così la nostra ricerca.

Utilizzando -Recurse, non ci stiamo solo limitando a raschiare la superficie; stiamo esplorando a fondo ogni sottodirectory, assicurandoci che nessun file venga trascurato. La magia avviene con | Select-Object -ExpandProperty FullName, che affina il nostro output per mostrare solo ciò che è essenziale: i percorsi completi dei file.

Output:

ottieni il percorso completo dei file in powershell - output 4

Usa Format-Table per ottenere il percorso completo dei file in PowerShell

Allo stesso modo, puoi utilizzare Format-Table per ottenere il percorso completo dei file in PowerShell. Il cmdlet Format-Table formatta l’output come una tabella con le proprietà selezionate di un oggetto.

Il cmdlet Get-ChildItem, quando associato a Format-Table, diventa uno strumento potente non solo per recuperare i percorsi dei file, ma anche per presentarli in un formato organizzato e leggibile. Questo metodo è particolarmente utile per coloro che devono valutare rapidamente e riferire la struttura del loro sistema di file.

Esempio:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-Table FullName

In questo script, utilizziamo strategicamente Get-ChildItem per scandagliare ExampleDirectory\ e le sue sottodirectory alla ricerca di file .txt. Il parametro -Filter *.txt è fondamentale, poiché garantisce che la nostra ricerca sia mirata ed efficiente, ignorando i tipi di file irrilevanti.

Il flag -Recurse è cruciale per una ricerca approfondita, assicurando che nessuna sottodirectory venga trascurata.

Dopo la ricerca, utilizziamo | Format-Table FullName per trasformare i nostri risultati in una tabella ben organizzata. Questo non solo migliora la leggibilità, ma fornisce anche una visione chiara e strutturata dei percorsi completi.

Output:

ottenere il percorso completo dei file in powershell - output 5

Usa il ciclo foreach per ottenere il percorso completo dei file in PowerShell

Il ciclo foreach è noto anche come dichiarazione foreach in PowerShell. È una costruzione linguistica per ciclare attraverso una serie di valori in una collezione di array, oggetti, stringhe, numeri, ecc.

Puoi eseguire uno o più comandi contro ciascun elemento in un array all’interno del ciclo foreach.

Esempio:

Get-ChildItem -Path ExampleDirectory\*.txt -Recurse | foreach { "$_" }

In questo script, iniziamo utilizzando Get-ChildItem per cercare meticolosamente ExampleDirectory\ per i file .txt.

L’inclusione di -Recurse garantisce una ricerca completa attraverso tutti i livelli di sottodirectory. Ogni file incontrato viene quindi inviato a un ciclo foreach.

All’interno di questo ciclo, $_ funge da segnaposto per il file attuale. Racchiudendo $_ tra virgolette e stampandolo, istruiamo PowerShell a visualizzare il percorso completo di ciascun file.

Questo approccio non riguarda solo il recupero dei dati; è una passeggiata metodica attraverso ogni file, offrendo la flessibilità di aggiungere operazioni più complesse all’interno del ciclo.

Output:

ottieni il percorso completo dei file in powershell - output 6

Il comando sopra non funziona con il parametro -Filter. Puoi inviare a Get-Item nel mezzo per utilizzare il parametro -Filter.

Esempio:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Get-Item | foreach { "$_" }

L’aggiunta di Get-Item nella pipeline è un passo fondamentale, poiché consente di utilizzare efficacemente il parametro -Filter, garantendo che vengano elaborati solo i file .txt.

Output:

ottieni il percorso completo dei file in powershell - output 7

Get-ChildItem ha alias incorporati ls, dir e gci. Puoi eseguire tutti i comandi sopra utilizzando uno degli alias al posto del cmdlet Get-ChildItem.

Esempio:

gci -Path ExampleDirectory\ -Filter *.txt -Recurse | % { $_.FullName }

Utilizzando gli alias, questo comando diventa molto più conciso pur mantenendo la sua funzionalità. Gli utenti provenienti da background diversi (come Unix/Linux o vecchie righe di comando di Windows) potrebbero trovare ls o dir più familiari.

Output:

ottieni il percorso completo dei file in powershell - output 8

Usa Format-List per ottenere il percorso completo dei file in PowerShell

Il cmdlet Get-ChildItem è versatile per navigare e recuperare informazioni su file e directory. Quando utilizzato con il parametro -Filter, può specificamente mirare a file di un certo tipo, come i file .txt.

Format-List, d’altra parte, visualizza le proprietà degli oggetti in un formato di elenco. Quando combinato con Get-ChildItem, può essere utilizzato per presentare i percorsi dei file in un elenco chiaro e leggibile.

Esempio:

Get-ChildItem -Path ExampleDirectory\ -Filter *.txt -Recurse | Format-List FullName

Nel nostro codice, utilizziamo Get-ChildItem per cercare a fondo ExampleDirectory\ e le sue sottodirectory (-Recurse) per file con estensione .txt (-Filter *.txt). Ogni file scoperto viene quindi trasferito senza soluzione di continuità tramite una pipeline (|) al cmdlet Format-List.

Ci concentriamo sull’estrazione della proprietà FullName di ciascun file, che rappresenta il suo percorso completo. Questo metodo è particolarmente efficace per creare un elenco di percorsi di file ben organizzato e leggibile.

Output:

ottieni il percorso completo dei file in powershell - output 9

Conclusione

Per concludere, PowerShell offre una pletora di cmdlet per una gestione file competente. In questo articolo, abbiamo esplorato vari metodi per recuperare il percorso completo dei file utilizzando PowerShell, sfruttando in particolare il cmdlet Get-ChildItem in combinazione con altri cmdlet come Format-List, Select-Object e Format-Table.

Queste tecniche sono inestimabili per attività che coinvolgono audit del sistema di file, gestione dei dati e elaborazione batch. Ogni metodo discusso fornisce un approccio unico per gestire i percorsi dei file, sia per filtrare tipi di file specifici, elencare i percorsi in una tabella formattata, o iterare attraverso i file con un ciclo foreach.

Per i lettori che desiderano approfondire la loro esperienza in PowerShell, i prossimi passi potrebbero comportare l’esplorazione di tecniche più avanzate di manipolazione dei file, approfondire la programmazione di PowerShell per l’automazione, o anche integrare comandi di PowerShell con altri strumenti e script per flussi di lavoro più complessi.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Articolo correlato - PowerShell File