PowerShell'de Uzantı Olmadan Dosya Adı Alma [3 Yol]


💡 Hızlı Yanıt Get-Item cmdlet'i ile BaseName özelliğini kullanarak PowerShell'de uzantısız dosya adı alabilirsiniz.

PowerShell:

(Get-Item C:\temp\sample.txt).BaseName

Çıktı:

Çıkış:

sample

Windows işletim sistemi üzerinde çalışırken uzantısız dosya adı alma zorunluluğuyla sıklıkla karşılaşabilirsiniz.

Örneğin:

Bu yazıda PowerShell'de uzantısız DosyaAdı almanın çeşitli yollarını göreceğiz.

Tek dosya için uzantısız DosyaAdı'nı alın

BaseName özelliğini Get-Item cmdlet'iyle kullanma

Powershell'de uzantısız dosya adı almak için Get-Item cmdlet'ini kullanarak öğeyi belirtilen konuma getirebilir ve ardından uzantısız dosya adını almak için BaseName özelliğini kullanabilirsiniz.

PowerShell:

PS> (Get-Item C:\temp\sample.txt).BaseName

Çıkış:

Çıkış:

sample

Burada Get-Item cmdlet'i, öğeyi belirtilen konuma getirmek için kullanılır. Bu, belirli bir dosyanın Adını, Uzunluğunu, Modunu, LastWriteTime'ını ve Dizinini görüntüler.

Burada komut şu olacak;

PowerShell:

PS>  Get-Item sample.txt

Çıktı:

Çıkış:

    Directory: C:\Users\Arpit

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        25-08-2021     13:11             33 sample.txt

BaseName özelliği, Get-Item ile birlikte uzantısız dosya adı almanıza yardımcı olur.

Dosya mevcut değilse aşağıdaki gibi hata alırsınız:

PowerShell:

PS> (Get-Item sample3.txt).BaseName

Çıktı:

Çıkış:

Get-Item : Cannot find path 'C:\Users\Arpit\sample3.txt' because it does not exist.
At line:1 char:2
+ (Get-Item sample3.txt).BaseName
+  ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Arpit\sample3.txt:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand

System.IO.Path'in GetFileNameWithoutExtension() yöntemini kullanma

Dosya adından uzantıyı kaldırmak için System.IO.Path’in GetFileNameWithoutExtension() yöntemini kullanabilirsiniz. Bu yöntemde, PowerShell'inizde uzantısız dosya adını alacaksınız.

Bunun için, C:\User\rhtnm\test.txt konumundaki dosya adı konumunuzu almak için aşağıdaki komutu çalıştırın.

PowerShell:

PS> [System.IO.Path]::GetFileNameWithoutExtension('C:\User\rhtnm\test.txt')

Çıktı:

Çıkış:

test

Dosya yoksa bu yöntemde hata almazsınız.

Birden çok dosya için uzantısız DosyaAdı'nı alın

Birden fazla dosyanız olması durumunda dosya adınızı uzantısız olarak almak istiyorsanız PowerShell'de GetFileNameWithoutExtension() ile Get-ChildItem cmdlet'ini kullanın.

Birden fazla dosya için uzantısız DosyaAdı almak için PowerShell komutu burada

PowerShell:

PS> Get-ChildItem -Path C:\temp -Filter *.txt | ForEach-Object -Process {[System.IO.Path]::GetFileNameWithoutExtension($_)}

Çıktı:

Çıkış:

Python
sample
sample1
text

Yukarıdaki PowerShell betiğinde, cmdlet olarak Get-ChildItem, .txt uzantısını almak için bir filtre kullanırken belirtilen yol dosyalarını almanıza yardımcı olur. Daha sonra çıktı ikinci komuta aktarılır.

İkinci komut, dosya listesi üzerinde yineleme yapmak için ForEach-Object'i kullanır ve uzantısız dosya adını almak için her dosyada System.IO.Path'in GetFileNameWithoutExtension() yöntemini kullanır.

Çözüm

Uzantısı olmayan bir dosya adını kaldırmak her zamankinden daha kolay. BaseName özelliğini Get-Itemcmdlet'i, .Net Class System.IO.Path'in GetFileNameWithoutExtension()'u ile tartıştık. kod > yöntem. Ayrıca birden fazla dosya için uzantısız dosya adının nasıl alınacağını da tartıştık. Bu çerçeveleri verimli bir şekilde uygulayabilir ve dosya adınızı uzantısız olarak alabilirsiniz.

İlgili makaleler