রেনা নাইফেনিগার এর উত্তরে প্রসারিত, যাদের পাওয়ারশেল সংস্করণ 6.x এ অ্যাক্সেস নেই তাদের জন্য আমরা স্প্লিট পাথ ব্যবহার করি যা ফাইল অস্তিত্বের জন্য পরীক্ষা করে না:
Split-Path "C:\Folder\SubFolder\myfile.txt" -Leaf
এটি " myfile.txt " প্রদান করে। যদি আমরা জানি যে ফাইলের নামেরটিতে পিরিয়ড নেই তবে আমরা স্ট্রিংটি বিভক্ত করতে পারি এবং প্রথম অংশটি নিতে পারি:
(Split-Path "C:\Folder\SubFolder\myfile.txt" -Leaf).Split('.') | Select -First 1
বা
(Split-Path "C:\Folder\SubFolder\myfile.txt" -Leaf).Split('.')[0]
এটি " মাইফাইল " ফেরত দেয় । যদি ফাইলের নামটিতে পিরিয়ড অন্তর্ভুক্ত থাকতে পারে, নিরাপদ থাকতে, আমরা নিম্নলিখিতটি ব্যবহার করতে পারি:
$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)
এটি " myfile.txt.config " প্রদান করে। এখানে আমি প্রতিস্থাপন () এর পরিবর্তে সাবস্ট্রিং () ব্যবহার করতে পছন্দ করি কারণ আমার উদাহরণ অনুসারে কোনও সময়ের পূর্ববর্তী এক্সটেনশনও নামের অংশ হতে পারে। সাবস্ট্রিং ব্যবহার করে আমরা অনুরোধ হিসাবে এক্সটেনশন ছাড়াই ফাইলের নামটি ফিরিয়ে দিই।