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

मुझे नहीं लगता कि एक साधारण कमांड लाइन है जिसे आप इसे प्राप्त करने के लिए कर सकते हैं। आप इसे करने के लिए एक बैच / शक्तियां लिख सकते हैं, लेकिन मैंने एक बनाने की कोशिश नहीं की है। इकारस से उत्तर की जाँच करें: superuser.com/questions/244579/... शायद आप इसे अपनी जरूरत के लिए इस्तेमाल कर सकते हैं।
Darius

उन ड्राइव के बारे में जो वर्तमान में कनेक्ट नहीं हैं (जैसे, एक वीपीएन जो वर्तमान में डिस्कनेक्ट हो गया है)?

1

यह काफी पुराना प्रश्न है लेकिन .. मैं ठीक उसी उत्तर की तलाश कर रहा था क्योंकि मैं एक ऐसा बैच बनाने की कोशिश कर रहा था जो पैच के वास्तविक स्थान पर UNC पथ का उपयोग करेगा और वहां कुछ चीजें करेगा (इसलिए केवल कॉपी & amp; दूसरे को पेस्ट करें स्थान / फ़ोल्डर और फिर से शुरू)।

जैसा कि मुझे उत्तर नहीं मिला, मुझे स्वयं एक समाधान मिला, लेकिन यह बहुत सुंदर नहीं है और निश्चित रूप से एक साधारण आदेश नहीं है। लेकिन बैच में इसे लागू करना संभव है। 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 + खाली पंक्ति) की प्रतिलिपि बना सकते हैं और उन्हें कॉपी करने के लिए पथ की एक प्रतिध्वनित प्रतिध्वनि प्राप्त करने के लिए उन्हें सीएमडी में पेस्ट कर सकते हैं।

बैच में आप इसे थोड़ा अलग तरीके से उपयोग करेंगे:

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

चर% CD% वर्तमान पथ को संग्रहीत करता है और आपको केवल ड्राइव अक्षर की आवश्यकता होती है ताकि आप केवल NET USE में FIND कमांड के साथ ही उसे खोज सकें। "Tokens = 2" (या 3, NET USE आउटपुट के आधार पर) के साथ% i वैरिएबल आपके द्वारा खोजे गए ड्राइव अक्षर के लिए पथ को संग्रहीत करता है। उसके बाद दूसरा SET कमांड आपके द्वारा नेटवर्क ड्राइव पर ब्राउज किए गए फ़ोल्डर्स को% CD: ~ 2% (ड्राइव अक्षर को काटने के लिए ऑफ़सेट 2) जोड़ता है।

बैच के लिए आप% ~ d0 या% ~ p0 चर का उपयोग करते हैं। % 0 स्वयं बैच का पूरा पथ संग्रहीत करता है (जैसे Z: \ temp \ test.bat;% ~ d0 = Z:% ~ p0 = \ temp \; d = ड्राइव, p = पथ, f = पूर्ण पथ, n = name) अन्यथा यह CMD कमांड के समान है।


नमूना पेचीदा है, लेकिन टूटा हुआ है। उदाहरण के लिए (DO...) बैच में उदाहरण गायब है SET ..., तथा bOriginalPath कहीं भी परिभाषित नहीं है।
matt wilkie

0

बल्ले का रास्ता कार्यशील निर्देशिका से अलग हो सकता है। इसलिए हमें बैट के अंदर माइकोरिज़ा का पहला तरीका चाहिए। लापता स्थिति और स्थानीय डिस्क ड्राइव की स्थिति को समायोजित करने के लिए, हमें अतिरिक्त जांच की आवश्यकता है। निम्नलिखित कार्य कोड है:

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%
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.