Come ottenere il percorso completo dei file in PowerShell
-
Usa
Get-ChildItem
per ottenere il percorso completo dei file in PowerShell -
Usa
Select-Object
per ottenere il percorso completo dei file in PowerShell -
Usa
Format-Table
per ottenere il percorso completo dei file in PowerShell -
Usa il ciclo
foreach
per ottenere il percorso completo dei file in PowerShell -
Usa
Format-List
per ottenere il percorso completo dei file in PowerShell - Conclusione

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:
Puoi ottenere il percorso completo del file utilizzando il comando %{$_.FullName}
.
Esempio:
Get-ChildItem -Path ExampleDirectory\ -Filter sample.txt -Recurse | % { $_.FullName }
Output:
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:
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:
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:
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:
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:
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:
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:
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.
Articolo correlato - PowerShell File
- Come caricare file con FTP in PowerShell
- Come creare un file di testo utilizzando Windows PowerShell
- Come estrarre il nome del file da un percorso utilizzando PowerShell
- Come leggere i file riga per riga in Windows PowerShell
- Come memorizzare il contenuto di un file di testo in una variabile utilizzando PowerShell