ทำไม“ cd D:” ไม่เปลี่ยนบริบทคำสั่งเป็น D: [ซ้ำ]


19

ซ้ำเป็นไปได้:
การใช้คำสั่ง cd ใน Windows Command Line ไม่สามารถนำทางไปยัง D: \

ทุกครั้งที่ฉันต้องการเปลี่ยนบริบทไดเรกทอรีไปยังไดรฟ์อื่น (D, E, F หรืออะไรก็ตาม .. ) ในพรอมต์คำสั่งของ Windows ฉันต้องใช้"Drive letter":\คำสั่งเพื่อเปลี่ยนจริง ถ้าผมลองกับ"ซีดี" คำสั่งบนcd H:\มันก็สะท้อน H: \ สำหรับฉันและทำอะไร:

ป้อนคำอธิบายภาพที่นี่

มีเหตุผลบางอย่างสำหรับพฤติกรรมดังกล่าวหรือไม่? ฉันหมายความว่าไม่ต้องcd commandทำงานเพื่อทำสิ่งนี้ใช่ไหม ทำไมถึงเป็นเช่นนั้น?


2
ที่เกี่ยวข้อง
Daniel Beck

คำตอบ:


28

ลอง:

cd /d d:

/d จะสลับอักษรระบุไดรฟ์และไดเรกทอรีสำหรับข้อมูลอื่น ๆ ด้วย cd /?


1
ดูเหมือนว่า cmd.exe จะเลียนแบบพฤติกรรมของ DOS ได้เป็นอย่างดีในสถานการณ์นี้โดยที่ "ไดเรกทอรีปัจจุบัน" สำหรับแต่ละไดรฟ์นั้นจะถูกจดจำอย่างชัดเจน
LawrenceC

4
นี่คือคำตอบที่แท้จริงของ "ทำไม Widows ถึงทำงานแบบนี้": เพราะ DOS ทำอย่างนั้น
KutuluMike

12

เหตุผลที่ Windows ทำงานในลักษณะนี้เป็นเพราะ DOS ทำแบบนั้น

ใน DOS แต่ละไดรฟ์จะมีไดเรกทอรีปัจจุบันของตัวเองและcdคำสั่งจะเปลี่ยนไดเรกทอรีปัจจุบันของไดรฟ์ หากยังเกิดขึ้นเป็นไดรฟ์ปัจจุบันแล้วไดเรกทอรีการทำงานของคุณจะเปลี่ยนไปพร้อมกับมัน หากคุณต้องการเปลี่ยนไดรฟ์ปัจจุบันคุณเพียงระบุอักษรระบุไดรฟ์เป็นคำสั่ง

โปรดสังเกตว่า Windows ไม่ได้ทำงานด้วยวิธีนี้อีกต่อไป - คุณมีไดเรกทอรีปัจจุบันเพียงไดเรกทอรีเดียวในเวลาใดก็ได้ แต่เชลล์คำสั่งมีความยาวมากเพื่อทำเป็นว่ามีไดเรกทอรีปัจจุบันต่อไดรฟ์ สันนิษฐานว่าเป็นการรักษาความเข้ากันได้กับไฟล์แบตช์ DOS ที่มีอยู่

เหตุผลที่ DOS ทำงานด้วยวิธีนี้ย้อนกลับไปเป็นรุ่นแรกสุดของ DOS และ CP / M ก่อนหน้านั้น รายละเอียดเต็มไปด้วยเลือดสามารถพบได้บนบล็อกของเรย์มอนด์ของเฉิน


6

คำตอบที่ตรงไปตรงมาก็คือ "เพราะมันไม่ได้ถูกเขียนขึ้นเพื่อทำงานในลักษณะนั้น" เพียงป้อนD:จะทำสิ่งที่คุณต้องการ

cd D:\somedirอันที่จริงแล้วการป้อนจะเปลี่ยนไดเรกทอรีปัจจุบันใน D: เป็น \ data อย่างถาวร แต่จะไม่เปลี่ยนพรอมต์คำสั่งปัจจุบันเป็น D:

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.