यह काफी पुराना प्रश्न है लेकिन .. मैं ठीक उसी उत्तर की तलाश कर रहा था क्योंकि मैं एक ऐसा बैच बनाने की कोशिश कर रहा था जो पैच के वास्तविक स्थान पर 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 कमांड के समान है।