โฮมเพจ » ทำอย่างไร » ทำไม dir *. * ทำรายการไฟล์และโฟลเดอร์ทั้งหมด?

    ทำไม dir *. * ทำรายการไฟล์และโฟลเดอร์ทั้งหมด?

    บางครั้งคุณอาจพบผลลัพธ์ที่ไม่คาดคิดเมื่อเรียกใช้คำสั่งดังนั้นการเรียนรู้ว่า "ทำไม" ที่อยู่เบื้องหลังผลลัพธ์นั้นน่าสนใจมาก เมื่อคำนึงถึงเรื่องนี้แล้วคำถาม & คำตอบ SuperUser ของวันนี้มีคำตอบสำหรับคำถามของผู้อ่านที่อยากรู้อยากเห็น.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    ผู้อ่าน SuperUser Luu Vinh Phuc ต้องการทราบว่าทำไม dir *. * แสดงรายการไฟล์และโฟลเดอร์ทั้งหมด:

    เมื่อฉันรันคำสั่ง dir *. * มันจะสร้างผลลัพธ์ที่ไม่คาดคิด แม้แต่ไฟล์และโฟลเดอร์ที่ไม่มีจุดใด ๆ ในชื่อก็แสดงรายการ ตัวอย่างเช่น:

    ทำไมถึงเป็นอย่างนั้น? มีวิธีใดบ้างที่จะแสดงเฉพาะไฟล์ที่มีจุด?

    เหตุใด dir *. * จึงแสดงรายการไฟล์และโฟลเดอร์ทั้งหมด?

    คำตอบ

    ผู้สนับสนุน SuperUser Fleet Command มีคำตอบสำหรับเรา:

    คำสั่ง DIR มาจากเวลาเมื่อ:

    • ไม่อนุญาตให้ใช้เครื่องหมายมหัพภาค (.) เป็นอักขระในชื่อไฟล์หรือโฟลเดอร์
    • ชื่อไฟล์และโฟลเดอร์ถูก จำกัด ไว้ที่ 8 ตัวอักษรสำหรับชื่อและ 3 ตัวอักษรสำหรับส่วนขยาย

    ดังนั้นตามมาตรฐานนั้น *. * จึงมีความหมายว่าชื่อและนามสกุลใด ๆ มันไม่ได้หมายความว่าสายอักขระที่ประกอบด้วย“.” ซึ่งอาจมีหรือไม่มีอักขระก่อนหรือหลัง“.”.

    นโยบายของ Microsoft รักษาความเข้ากันได้แบบย้อนหลังดังนั้นการตีความของ *. * จะยังคงอยู่ แต่ใน Windows PowerShell, *. * หมายถึงสตริงที่มี“.” ซึ่งอาจมีหรือไม่มีอักขระอยู่ก่อนหรือหลัง“.”.


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.