Come estrarre il nome del file da un percorso utilizzando PowerShell
-
Usa il Cmdlet
Split-Path
per Estrarre il Nome del File da un Percorso in PowerShell - Usa i Metodi della Classe Path di .NET per Estrarre il Nome del File da un Percorso in PowerShell
-
Usa i Cmdlets
Get-Item
eGet-ChildItem
per Estrarre il Nome del File da un Percorso in PowerShell - Usa le Espressioni Regolari per Estrarre il Nome del File da un Percorso in PowerShell
- Usa la Manipolazione delle Stringhe per Estrarre il Nome del File da un Percorso in PowerShell
-
Usa la Classe
System.IO.FileInfo
per Estrarre il Nome del File da un Percorso in PowerShell - Conclusione

Un percorso di file indica la posizione del file nel sistema. Mentre si lavora con i file in PowerShell, potrebbe essere necessario ottenere solo il nome del file da un percorso.
Ci sono più modi per ottenere il percorso dei file in PowerShell. Questo tutorial ti insegnerà a estrarre il nome del file da un percorso con PowerShell.
Usa il Cmdlet Split-Path
per Estrarre il Nome del File da un Percorso in PowerShell
In PowerShell, il cmdlet Split-Path
è uno strumento utile per isolare segmenti specifici di un dato percorso. Che si tratti della cartella genitore, sottocartella, nome del file o semplicemente dell’estensione del file, Split-Path
ti consente di targettizzare e visualizzare questi elementi.
Estrai il Nome del File con Estensione
Per catturare il nome del file insieme alla sua estensione da un percorso, puoi utilizzare il comando Split-Path
con il parametro -Leaf
:
Split-Path C:\pc\test_folder\hello.txt -Leaf
Output:
hello.txt
Ottieni il Nome del File Senza Estensione
Nei casi in cui hai bisogno del nome del file senza l’estensione, il parametro -LeafBase
è utile. Tuttavia, è importante notare che questo parametro è disponibile nelle versioni di PowerShell 6.0 e successive:
Split-Path C:\pc\test_folder\hello.txt -LeafBase
Output:
hello
Usa i Metodi della Classe Path di .NET per Estrarre il Nome del File da un Percorso in PowerShell
In .NET, la classe Path
offre metodi utili per estrarre facilmente il nome del file e l’estensione da un percorso specificato. Esploriamo queste capacità con esempi.
Estrai il Nome del File con Estensione Utilizzando GetFileName
Il metodo GetFileName
della classe Path
recupera il nome del file insieme alla sua estensione da un percorso dato. Dimostriamo questo con il percorso C:\pc\test_folder\hello.txt
:
[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')
Output:
hello.txt
Ottieni il Nome del File Senza Estensione Utilizzando GetFileNameWithoutExtension
Per estrarre solo il nome del file senza l’estensione, puoi usare il metodo GetFileNameWithoutExtension
. Questo è particolarmente utile quando hai bisogno del nome del file stesso, escludendo il tipo di file:
[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')
Output:
hello
Usa i Cmdlets Get-Item
e Get-ChildItem
per Estrarre il Nome del File da un Percorso in PowerShell
In PowerShell, i cmdlets Get-Item
e Get-ChildItem
sono strumenti essenziali per lavorare con file e directory, consentendoti di estrarre informazioni specifiche sull’elemento in una posizione data.
Vediamo come usare questi cmdlet per estrarre il nome del file da un dato percorso, comprese le variazioni per ottenere il nome del file con o senza estensione.
Estrai il Nome del File con Estensione Utilizzando Get-Item
Il cmdlet Get-Item
recupera informazioni dettagliate sull’elemento specificato, inclusi la sua directory, modalità, data e ora dell’ultima scrittura, lunghezza e nome. Per estrarre il nome del file con l’estensione, puoi utilizzare la proprietà .Name
in combinazione con Get-Item
.
Dimostriamo questo con un percorso specifico, C:\pc\test_folder\hello.txt
:
(Get-Item C:\pc\test_folder\hello.txt).Name
Output:
hello.txt
Ottieni il Nome del File Senza Estensione Utilizzando Get-Item
Se hai bisogno di estrarre solo il nome del file senza l’estensione, puoi utilizzare la proprietà .BaseName
in combinazione con Get-Item
. Questo ti consente di isolare solo il nome del file dal percorso fornito:
(Get-Item C:\pc\test_folder\hello.txt).BaseName
Output:
hello
Applica il Metodo con Get-ChildItem
Questo approccio è applicabile anche quando si utilizza il cmdlet Get-ChildItem
, che recupera informazioni sugli elementi in una posizione specificata. Ecco come puoi usarlo per estrarre il nome del file con o senza l’estensione:
(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName
Output:
hello.txt
hello
Usa le Espressioni Regolari per Estrarre il Nome del File da un Percorso in PowerShell
Le espressioni regolari possono essere utilizzate anche per estrarre il nome del file da un percorso in PowerShell. La classe Regex
in .NET fornisce strumenti potenti per il matching dei pattern e la manipolazione.
Vediamo come funziona:
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Use regular expression to extract the filename
$filename = [System.Text.RegularExpressions.Regex]::Match($path, '\\([^\\]+)$').Groups[1].Value
$filename
Output:
hello.txt
In questo esempio, utilizziamo un’espressione regolare per catturare il testo dopo l’ultimo carattere di barra rovesciata, che rappresenta il nome del file insieme alla sua estensione.
L’espressione regolare '\\([^\\]+)$'
può essere scomposta come segue:
\\
: Corrisponde a una barra rovesciata nel percorso.([^\\]+)
: Cattura uno o più caratteri che non sono una barra rovesciata (che rappresentano il nome del file con estensione) all’interno di un gruppo di cattura.$
: Specifica che la corrispondenza deve avvenire alla fine della stringa.
Utilizzando il metodo Match
dalla classe Regex
, applichiamo l’espressione regolare al percorso.
La corrispondenza risultante contiene il nome del file con la sua estensione. Accediamo a questo tramite Groups[1].Value
per estrarre il nome del file desiderato.
Usa la Manipolazione delle Stringhe per Estrarre il Nome del File da un Percorso in PowerShell
Tecniche di manipolazione delle stringhe possono essere impiegate anche per estrarre il nome del file da un percorso. Ad esempio, puoi utilizzare il metodo LastIndexOf
per trovare l’ultima occorrenza della barra rovesciata ed estrarre il nome del file di conseguenza.
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Find the index of the last backslash
$lastBackslashIndex = $path.LastIndexOf("\") + 1
# Extract the filename
$filename = $path.Substring($lastBackslashIndex)
$filename
Output:
hello.txt
Qui, utilizziamo il metodo LastIndexOf
per determinare l’indice dell’ultima occorrenza di una barra rovesciata (\
) nel percorso, identificando essenzialmente la posizione in cui inizia il nome del file.
$lastBackslashIndex = $path.LastIndexOf("\") + 1
: Questa riga calcola l’indice dell’ultima barra rovesciata e aggiunge1
per garantire che iniziamo a estrarre caratteri dopo la barra rovesciata.
Successivamente, utilizziamo il metodo Substring
per estrarre il nome del file, a partire dall’indice dopo l’ultima barra rovesciata e continuando fino alla fine della stringa.
$filename = $path.Substring($lastBackslashIndex)
: Qui, estraiamo il nome del file utilizzandoSubstring
con l’indice calcolato.
Usa la Classe System.IO.FileInfo
per Estrarre il Nome del File da un Percorso in PowerShell
La classe System.IO.FileInfo
fornisce proprietà per accedere alle informazioni sul file, incluso il nome del file. Possiamo creare un oggetto FileInfo
e quindi accedere alla proprietà Name
per ottenere il nome del file.
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Create a FileInfo object
$fileInfo = New-Object System.IO.FileInfo $path
# Extract the filename
$filename = $fileInfo.Name
$filename
Output:
hello.txt
In questo esempio, creiamo un oggetto FileInfo
utilizzando New-Object
e la classe System.IO.FileInfo
, consentendoci di accedere a proprietà e metodi relativi ai file.
$fileInfo = New-Object System.IO.FileInfo $path
: Questa riga di codice costruisce un oggettoFileInfo
basato sul percorso fornito.
Successivamente, utilizziamo la proprietà Name
dell’oggetto FileInfo
per estrarre il nome del file.
$filename = $fileInfo.Name
: Qui, recuperiamo il nome del file accedendo alla proprietàName
dell’oggettoFileInfo
.
Conclusione
In questo tutorial, abbiamo esplorato vari metodi per estrarre nomi di file da percorsi in PowerShell. Dall’uso di cmdlet integrati come Split-Path
all’uso di espressioni regolari e manipolazione delle stringhe, hai una gamma di opzioni da scegliere in base alle tue esigenze specifiche.
Comprendere queste tecniche migliorerà la tua competenza nella gestione dei percorsi dei file e nell’estrazione delle informazioni essenziali sui file in PowerShell. Che tu preferisca la semplicità dei cmdlet integrati o la versatilità delle espressioni regolari, PowerShell offre un set robusto di strumenti per una manipolazione efficace dei file.
Articolo correlato - PowerShell File
- Come caricare file con FTP in PowerShell
- Come creare un file di testo utilizzando Windows 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
- Come ottenere il percorso completo dei file in PowerShell