"UNC पथ समर्थित नहीं हैं" संदेश के बिना नेटवर्क साझा से बैच फ़ाइल कैसे चलाएं?


87

मैं एक नेटवर्क फ़ाइल से एक बैच फ़ाइल चलाने की कोशिश कर रहा हूं, लेकिन मुझे निम्न संदेश मिलता है: "UNC पथ समर्थित नहीं है। Windows निर्देशिका में चूक।" बैच फ़ाइल पर स्थित है \\Server\Soft\WPX5\install.bat। व्यवस्थापक के रूप में लॉग इन करते समय, मेरे विंडोज 7 डेस्कटॉप से, मैं नेविगेट करता हूं \\Server\Soft\WP15\और install.bat पर डबल क्लिक करता हूं, तभी मुझे "UNC पथ समर्थित नहीं है।" संदेश। मुझे ऑनलाइन कुछ सुझाव मिले हैं जिसमें कहा गया है कि मैपिंग ड्राइव काम नहीं करेगा, लेकिन एक प्रतीकात्मक लिंक का उपयोग करने से यह समस्या हल हो जाएगी, लेकिन प्रतीकात्मक लिंक मेरे लिए काम नहीं करता है। नीचे मेरी बैच फ़ाइल सामग्री है, मैं किसी भी सहायता की सराहना करूँगा जो मुझे यह पूरा करने में मदद कर सकती है कि मैं क्या करने की कोशिश कर रहा हूं। असल में, मैं बैच फ़ाइल को चलाने में सक्षम होना चाहता हूं \\Server\Soft\WP15\install.bat

बैच फ़ाइल सामग्री

mklink /d %userprofile%\Desktop\WP15 \\server\soft\WP15
\\server\soft\WP15\setup.exe
robocopy.exe "\\server\soft\WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s \\server\soft\WPX5\Custom\Migrate.reg

इसके अलावा, मैं स्थापित होने के बाद प्रतीकात्मक लिंक को कैसे हटाऊं?


2
वर्षों बाद, लेकिन शायद किसी और के लिए उपयोगी: प्रतीकात्मक लिंक बनाने के बाद, आप मूल पथ का उल्लेख क्यों करते हैं? प्रतीकात्मक लिंक की बात यह है कि आपको एक स्थानीय रास्ता दिया जाए जिसका उपयोग आप कर सकते हैं। उदाहरण के लिए, "\\ server \ soft \ WP15 \ setup.exe" मत कहो, "% userprofile% \ Desktop \ WP15 \ setup.exe" कहो
ToolmakerSteve

गंभीरता से यह एक ServerFault.com सवाल है
जंचेन लियू

जवाबों:


137

PUSHD और POPD को आपके मामले में मदद करनी चाहिए।

@echo off
:: Create a temporary drive letter mapped to your UNC root location
:: and effectively CD to that location
pushd \\server\soft

:: Do your work
WP15\setup.exe
robocopy.exe "WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s WPX5\Custom\Migrate.reg

:: Remove the temporary drive letter and return to your original location
popd

PUSHD /?अधिक जानकारी के लिए कमांड लाइन से टाइप करें।


2
त्वरित प्रतिक्रिया और सुझावों के लिए धन्यवाद। मैं उम्मीद कर रहा था कि आपका सुझाव काम करेगा, लेकिन दुर्भाग्य से यह मेरे काम नहीं आया। मुझे एक ही संदेश मिला: "... UNC पथ समर्थित नहीं हैं। विंडोज निर्देशिका में चूक।" मुझे हां या नहीं पर क्लिक करने के लिए उपयोगकर्ता खाता नियंत्रण संवाद बॉक्स भी मिला, भले ही मैंने व्यवस्थापक समूह के सदस्य के रूप में लॉग इन करते समय फ़ाइल चलाई हो।
स्टूज

26
@Stew आपकी .bat फ़ाइल के प्रारंभ में, pushd %~dp0यह रखें : इसे निर्देशिका को आपकी बैट फ़ाइल वाली निर्देशिका में बदलने के लिए प्राप्त करना चाहिए। यह अभी भी चेतावनी का प्रिंट आउट लेगा, लेकिन इसे हमेशा की तरह काम करना चाहिए। यदि बैट फ़ाइल कहीं और '% ~ dp0' का उपयोग करती है, तो इसके साथ समस्याएँ हो सकती हैं, उस स्थिति में, आप यह पता लगा सकते %~dp0हैं कि क्या बैट फ़ाइल की शुरुआत में '//' से शुरू होता है, और यदि ऐसा है pushd, और फिर चलाएं फिर से फाइल करें goto :EOF। यह इसे नए मैप किए गए डायर में चलाने का कारण बनेगा।
ग्रांट पीटर्स

दूरस्थ कंप्यूटर या स्थानीय पर cmd निष्पादित किया जाएगा?
डिंगक्सिन जू

@DingxinXu - रिमोट कोड स्थानीय रूप से चलेगा। यदि आप दूरस्थ कंप्यूटर पर कोड चलाना चाहते हैं, तो आपको PsExec जैसी किसी चीज़ की आवश्यकता है ।
डेबनहम

3
@ बाल्की - हां, रिमोट कमांड को किसी अन्य स्क्रिप्ट में डालें। के बाद PUSHD, के माध्यम से 2 स्क्रिप्ट निष्पादित CMD /C, और उस के साथ पालन करें POPD। नियंत्रण CMD /Cस्क्रिप्ट से बाहर निकलने के बाद मूल स्क्रिप्ट पर वापस आ जाएगा , भले ही इसे CTRL-C द्वारा समाप्त कर दिया गया हो।
dbenham

29

इस सुरक्षा जांच से बचने के लिए एक रजिस्ट्री सेटिंग है (इसका उपयोग अपने जोखिम पर करें, हालाँकि):

रजिस्ट्री पथ के तहत

   HKEY_CURRENT_USER
     \ Software
       \ Microsoft
         \ Command प्रोसेसर

DisableUNCCheck REG_DWORD का मान जोड़ें और मान को 0 x 1 (Hex) पर सेट करें।

नोट: विंडोज 10 संस्करण 1803 पर, सेटिंग HKLM के तहत स्थित लगती है: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor


1
निश्चित नहीं, लेकिन मुझे निम्न पथ के अंतर्गत मेरा "कमांड प्रोसेसर" फ़ोल्डर क्यों मिला: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor
aoh

धन्यवाद, यह मददगार है। लेकिन विंडोज 10 1803 पर, यह HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command प्रोसेसर है, जैसा कि @aa ने बताया है।
एडविन यिप

मैं जवाब को फिर अपडेट करूंगा; सटीकता के लिए धन्यवाद
विनज़

26

मुझे लगता clsहै कि सबसे अच्छा जवाब है। यह यूएनसी संदेश को किसी को देखने से पहले छिपा देता है। मैंने इसे एक @pushd %~dp0अधिकार के साथ जोड़ दिया ताकि यह स्क्रिप्ट खोलने और एक चरण में स्थान को मैप करने जैसा लगे, इस प्रकार आगे के UNC मुद्दों को रोका जा सकेगा।

cls
@pushd %~dp0
:::::::::::::::::::
:: your script code here
:::::::::::::::::::
@popd

टिप्पणियाँ:

pushd नई मैप की गई ड्राइव में स्क्रिप्ट के स्थान पर आपकी कार्यशील निर्देशिका बदल जाएगी।

popd अंत में, मैप की गई ड्राइव को साफ करने के लिए।


4
मुझे popdअंत में (विंडोज 7) की आवश्यकता थी, अन्यथा खिड़की बंद होने के बाद मैप की गई ड्राइव चारों ओर अटक जाती थी।
पैट्रिक

1
ठीक काम करता है। धन्यवाद।
जोनास_हेस 7

1
अगर विंडोज 10. पर काम करना चाहिए तो यह अभी भी "कमांड प्रॉम्प्ट" है।
ग्रेलन

11

मूल रूप से, आप उस संदेश को देखे बिना उसे UNC पथ से नहीं चला सकते हैं।

आम तौर पर मैं जो भी करता हूं उसे सिर्फ CLSस्क्रिप्ट के शीर्ष पर रखा जाता है , इसलिए मुझे वह संदेश देखने की जरूरत नहीं है। फिर, नेटवर्क शेयर में उन फ़ाइलों को पूरा पथ निर्दिष्ट करें जिन्हें आपको उपयोग करने की आवश्यकता है।


1
धन्यवाद। मैं अंतिम विकल्प के रूप में यह कोशिश करूंगा, अगर कोई अन्य समाधान नहीं है।
स्टू

@jameslr उत्तर काम करेगा, लेकिन यह अधिक काम (टाइपिंग) की तुलना में मैं आमतौर पर करने को तैयार हूं। इसलिए, त्रुटि से छुटकारा पाने के लिए स्क्रीन को साफ करना मेरे लिए काफी अच्छा है। :)
एफोरिया

8

मुझे सर्वर शेयर के माध्यम से विंडोज एक्सप्लोरर को ब्राउज़ करने में सक्षम होना चाहिए, फिर बैच फ़ाइल को डबल-क्लिक करें। @ डेंभम ने मुझे अपने परिदृश्य के लिए एक आसान समाधान के लिए प्रेरित किया ( popdचिंताओं के बिना ):

:: Capture UNC or mapped-drive path script was launched from
set NetPath=%~dp0

:: Assumes that setup.exe is in the same UNC path
%NetPath%setup.exe

:: Note that NetPath has a trailing backslash ("\")
robocopy.exe "%NetPath%Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates"
Regedit.exe /s %NetPath%..\WPX5\Custom\Migrate.reg

:: I am not sure if WPX5 was typo, so use ".." for parent directory
set NetPath=
pause

@ पीटर-मोर्टेंसन, ने पहले शब्द को कैपिटल करने के लिए स्क्रिप्ट 4x में टिप्पणियों को संपादित किया? एक संपादन के लायक? एक वाक्य बनाने के लिए अंत में एक अवधि क्यों नहीं डालनी चाहिए? कैसे के बारे में: क्योंकि यह सिर्फ एक टिप्पणी है, मैं जानबूझकर टिप्पणियों में पहले शब्द में ऊपरी मामले का उपयोग नहीं करता हूं। स्पष्ट समझ के लिए मूल्यांकन और चर (या जोर) में अपवाद।
Jayro-GreyBeard

4

एक्सप्लोरर से सीधे बैच लॉन्च करने के बजाय - बैच के लिए एक शॉर्टकट बनाएं और शॉर्टकट के गुणों में प्रारंभिक निर्देशिका को सेट करें जैसे कि% TEMP% या कुछ और।

प्रतीकात्मक लिंक को हटाने के लिए, rmdir कमांड का उपयोग करें।


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

2
यदि आप किसी अन्य बैच या कमांड लाइन से कॉल करना चाहते हैं, तो आप इस तरह कॉल कर सकते हैं: प्रारंभ / d% TEMP% \\ Server \ Soft \ WP15 \ install.bat
jameslr

2

मैं हाल ही में विंडोज 7 में एक नेटवर्क शेयर ड्राइव पर एक बैच फ़ाइल के साथ काम कर रहा था।

मेरे लिए काम करने का एक और तरीका था कि मैं सर्वर को विंडोज एक्सप्लोरर: टूल्स -> मैप नेटवर्क ड्राइव के माध्यम से ड्राइव पर मैप करूं। इसे एक ड्राइव लेटर और फोल्डर पाथ टू योर सेवर को दें। चूंकि मैं नेटवर्क शेयर के साथ काम करता हूं, इसलिए अक्सर मैपिंग करने से यह और अधिक सुविधाजनक हो जाता है, और यह हल हो गया "UNC पथ समर्थित नहीं हैं" त्रुटि।


2

मेरी स्थिति थोड़ी अलग है। मैं आंतरिक व्यावसायिक अनुप्रयोगों के नवीनतम संस्करण को वितरित करने के लिए स्टार्टअप पर बैच फ़ाइल चला रहा हूं।

इस स्थिति में मैं निम्न स्ट्रिंग के साथ विंडोज रजिस्ट्री रन कुंजी का उपयोग कर रहा हूं

cmd /c copy \\serverName\SharedFolder\startup7.bat %USERPROFILE% & %USERPROFILE%\startup7.bat

यह सही क्रम में स्टार्टअप पर दो कमांड चलाता है। पहले बैच फ़ाइल को स्थानीय रूप से निर्देशिका में कॉपी करने पर उपयोगकर्ता के पास अनुमति है। फिर उसी बैच फ़ाइल को निष्पादित करना। मैं एक स्थानीय निर्देशिका c: \ आंतरिक एप बना सकता हूं और नेटवर्क से सभी फाइलों को कॉपी कर सकता हूं।

मूल पोस्टर के प्रश्न को हल करने में शायद बहुत देर हो चुकी है लेकिन यह किसी और की मदद कर सकता है।


1

यह वह RegKey है जिसका मैंने उपयोग किया था:

Windows Registry Editor Version 5.00

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

0

मेरे env windows10 2019 lts संस्करण और मैं इस दो बायनेरी डेटा को जोड़ता हूं, इस त्रुटि को ठीक करता हूं

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command ProcessorDisableUNCCheck मान 1 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor DisableUNCCheck मान 1


0

यह एक बहुत पुराना धागा है, लेकिन मैं अभी भी विंडोज 7 का उपयोग करता हूं। :-)

एक बिंदु यह है कि किसी ने भी ध्यान नहीं दिया है, जो शायद विंडोज 10 उपयोगकर्ताओं को भी मदद करेगा।

यदि कमांड एक्सटेंशन सक्षम हैं, तो PUSHD कमांड सामान्य ड्राइव अक्षर और पथ के अलावा नेटवर्क पथ को स्वीकार करता है।

यदि आप PUSHD का उपयोग करने का इरादा रखते हैं, तो स्पष्ट और सरलतम उत्तर बैच स्क्रिप्ट में कमांड एक्सटेंशन को सक्षम करने के लिए हो सकता है। बहुत कम से कम, यह एक नेटवर्क पथ PUSHD wqith का उपयोग करने में आने वाली समस्याओं को कम करने के लिए चाहिए।


-1

विंडोज रजिस्ट्रियों का संपादन करना इसके लायक नहीं है और Map network driveनेटवर्क शेयर को सुरक्षित, उपयोग और लोड करना नहीं है जैसे कि यह आपके किसी स्थानीय ड्राइव से लोड किया गया हो।

यहाँ छवि विवरण दर्ज करें


1
यह काई के जवाब से कैसे अलग है ?
कुछ

मैंने इसे नोट नहीं किया tbh, शायद स्क्रीनशॉट एक हजार शब्दों के लायक हैं जो एक अंतर बनाते हैं?
अधम सबरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.