PowerShell'de Uzantı Olmadan Dosya Adı Alma [3 Yol]
💡 Hızlı Yanıt
Get-Itemcmdlet'i ileBaseNameö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ış:
sampleBurada 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.txtBaseName ö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.GetItemCommandSystem.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ış:
testDosya 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
textYukarı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.