รับชื่อไฟล์ที่ไม่มีนามสกุลใน PowerShell [3 วิธี]
💡 คำตอบด่วน คุณสามารถรับชื่อไฟล์ที่ไม่มีนามสกุลใน PowerShell ได้โดยใช้คุณสมบัติ
BaseNameพร้อมด้วยGet-Itemcmdletพาวเวอร์เชลล์:
(Get-Item C:\temp\sample.txt).BaseNameเอาต์พุต:
เอาท์พุต :
sample
ในขณะที่ทำงานบนระบบปฏิบัติการ Windows คุณอาจต้องเผชิญกับข้อกำหนดในการรับชื่อไฟล์โดยไม่มีนามสกุล
ตัวอย่าง:
ในโพสต์นี้ เราจะเห็นวิธีต่างๆ ในการรับ FileName โดยไม่มีนามสกุลใน PowerShell
รับชื่อไฟล์โดยไม่มีนามสกุลสำหรับไฟล์เดียว
การใช้คุณสมบัติ BaseName กับ Get-Item cmdlet
หากต้องการรับชื่อไฟล์ที่ไม่มีนามสกุลใน PowerShell คุณสามารถใช้ Get-Item cmdlet เพื่อรับรายการในตำแหน่งที่ระบุ จากนั้นใช้แอตทริบิวต์ BaseName เพื่อรับชื่อไฟล์ที่ไม่มีนามสกุล
พาวเวอร์เชลล์:
PS> (Get-Item C:\temp\sample.txt).BaseNameเอาท์พุต :
เอาท์พุต :
sampleที่นี่ Get-Item cmdlet ใช้เพื่อรับไอเท็มในตำแหน่งที่ระบุ ซึ่งจะแสดงชื่อ ความยาว โหมด LastWriteTime และไดเร็กทอรีของไฟล์ใดไฟล์หนึ่ง
นี่คือคำสั่ง;
พาวเวอร์เชลล์:
PS> Get-Item sample.txtเอาต์พุต:
เอาท์พุต :
Directory: C:\Users\Arpit
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 25-08-2021 13:11 33 sample.txtคุณสมบัติ BaseName พร้อมด้วย Get-Item ช่วยให้คุณรับชื่อไฟล์โดยไม่มีนามสกุล
หากไม่มีไฟล์อยู่ คุณจะได้รับข้อผิดพลาดดังนี้:
พาวเวอร์เชลล์:
PS> (Get-Item sample3.txt).BaseNameเอาต์พุต:
เอาท์พุต :
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การใช้เมธอด GetFileNameWithoutExtension() ของ System.IO.Path
หากต้องการลบนามสกุลออกจากชื่อไฟล์ คุณสามารถใช้เมธอด GetFileNameWithoutExtension() ของ System.IO.Path ในวิธีนี้ คุณจะได้รับชื่อไฟล์ที่ไม่มีนามสกุลใน PowerShell ของคุณ
ให้รันคำสั่งต่อไปนี้เพื่อรับตำแหน่งชื่อไฟล์ของคุณที่ C:\User\rhtnm\test.txt
พาวเวอร์เชลล์:
PS> [System.IO.Path]::GetFileNameWithoutExtension('C:\User\rhtnm\test.txt')เอาต์พุต:
เอาท์พุต :
testหากไม่มีไฟล์ คุณจะไม่ได้รับข้อผิดพลาดในวิธีนี้
รับชื่อไฟล์โดยไม่มีนามสกุลสำหรับหลายไฟล์
หากคุณต้องการรับชื่อไฟล์โดยไม่มีนามสกุลในกรณีที่มีหลายไฟล์ ให้ใช้ Get-ChildItem cmdlet กับ GetFileNameWithoutExtension() ใน PowerShell
นี่คือคำสั่ง PowerShell เพื่อรับ FileName โดยไม่มีนามสกุลสำหรับหลายไฟล์
พาวเวอร์เชลล์:
PS> Get-ChildItem -Path C:\temp -Filter *.txt | ForEach-Object -Process {[System.IO.Path]::GetFileNameWithoutExtension($_)}เอาต์พุต:
เอาท์พุต :
Python
sample
sample1
textในสคริปต์ PowerShell ด้านบน Get-ChildItem เป็น cmdlet ช่วยให้คุณรับไฟล์พาธที่ระบุในขณะที่ใช้ตัวกรองเพื่อรับนามสกุล .txt จากนั้นเอาต์พุตจะถูกส่งไปยังคำสั่งที่สอง
คำสั่งที่สองใช้ ForEach-Object เพื่อวนซ้ำรายการไฟล์และใช้เมธอด GetFileNameWithoutExtension() ของ System.IO.Path ในแต่ละไฟล์เพื่อรับชื่อไฟล์ที่ไม่มีนามสกุล
บทสรุป
การลบชื่อไฟล์โดยไม่มีนามสกุลทำได้ง่ายกว่าที่เคย เราได้กล่าวถึงคุณสมบัติ BaseName ด้วย Get-Itemcmdlet, .Net Class System.IO.Path's GetFileNameWithoutExtension() รหัส> วิธีการ นอกจากนี้เรายังได้กล่าวถึงวิธีรับชื่อไฟล์โดยไม่มีนามสกุลสำหรับไฟล์หลายไฟล์ คุณสามารถใช้เฟรมเวิร์กเหล่านี้ได้อย่างมีประสิทธิภาพและรับชื่อไฟล์ของคุณโดยไม่มีนามสกุล