एक तरीका मैं सोच सकता हूं कि आंशिक रास्तों को संग्रहीत करने के लिए अन्य पर्यावरण चर का उपयोग करना है; उदाहरण के लिए, यदि आपके पास है
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1;
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2;
तो आप इस तरह के रूप में एक नया वातावरण चर बना सकते हैं
SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
जिसके बाद आपके मूल रास्ते बन जाते हैं
%P1%\subdir1;
%P1%\subdir2;
संपादित करें: एक अन्य विकल्प एक bin
निर्देशिका बनाना .bat
है जो उपयुक्त .exe
फाइलों को इंगित करने वाली फ़ाइलों को रखती है ।
EDIT 2: एक अन्य उत्तर में बेन वोइगट की टिप्पणी का उल्लेख है कि सुझाव के अनुसार अन्य पर्यावरण चर का उपयोग करने से शायद उनकी लंबाई कम न हो %PATH%
क्योंकि वे संग्रहीत होने से पहले विस्तारित हो जाएंगे। यह सच हो सकता है और मैंने इसके लिए परीक्षण नहीं किया है। एक अन्य विकल्प हालांकि लंबी निर्देशिका नामों के लिए 8dot3 रूपों का उपयोग करना है, उदाहरण के C:\Program Files
लिए आम तौर पर इसके बराबर है C:\PROGRA~1
। आप dir /x
छोटे नामों को देखने के लिए उपयोग कर सकते हैं ।
EDIT 3: यह सरल परीक्षण मुझे विश्वास दिलाता है कि बेन वोइग्ट सही है।
set test1=hello
set test2=%test1%hello
set test1=bye
echo %test2%
इसके अंत में, आप आउटपुट को hellohello
इसके बजाय देखते हैं byehello
।
EDIT 4: यदि आप कुछ निश्चित रास्तों को खत्म करने के लिए बैच फ़ाइलों का उपयोग करने का निर्णय लेते हैं %PATH%
, तो आप इस बात से चिंतित हो सकते हैं कि आपके बैच फ़ाइल से तर्कों को पारित करने के लिए कैसे आपके निष्पादन योग्य हो जैसे कि प्रक्रिया पारदर्शी है (यानी, आपको कोई अंतर नहीं दिखाई देगा। बैच फ़ाइल को कॉल करने और निष्पादन योग्य को कॉल करने के बीच)। मुझे बैच फ़ाइलों को लिखने का पूरा अनुभव नहीं है, लेकिन यह ठीक काम करता है।
@echo off
rem This batch file points to an executable of the same name
rem that is located in another directory. Specify the directory
rem here:
set actualdir=c:\this_is\an_example_path
rem You do not need to change anything that follows.
set actualfile=%0
set args=%1
:beginloop
if "%1" == "" goto endloop
shift
set args=%args% %1
goto beginloop
:endloop
%actualdir%\%actualfile% %args%
एक सामान्य नियम के रूप में, आपको इंटरनेट से बैच फ़ाइलों को चलाने के बारे में सावधान रहना चाहिए, क्योंकि आप बैच फ़ाइलों के साथ सभी प्रकार की चीजें कर सकते हैं जैसे कि आपकी हार्ड ड्राइव को प्रारूपित करना। यदि आपको ऊपर दिए गए कोड पर भरोसा नहीं है (जो मैंने लिखा है), तो आप लाइन को बदलकर इसका परीक्षण कर सकते हैं
%actualdir%\%actualfile% %args%
साथ में
echo %actualdir%\%actualfile% %args%
आदर्श रूप से आपको यह पता होना चाहिए कि इसे चलाने से पहले आपको हर पंक्ति क्या होती है।