Come rimuovere il percorso e l'estensione dal nome del file in PowerShell

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

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:

rimuovere il percorso e l’estensione dal nome del file in powershell - output 1

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 da Get-ChildItem, estraendo solo il nome del file senza la sua estensione.

Output:

rimuovere percorso ed estensione dal nome file in powershell - output 2

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:

rimuovere percorso ed estensione dal nome del file in powershell - output 3

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:

rimuovere percorso e estensione dal nome del file in powershell - output 4

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.

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