ค้นหาเว็บไซต์

รับชื่อไฟล์ที่ไม่มีนามสกุลใน PowerShell [3 วิธี]


💡 คำตอบด่วน คุณสามารถรับชื่อไฟล์ที่ไม่มีนามสกุลใน PowerShell ได้โดยใช้คุณสมบัติ BaseName พร้อมด้วย Get-Item cmdlet

พาวเวอร์เชลล์:

(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() รหัส> วิธีการ นอกจากนี้เรายังได้กล่าวถึงวิธีรับชื่อไฟล์โดยไม่มีนามสกุลสำหรับไฟล์หลายไฟล์ คุณสามารถใช้เฟรมเวิร์กเหล่านี้ได้อย่างมีประสิทธิภาพและรับชื่อไฟล์ของคุณโดยไม่มีนามสกุล

บทความที่เกี่ยวข้อง