กำหนดเส้นทางเครือข่ายที่แมปจากหน้าต่าง cmd


26

ฉันมีไดรฟ์เครือข่าย - แมปกับ Z:\

มีคำสั่งง่ายๆที่จะรู้เส้นทางของเครือข่ายทั้งหมดcmdหรือไม่

เช่นถ้าcmdแสดงว่าZ:\ABC\ฉันมีคำสั่งให้ส่งออก\\networkDrive\MappedDir\ABC

net use ไม่เป็นไร แต่ฉันต้องการพา ธ แบบเต็มของไดเรกทอรีการทำงานปัจจุบัน (สำหรับการคัดลอกอย่างรวดเร็ว)

คำตอบ:


37

ชนิด

net use

ซึ่งจะแสดงให้คุณเห็นทุกไดรฟ์เครือข่ายที่เชื่อมต่ออยู่ในปัจจุบัน

OK           Z:        \\127.0.0.1\c$            Microsoft Windows Network

ขอบคุณคุณรู้วิธีที่จะได้รับเส้นทางเต็มของไดเรกทอรีการทำงานปัจจุบันหรือไม่?
Ofiris

1
เกี่ยวกับecho %cd%อะไร
Endoro

@Endoro echo %cd%ส่งออกไดเรกทอรีปัจจุบัน ( Z:\ABC) และไม่\\netDrive\ABC
Ofiris

ฉันไม่คิดว่าจะมีบรรทัดคำสั่งง่ายๆที่คุณสามารถทำได้เพื่อรับมัน คุณอาจสามารถเขียนสคริปต์ชุด / powershell เพื่อทำ แต่ฉันไม่ได้พยายามทำ ตรวจสอบคำตอบจากอิคารัสเมื่อ: superuser.com/questions/244579/…บางทีคุณสามารถใช้มันเพื่อความต้องการของคุณ
Darius

สิ่งที่เกี่ยวกับไดรฟ์ที่ไม่ได้เชื่อมต่อในขณะนี้ (เช่นผ่าน VPN ที่ไม่ได้เชื่อมต่อ)

1

มันค่อนข้างเป็นคำถามเก่า แต่ .. ฉันกำลังมองหาคำตอบที่แน่นอนเหมือนกันขณะที่ฉันพยายามที่จะสร้างชุดที่จะใช้เส้นทาง UNC ไปยังตำแหน่งที่แท้จริงของแพทช์และทำบางสิ่งที่นั่น (ดังนั้นคัดลอกและวางไปยังตำแหน่งอื่น / โฟลเดอร์และเริ่มอีกครั้ง)

เนื่องจากฉันไม่สามารถหาคำตอบได้ฉันพบวิธีแก้ปัญหาด้วยตัวเอง แต่มันก็ไม่ได้สวยงามมากและไม่ใช่คำสั่งง่ายๆ แต่มันเป็นไปได้ที่จะใช้ในชุด ใน CMD มันจะเป็น:

FOR /F "tokens=2" %i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%i)
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

คุณสามารถคัดลอกสี่บรรทัด (ดีกว่า 4 + บรรทัดว่าง) และวางลงใน CMD เพื่อรับเสียงสะท้อนของเส้นทางที่จะคัดลอก

ในชุดคุณจะใช้มันแตกต่างกันเล็กน้อย:

FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%~d0"') DO (
      bNetworkPath=%%i)
SET bCheckPath=!bOriginalPath!%~p0

ตัวแปร% CD% เก็บเส้นทางปัจจุบันและคุณต้องการตัวอักษรไดรฟ์เท่านั้นดังนั้นคุณจะค้นหาด้วยคำสั่ง FIND ใน NET USE ด้วย "โทเค็น = 2" (หรือ 3 ขึ้นอยู่กับเอาต์พุต NET USE) ตัวแปร% i เก็บพา ธ ไปยังตัวอักษรไดรฟ์ที่คุณค้นหา หลังจากนั้นคำสั่ง SET ชุดที่สองจะเพิ่มโฟลเดอร์ที่คุณเรียกดูบนไดรฟ์เครือข่ายด้วย% CD: ~ 2% (ออฟเซ็ต 2 เพื่อตัดอักษรระบุไดรฟ์)

สำหรับแบตช์คุณใช้ตัวแปร% ~ d0 หรือ% ~ p0 % 0 เก็บเส้นทางแบบเต็มของชุดตัวเอง (เช่น Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = ไดรฟ์, p = เส้นทาง, f = เส้นทางแบบเต็ม, n ชื่อ =) มิฉะนั้นจะคล้ายกับคำสั่ง CMD


ตัวอย่างน่าสนใจ แต่ก็หัก ตัวอย่างเช่น(DO...)ในตัวอย่างชุดหายไปSET ...และbOriginalPathไม่ได้กำหนดไว้ที่ใดก็ได้
แมตต์วิลคี

0

เส้นทางของค้างคาวอาจแตกต่างจากไดเรกทอรีทำงาน ดังนั้นเราต้องการแนวทางแรกของ Mykorrhiza ภายในไม้ตี เพื่อรองรับสถานการณ์ที่ไม่มีสถานะและดิสก์ไดรฟ์ในระบบเราจำเป็นต้องตรวจสอบเพิ่มเติม ต่อไปนี้เป็นรหัสการทำงาน:

SET cNetworkPath=    
FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
      SET cNetworkPath=%%i)
if "%cNetworkPath%" == "%CD:~0,2%" (
  FOR /F "tokens=3" %%i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
        SET cNetworkPath=%%i)
)
if "%cNetworkPath%" == "" set cNetworkPath=%CD:~0,2%
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%

รหัสข้างต้นใช้งานได้ในกรณีส่วนใหญ่ แต่มีบางกรณีที่การใช้เน็ตและการค้นหาไม่ทำงานต่อไปนี้เป็นวิธีการทดสอบสุดท้ายที่ใช้งาน:

SET cNetworkPath=
for /f "tokens=2" %%i in ('wmic path win32_mappedlogicaldisk get deviceid^, providername ^| findstr "%CD:~0,2%"') do (set cNetworkPath=%%i)
echo %cNetworkPath%

0

หากคุณต้องการให้มันแสดงผลตามที่คุณต้องการ

set prompt=$M$Q$S$P

ซึ่งจะแสดงเส้นทาง UNC ของคุณและเส้นทางตามอักษรระบุไดรฟ์ของคุณ

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