มันไม่ทำงานตามที่คำสั่งจะถูกออกแบบมาเพื่อทำงาน
คุณไม่รู้ว่ามันควรจะทำงานอย่างไร
คุณไม่ได้ใช้โปรแกรมเชลล์ Unix หรือ Linux cdคำสั่งในการแปลคำสั่งไมโครซอฟท์ไม่ประพฤติเป็นcdคำสั่งในเปลือกหอยดังกล่าวทำ มันทำงานค่อนข้างแตกต่าง โดยเฉพาะอย่างยิ่งมันไม่ได้เปลี่ยนไดเรกทอรีเสมอ ใน Unix และ Linux shells cdจะตั้งค่าไดเรกทอรีการทำงานเท่านั้น ในล่ามคำสั่งของ Microsoft cdบางครั้งทำการสืบค้น ไม่มีpwdคำสั่งแยกต่างหากดังนั้นcdสองงาน
ถ้าคุณให้มันไม่มีข้อโต้แย้งหรือข้อโต้แย้งที่เป็นเพียงตัวอักษรไดรฟ์และลำไส้ใหญ่โดยไม่ต้องเส้นทางที่แล้วจะรายงานไดเรกทอรีปัจจุบันแทนการเปลี่ยนมัน หากคุณไม่มีอาร์กิวเมนต์มันจะรายงานไดเรกทอรีปัจจุบันของไดรฟ์ปัจจุบันของกระบวนการล่ามคำสั่ง หากคุณให้เฉพาะอักษรระบุไดรฟ์และโคลอนเป็นอาร์กิวเมนต์จะรายงานไดเรกทอรีปัจจุบันของกระบวนการล่ามคำสั่งของไดรฟ์นั้น แต่ละไดรฟ์มีไดเรกทอรีปัจจุบันของตัวเองในล่ามคำสั่ง (นี่เป็นนิยายที่ดูแลโดยไลบรารีรันไทม์สำหรับการใช้งานของ Microsoft และผู้จำหน่ายอื่น ๆ ของภาษาการเขียนโปรแกรมต่าง ๆ Win32 เองไม่สามารถใช้วิธีนี้ได้)
ดังนั้นเมื่อคุณให้มันd:เป็นอาร์กิวเมนต์ก็รายงานขั้นตอนการสั่งล่ามไดเรกทอรีปัจจุบันในไดรฟ์ D D:\ให้คุณซึ่งจะเกิดขึ้น หากคุณไม่ให้ข้อโต้แย้งใด ๆ เลยก็จะรายงานC:\ให้คุณทราบ
หากคุณต้องการให้cdคำสั่งอยู่ในโหมดตั้งค่าเสมอและไม่เคยอยู่ในโหมดสืบค้นคุณจะต้องเพิ่ม/Dตัวเลือกให้กับมัน สิ่งนี้บังคับให้คำสั่งอยู่ในโหมดการตั้งค่าเสมอและยังขยายคำสั่งเพื่อเปลี่ยนไดรฟ์ปัจจุบันรวมถึงการเปลี่ยนไดเรกทอรีปัจจุบันของไดรฟ์ (กล่าวอีกนัยหนึ่งมันทำงานเหมือน Win32 API พื้นฐานจริง ๆ )
ตัวอย่างเช่นบรรทัดคำสั่ง
cd / dd:
จะเปลี่ยนไดเรกทอรีเป็นไดเรกทอรีปัจจุบันในไดรฟ์ D และเปลี่ยนไดรฟ์ปัจจุบันเป็นไดรฟ์ D
หากคุณต้องการเปลี่ยนไดรฟ์ปัจจุบันของกระบวนการล่ามคำสั่งเป็นอย่างอื่นcdคำสั่งนั้นจะไม่เป็นวิธี คุณทำได้โดยพิมพ์อักษรชื่อไดรฟ์และเครื่องหมายโคลอน:
d:
อ่านเพิ่มเติม
pushdแทนcdทุกที่เพราะมันทำงานได้ดีขึ้นมากในสถานการณ์เช่นนี้