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