Come rimuovere il percorso e l'estensione dal nome del file in PowerShell
-
Usa la proprietà
BaseNameper rimuovere percorso e estensione dal nome del file in PowerShell -
Usa la classe
System.IO.Pathper 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.txtdalla 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
