Memperluas jawaban René Nyffenegger, bagi mereka yang tidak memiliki akses ke PowerShell versi 6.x, kami menggunakan Jalur Terpisah, yang tidak menguji keberadaan file:
Split-Path "C:\Folder\SubFolder\myfile.txt" -Leaf
Ini mengembalikan " myfile.txt ". Jika kita tahu bahwa nama file tidak memiliki titik di dalamnya, kita dapat membagi string dan mengambil bagian pertama:
(Split-Path "C:\Folder\SubFolder\myfile.txt" -Leaf).Split('.') | Select -First 1
atau
(Split-Path "C:\Folder\SubFolder\myfile.txt" -Leaf).Split('.')[0]
Ini mengembalikan " myfile ". Jika nama file mungkin menyertakan titik, untuk amannya, kita bisa menggunakan yang berikut:
$FileName = Split-Path "C:\Folder\SubFolder\myfile.txt.config.txt" -Leaf
$Extension = $FileName.Split('.') | Select -Last 1
$FileNameWoExt = $FileName.Substring(0, $FileName.Length - $Extension.Length - 1)
Ini mengembalikan " myfile.txt.config ". Di sini saya lebih suka menggunakan Substring () daripada Replace () karena ekstensi yang didahului oleh titik juga bisa menjadi bagian dari nama, seperti dalam contoh saya. Dengan menggunakan Substring kami mengembalikan nama file tanpa ekstensi seperti yang diminta.