คุณจัดการกับ“ CMD ไม่สนับสนุนเส้นทาง UNC เป็นไดเรกทอรีปัจจุบัน” ได้อย่างไร?


24

ฉันพยายามเปลี่ยนไดเรกทอรีเป็นไฟล์เซิร์ฟเวอร์เช่น:

cd \\someServer\\someStuff\

อย่างไรก็ตามฉันได้รับข้อผิดพลาดต่อไปนี้:

CMD ไม่รองรับเส้นทาง UNC เป็นไดเรกทอรีปัจจุบัน

ตัวเลือกของฉันในการนำทางไปยังไดเรกทอรีนั้นมีอะไรบ้าง


คำตอบ:


34

หากคุณกำลังพิจารณาการเขียนสคริปต์มันเป็นประโยชน์เสมอที่จะเรียนรู้เกี่ยวกับpushdและpopdคำสั่ง บางครั้งคุณไม่สามารถแน่ใจได้ว่าตัวอักษรไดรฟ์ที่ใช้อยู่ในเครื่องที่สคริปต์จะทำงานและคุณเพียงแค่ต้องใช้ตัวอักษรไดรฟ์ที่มีอยู่ถัดไป เนื่องจากnet useจะทำให้คุณต้องระบุไดรฟ์คุณสามารถใช้pushd \\server\folderและจากนั้นpopdเมื่อคุณดำเนินการเสร็จสิ้น


หากคุณระบุ '*' แทนการใช้อักษรชื่อไดรฟ์สุทธิจะใช้การตรวจสอบไดรฟ์ที่มีอยู่ครั้งแรกจาก ZA ดังนั้น 'net use * \\ server \ share' โดยไม่มี Z: ไดรฟ์ที่แมปจะแมป \\ เซิร์ฟเวอร์ \ share กับ Z:
Zypher

แต่คุณก็ไม่รู้ว่าอักษรไดรฟ์ตัวใดถูกแมปเพื่อจุดประสงค์ของสคริปต์ที่เหลือ
tomfanning

@tomfanning คุณสามารถค้นหาอักษรระบุไดรฟ์ได้โดยใช้ (wmic logicaldisk get caption, providername, drivetype, volumename) จากพรอมต์คำสั่งแล้วแยกวิเคราะห์เอาต์พุตที่มองหา \\ servername \ sharename ของคุณ serverfault.com/questions/62578/…
Chris Magnuson

1
@pk เกิดอะไรขึ้นถ้าสคริปต์ที่ล้มเหลวก่อนที่จะเรียกคุณpopd?
Pacerier

15

หรือคุณอาจจะเปลี่ยนเปลือกของคุณเพื่อPowerShell มันมีการสนับสนุนที่สมบูรณ์สำหรับเส้นทาง UNC


ยกเว้นเมื่อ explorer.exe จัดการกับไฟล์ที่คุณพยายามลบ แม้จะปิดหน้าต่าง explorer ฉันคิดว่าผู้ให้บริการ PS FileSystem (สมมติว่าเป็นผู้ให้บริการ) อาจใช้ explorer.exe ภายใต้ประทุน หรือคุณกำลังบอกว่ามีวิธีใช้ UNC โดยไม่มีผู้ให้บริการหรือไม่
JohnZaj

11

คุณสามารถใช้net useในการแมปไดรฟ์เครือข่ายกับเส้นทาง UNC แล้วเรียกดูไดรฟ์ที่แมป


2
จริงนี่เป็นวิธีเดียวที่จะทำได้จากบรรทัดคำสั่ง แต่ระวังการใช้สิ่งนี้ยกเว้นคำสั่งแบบโยนทิ้ง (เช่นสิ่งที่คุณทำเพียงครั้งเดียว) เพราะมิฉะนั้นคุณจะพบปัญหาเกี่ยวกับไดรฟ์ที่ไม่ได้ถูกแมปหรือ แมป แต่ไม่ได้เชื่อมต่อและชื่อผู้ใช้หลายคน :(
ทำเครื่องหมายเฮนเดอร์สัน

1
คุณไม่สามารถเปลี่ยนเป็นไดเรกทอรีนี้ได้ แต่คุณยังสามารถใช้งานได้ในคำสั่ง: dir \\ someserver \ stuff call \\ someserver \ stuff \ Anything.bat
เบอนัวต์

1
ที่จริงคุณอาจจะสามารถที่จะใช้ \\ SOMESERVER \ share ... คุณเพียงแค่ต้องสับ reg ที่จะทำมัน :-)
Bart Silverstrim

@BartSilverstrim เป็นอย่างไร
Pacerier


1

เช่นเดียวกับการแมปไดรฟ์อย่างชัดเจนเพื่อให้cmdสามารถรับมือได้ซึ่งสาธารณูปโภคอื่น ๆ อาจต้องการเช่นกันคุณสามารถลองใช้เชลล์คำสั่งทางเลือกเช่น PowerShell


1

สิ่งนี้ใช้ได้กับฉันใน Win8x64:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

คุณควรจะทำสิ่งนี้ใน HKCU ด้วยเช่นกันเพียงตรวจสอบให้แน่ใจว่าคุณออกจากระบบและกลับมาใหม่อีกครั้ง


1

ตาม @ pk ใช้ pushd & popd นี่คือตัวอย่าง

ใช้ pushd เพื่อสร้างไดรฟ์เสมือนชั่วคราวและหลังจากทำ popd เพื่อลบไดรฟ์เสมือนชั่วคราว

:selectFolder
REM Confirm which Folder structure
set /p location="Delete files for which QA environment: (P)retoria, (C)ape, (L)uanda or (Q)uit? (C/L/P/Q)"
REM  I option allows for upper and lower case
if /I "%location%"=="C" set folder="\\Tfwcqa\tfwcqa\EORDERS"
if /I "%location%"=="L" set folder="\\Tfluaqa\tfluaqa\EORDERS"
if /I "%location%"=="P" set folder="\\Tfptaqa\tfptaqa\EORDERS"
if /I "%location%"=="Q" goto endBatch

REM you can not cd to a network drive so we use pushd to create a temporary virtual drive
REM cd /d %folder%
pushd %folder%

DIR /S

REM popd deletes the temporary virtual drive
popd

0

จะไม่ได้เป็นคำสั่งทางแยกการทำงานที่นี่?


1
อย่าคิดอย่างนั้นจังก์ชั่นใช้งานได้กับไดเรกทอรีในเครื่อง
Berzemus

มันใช้งานได้หรือไม่ จากบทความ Wikipedia: "จุดเชื่อมต่อสามารถเชื่อมโยงไปยังไดเรกทอรีในไดรฟ์ข้อมูลท้องถิ่นเท่านั้นจุดเชื่อมต่อไปยังการแชร์ระยะไกลไม่ได้รับการสนับสนุน"
Peter Mortensen

@#%!# คุณถูก. ฉันคิดว่ามันเป็นเหมือนคำสั่ง mount ลืมฉันมีปัญหานี้เมื่อฉันดูมันเมื่อสองปีก่อน ถอนหายใจ ขอโทษ ...
Bart Silverstrim

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