Windows 10 สามารถสร้างรายการไฟล์ทั้งหมดในโฟลเดอร์ได้ด้วย Windows PowerShell ที่มีมาให้ในตัว คำสั่งด้านล่างจะบันทึกเส้นทางของไฟล์และโฟลเดอร์ย่อยแต่ละรายการลงในไฟล์ข้อความธรรมดา รวมถึงรายการที่ซ่อนอยู่ด้วย คุณยังสามารถส่งออกชื่อ ประเภทของรายการ ขนาด และวันที่แก้ไขไปยังไฟล์ CSV ที่เปิดใน Excel ได้ โดยไม่จำเป็นต้องใช้แอปพลิเคชันแสดงรายการโฟลเดอร์เพิ่มเติม
สร้างรายการข้อความธรรมดาด้วย PowerShell
ใช้วิธีนี้เมื่อคุณต้องการไฟล์ง่ายๆ ที่ค้นหา แชร์ หรือเปิดใน Notepad ได้ง่าย ตัวอย่างนี้จะสแกนโฟลเดอร์ชื่อ Project และบันทึกผลลัพธ์ไว้บนเดสก์ท็อป แทนที่เส้นทางตัวอย่างด้วยตำแหน่งบนพีซีของคุณ
- ค้นหาเส้นทางของโฟลเดอร์เปิดโฟลเดอร์ใน File Explorer แล้วคลิกที่แถบที่อยู่ การนำทางแบบ Breadcrumb จะเปลี่ยนเป็นเส้นทางแบบเต็ม กดCtrl+ Cเพื่อคัดลอกหากคุณต้องการวางลงในคำสั่ง ในตัวอย่างด้านล่าง โฟลเดอร์คือ
C:\Users\Alex\Documents\Project.
โปรแกรมสำรวจไฟล์จะแสดงโฟลเดอร์ที่เลือกและรายการต่างๆ ที่อยู่ภายในโฟลเดอร์นั้น
- เปิด Windows PowerShell และเลือกโฟลเดอร์เปิดเมนู Start พิมพ์
Windows PowerShellแล้วเปิดแอป คุณไม่จำเป็นต้องเรียกใช้ในฐานะผู้ดูแลระบบสำหรับโฟลเดอร์ทั่วไป ป้อนคำสั่งนี้ โดยแทนที่เส้นทางตัวอย่างด้วยเส้นทางที่คุณพบใน File Explorer:
Set-Location -LiteralPath "C:\Users\Alex\Documents\Project"
กดปุ่มEnter. ตอนนี้ข้อความแจ้งเตือนควรแสดงชื่อโฟลเดอร์แล้ว อย่าลืมใส่เครื่องหมายอัญประกาศรอบเส้นทาง โดยเฉพาะอย่างยิ่งเมื่อมีช่องว่างในเส้นทาง
คำสั่ง Set-Location จะกำหนดให้โฟลเดอร์ที่เลือกเป็นตำแหน่งที่ตั้งปัจจุบันของ PowerShell
- สร้างรายการวางคำสั่งต่อไปนี้แล้วกดEnter:
Get-ChildItem -LiteralPath . -Force -Recurse |
Sort-Object FullName |
Select-Object -ExpandProperty FullName |
Set-Content -LiteralPath "C:\Users\Alex\Desktop\folder-list.txt" -Encoding UTF8
เปลี่ยนเส้นทางเอาต์พุตหากคุณต้องการปลายทางอื่น บันทึกรายการไว้นอกโฟลเดอร์ที่คุณกำลังสแกน มิเช่นนั้นไฟล์รายการจากการทำงานครั้งก่อนอาจปรากฏในรายการสินค้าคงคลังในภายหลัง หากfolder-list.txtมีอยู่แล้วในปลายทางSet-Contentให้แทนที่เนื้อหาของไฟล์นั้น
Get-ChildItemคำสั่งนี้ค้นหาไฟล์และโฟลเดอร์-Recurseรวมถึงรายการในโฟลเดอร์ย่อย-Forceและรายการที่ซ่อนอยู่หรือรายการระบบที่ PowerShell มักจะละเว้น การเรียงลำดับตามเส้นทางแบบเต็มจะทำให้ผลลัพธ์อ่านง่ายขึ้น และการขยายFullNameจะแสดงเส้นทางแบบเต็มหนึ่งเส้นทางต่อบรรทัด
การแสดงรายการแบบวนซ้ำทำให้เห็นได้อย่างชัดเจนว่าแต่ละรายการอยู่ในโฟลเดอร์ย่อยใด
- เปิดไฟล์ที่เสร็จสมบูรณ์แล้วใน File Explorer ให้ไปที่ปลายทางที่คุณเลือกและเปิด
folder-list.txtไฟล์นั้น เปิดไฟล์นั้นด้วย Notepad หรือโปรแกรมแก้ไขข้อความอื่นๆ เพื่อตรวจสอบหรือคัดลอกเส้นทาง โฟลเดอร์ที่เลือกนั้นไม่ใช่บรรทัดในไฟล์ แต่รายการจะแสดงเนื้อหาของโฟลเดอร์นั้น
การจัดทำรายการข้อความช่วยให้มองเห็นตำแหน่งของไฟล์และโฟลเดอร์ที่ซ้อนกันได้
ส่งออกไฟล์ CSV ที่สามารถเรียงลำดับได้ พร้อมรายละเอียดสินค้า
หากคุณต้องการจัดเรียงหรือกรองข้อมูลสินค้าคงคลังใน Excel ให้เรียกใช้คำสั่งนี้จากตำแหน่ง PowerShell เดียวกัน ใช้ปลายทางไฟล์ CSV ที่อยู่นอกโฟลเดอร์ที่กำลังสแกน และเปลี่ยนเส้นทางตัวอย่างหากจำเป็น:
Get-ChildItem -LiteralPath . -Force -Recurse |
Sort-Object FullName |
Select-Object FullName, Name, @{Name='Type';Expression={if ($_.PSIsContainer) {'Folder'} else {'File'}}}, Length, LastWriteTime |
Export-Csv -LiteralPath "C:\Users\Alex\Desktop\folder-list.csv" -NoTypeInformation -Encoding UTF8
ไฟล์ CSV จะมีคอลัมน์สำหรับระบุเส้นทางแบบเต็ม ชื่อ ประเภทของไฟล์หรือโฟลเดอร์ ขนาด และเวลาที่แก้ไขล่าสุด โฟลเดอร์ไม่มีข้อมูลขนาดไฟล์ ดังนั้นช่องสำหรับระบุขนาดLengthอาจว่างเปล่า-NoTypeInformationส่วนหัวของไฟล์ CSV จะยังคงแสดงเฉพาะคอลัมน์เหล่านี้ ดับเบิ้ลคลิกไฟล์ CSV ที่บันทึกไว้เพื่อเปิดใน Excel หรือโปรแกรมสเปรดชีตอื่นๆ
เปลี่ยนรายการที่จะแสดง
- แสดงเฉพาะเนื้อหาภายในโฟลเดอร์โดยตรง: remove
-Recurseคำสั่งนี้จะยังคงรวมไฟล์และโฟลเดอร์ที่อยู่ภายในไดเร็กทอรีที่เลือกไว้ด้วย
- ไม่รวมรายการที่ซ่อนอยู่และรายการของระบบ:ลบออก
-Forceหากไม่ทำเช่นนั้น รายการที่ซ่อนอยู่จะถูกยกเว้นโดยค่าเริ่มต้น
- แสดงเฉพาะไฟล์:เพิ่ม
-Fileตัวเลือกนี้ต่อท้ายพาธ หากต้องการแสดงชื่อโฟลเดอร์ด้วย ให้ละเว้นตัวเลือกนี้
โฟลเดอร์รากจะไม่ถูกรวมเป็นรายการ และการแจงนับแบบวนซ้ำจะไม่ติดตามเนื้อหาของลิงก์สัญลักษณ์ไดเร็กทอรีใน Windows PowerShell มันอาจแสดงเฉพาะลิงก์โดยไม่ต้องไล่ดูภายในเป้าหมาย ดังนั้นไฟล์ที่เข้าถึงได้เฉพาะผ่านโฟลเดอร์ที่เชื่อมโยงอาจไม่ปรากฏขึ้น
แก้ไขปัญหาในกรณีที่รายการไม่สมบูรณ์
หาก PowerShell แสดงข้อผิดพลาด "การเข้าถึงถูกปฏิเสธ" อาจเป็นเพราะมันไม่สามารถอ่านทุกโฟลเดอร์ย่อยได้-Forceซึ่งรวมถึงรายการที่ซ่อนอยู่และรายการระบบ และมันไม่ได้ข้ามสิทธิ์การเข้าถึงของ Windows ให้ใช้บัญชีที่มีสิทธิ์เข้าถึงโฟลเดอร์นั้น และถือว่าการทำงานที่มีข้อผิดพลาดในการเข้าถึงนั้นไม่สมบูรณ์
หาก PowerShell แจ้งว่าไม่พบโฟลเดอร์หรือปลายทาง ให้ตรวจสอบการสะกดคำ ตัวอักษรไดรฟ์ และเครื่องหมายอัญประกาศในเส้นทาง โฟลเดอร์ปลายทางต้องมีอยู่แล้ว นอกจากนี้ ตรวจสอบว่าไฟล์ข้อมูลสินค้าคงคลังถูกบันทึกไว้นอกโฟลเดอร์ต้นทาง และคุณมีสิทธิ์ในการเขียนไปยังปลายทางด้วย
สำหรับรายละเอียดคำสั่ง โปรดดูเอกสาร อ้างอิง Get-ChildItem , Set-ContentและExport-Csvของ Microsoft สำหรับ Windows PowerShell 5.1