Come rimuovere il percorso e l'estensione dal nome del file in PowerShell
-
Usa la proprietà
BaseName
per rimuovere percorso e estensione dal nome del file in PowerShell -
Usa la classe
System.IO.Path
per rimuovere percorso e estensione dal nome del file in PowerShell - Conclusione

PowerShell supporta la gestione di varie operazioni sui file nel sistema. Puoi eseguire attività come creare, copiare, spostare, rinominare, modificare, eliminare e visualizzare file in PowerShell.
Ci sono diversi cmdlet in PowerShell che puoi utilizzare per ottenere il nome percorso completo e estensione di un file. Durante il lavoro con i file nel sistema, potresti aver bisogno di ottenere il nome del file senza un percorso e un’estensione.
Questo tutorial ti insegnerà a rimuovere il percorso e l’estensione dal nome del file in PowerShell.
Usa la proprietà BaseName
per rimuovere percorso e estensione dal nome del file in PowerShell
Il cmdlet Get-Item
in PowerShell è uno strumento versatile utilizzato per recuperare le proprietà degli oggetti nel tuo filesystem, come file e directory. Una di queste proprietà è .BaseName
, che è particolarmente utile per il nostro scopo.
Esempio:
(Get-Item "sample.txt").BaseName
In questo esempio, lo script presume che sample.txt
sia un file nella directory corrente. Se il file si trova in un’altra directory, dovresti includere il percorso completo, come C:\folder\sample.txt
.
Quando esegui (Get-Item "sample.txt").BaseName
, PowerShell esegue due azioni chiave.
Innanzitutto, Get-Item "sample.txt"
recupera l’oggetto file corrispondente a sample.txt
. Poi, .BaseName
accede alla proprietà di questo oggetto file che contiene il nome del file senza l’estensione.
Output:
Se desideri rimuovere il percorso e l’estensione in più file, puoi utilizzare il cmdlet Get-ChildItem
. Il seguente comando mostra come ottenere più nomi di file senza un percorso e un’estensione in PowerShell.
Esempio
(Get-ChildItem "*.txt").BaseName
Questa riga di codice elencherà i nomi base (nomi dei file senza estensioni) di tutti i file .txt
nella directory specificata.
-
Get-ChildItem "*.txt"
: Questo comando recupera tutti i file.txt
dalla directory specificata. -
.BaseName
: Questa proprietà viene acceduta per ogni oggetto file restituito daGet-ChildItem
, estraendo solo il nome del file senza la sua estensione.
Output:
Puoi anche utilizzare la classe System.IO.FileInfo
con la proprietà basename
per ottenere il nome del file senza l’estensione.
System.IO.FileInfo
è una classe .NET
che fornisce proprietà e metodi di istanza per la creazione, copia, eliminazione, spostamento e apertura di file. Fornisce anche informazioni dettagliate su un file, come il suo nome, percorso, dimensione, ecc.
Esempio:
([System.IO.FileInfo]"sample.txt").BaseName
Questa riga presume che sample.txt
sia un file nella directory corrente. Se il file si trova altrove, dovrebbe essere specificato il percorso completo, come C:\path\to\sample.txt
.
In questo esempio, ([System.IO.FileInfo]"sample.txt")
crea un oggetto FileInfo
per il file sample.txt
. Questo oggetto contiene informazioni dettagliate sul file.
Accedendo alla proprietà .BaseName
di questo oggetto, recuperiamo il nome del file senza la sua estensione.
Output:
Usa la classe System.IO.Path
per rimuovere percorso e estensione dal nome del file in PowerShell
La classe System.IO.Path
fornisce numerosi metodi per la manipolazione delle stringhe relative ai percorsi dei file. Il metodo GetFileNameWithoutExtension
, in particolare, viene utilizzato per ottenere il nome del file da una stringa di percorso completo senza l’estensione.
Esempio:
[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
Questo esempio presume che sample.txt
si riferisca a un nome di file senza alcun percorso di directory. Se il file è situato in una directory diversa, dovresti includere il percorso completo, come "C:\folder\sample.txt"
.
[System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
, PowerShell utilizza il metodo GetFileNameWithoutExtension
dalla classe System.IO.Path
per elaborare la stringa "sample.txt"
. Questo metodo analizza intelligentemente la stringa, identifica l’estensione del file e la rimuove, restituendo solo il nome base del file.
Questo metodo è altamente efficiente e non richiede che il file reale esista, poiché opera esclusivamente a livello di stringa.
Output:
Conclusione
In conclusione, padroneggiare la manipolazione dei file in PowerShell è fondamentale per una gestione efficiente del sistema, e questo articolo si è concentrato sulla rimozione del percorso e dell’estensione dai nomi dei file utilizzando metodi diversi. Partendo dal semplice (Get-Item "sample.txt").BaseName
per file singoli, siamo passati alla gestione di più file con (Get-ChildItem "C:\Users\rhntm\*.txt").BaseName
, un approccio prezioso per operazioni di massa.
La classe più orientata agli oggetti [System.IO.FileInfo]
con ([System.IO.FileInfo]"sample.txt").BaseName
ha fornito informazioni dettagliate sui file, mentre la potenza di manipolazione delle stringhe di [System.IO.Path]::GetFileNameWithoutExtension("sample.txt")
ha mostrato la potenza delle classi .NET
. Questi metodi esemplificano la versatilità di PowerShell, e per coloro che cercano di approfondire la loro esperienza, esplorare argomenti correlati come il lavoro con percorsi di file completi e l’estrazione delle estensioni dei file è una progressione logica, sbloccando il pieno potenziale di PowerShell per compiti di scripting e automazione completi del sistema.
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
- Come ottenere il percorso completo dei file in PowerShell