วิธีเปลี่ยนไดเร็กทอรีการทำงานปัจจุบันโดยใช้ไฟล์แบตช์


110

ฉันต้องการความช่วยเหลือในการเขียนไฟล์แบตช์ ฉันมีเส้นทางที่เก็บไว้ในรูทตัวแปรดังนี้:

set root=D:\Work\Root

จากนั้นฉันกำลังเปลี่ยนไดเร็กทอรีการทำงานของฉันเป็นรูทนี้ดังนี้:

cd %root%

เมื่อฉันเรียกใช้ไฟล์แบตช์นี้จากที่ใดก็ได้บนไดรฟ์ D สิ่งนี้ทำได้สำเร็จ แต่เมื่อฉันรันไฟล์แบตช์เดียวกันจากไดรฟ์อื่น cd% root% ไม่ทำงาน

มีวิธีรับอักษรระบุไดรฟ์จากตัวแปรรากหรือไม่? จากนั้นฉันสามารถเปลี่ยนไดเร็กทอรีปัจจุบันเป็นไดรฟ์นี้ก่อนจากนั้น cd% root% จะใช้งานได้

คำตอบ:


161

ระบุ/Dเพื่อเปลี่ยนไดรฟ์ด้วย

CD /D %root%

1
คำตอบอื่น ๆ บอกว่า\d(ตัวพิมพ์เล็ก) มีความแตกต่างกันหรือไม่? ตัวเลือกนี้ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่หรือไม่
josch

3
@josch: ใช่ถ้าเรากำลังพูดถึงคำสั่งภายในของ CMD ดังนั้นการเปลี่ยนพารามิเตอร์ดังที่กล่าว/Dมาจะไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ ( /D= /d) เช่นเดียวกับคำสั่งเอง ( CD= cd) ผมเชื่อว่ายังเป็นจริงสำหรับภายนอกทั้งหมดของ Windows สาธารณูปโภคบรรทัดคำสั่ง (เช่นFINDSTR, SORTฯลฯ ) เครื่องมือของบุคคลที่สามบนมืออื่น ๆ ที่สามารถใช้พารามิเตอร์เป็นกรณี ๆ ไป
Andriy M

ไม่คุ้มกับคำตอบของตัวเอง แต่คุณทำได้set "root=/d D:\Work\Root"และcd %root%หรือแม้กระทั่งset "root=cd /d D:\Work\Root"และ%root%
Stephan

40

เพียงแค่ใช้cd /d %root%เพื่อสลับตัวอักษรไดรเวอร์และเปลี่ยนไดเรกทอรี

หรือใช้pushd %root%สลับอักษรชื่อไดรฟ์เมื่อเปลี่ยนไดเร็กทอรีรวมทั้งจัดเก็บไดเร็กทอรีก่อนหน้าบนสแต็กเพื่อให้คุณสามารถpopdเปลี่ยนกลับได้

โปรดทราบว่าpushdจะช่วยให้คุณสามารถเปลี่ยนไดเรกทอรีเป็นการแชร์เครือข่ายได้ จริงๆแล้วจะแมปไดรฟ์เครือข่ายให้คุณจากนั้นยกเลิกการแมปเมื่อคุณเรียกใช้popdงานไดเร็กทอรีนั้น



12

ไวยากรณ์ที่ง่ายกว่าอาจเป็น

ดัน% ราก%


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