2011-01-25 11 views
8

मेरे पास बैच फ़ाइल है जो मैं विरासत में हूं और मैं 64 बिट विंडोज 7 वातावरण में काम नहीं कर सकता। बैच फ़ाइल जावा स्क्रिप्ट को कॉल करती है, और इसमें दो चर पास होती है। पुराने इस तरह दिखते थे:बैच फ़ाइल में विंडोज 7 32-बिट प्रोग्राम फ़ाइलें पथ

C:\Progra~1\salesf~1.com\ApexDa~2.0\bin\process.bat  C:\Progra~1\*PATH*  *VARIABLE* 

यह 32 बिट एक्सपी पर चलाया गया था जिसमें केवल एक प्रोग्राम फाइलें थीं। मैंने प्रोग्राम फाइल्स x86 के पथ के परिवर्तन को बदलने के बारे में सोचने के हर तरीके से कोशिश की है। मैंने सेट पैथ, सेट एक्सपेपथ,% प्रोग्रामाफाइल (x86) की कोशिश की है, लेकिन वे सभी वापसी निर्दिष्ट पथ नहीं ढूंढ सकते हैं। मुझे यकीन है कि जवाब आसान है, और मुझे पता है कि ऐसा करने के लिए बहुत अधिक रास्ता है, और यह बदल जाएगा, लेकिन इस पल के लिए, मुझे इसे काम करने की ज़रूरत है। कोई मदद, बहुत सराहना की।

+0

क्या आप सुनिश्चित हैं कि विंडोज 64 बिट पर डॉस (/ लघु) पथनाम उपलब्ध हैं? – Christian

+0

@ क्रिस्टियन, उन्हें फ़ाइल सिस्टम ड्राइवर में हार्ड लिंक के रूप में लागू किया गया है। हालांकि इसे अक्षम किया जा सकता है (और कुछ मामलों के लिए होना चाहिए), यह अभी भी डिफ़ॉल्ट रूप से सक्षम है। – Joey

उत्तर

27

आप लिखते हैं, तो

dir /x c:\ 

तो इस निर्देशिका 8.3 प्रारूप में लिस्टिंग को दर्शाता है। Program FilesPROGRA~1 और Program Files (x86) तक फैलता है PROGRA~2 तक फैलता है। तो मुझे लगता है कि आपको PROGRA~2

संपादित करें: मैं मार्क के साथ सहमत हूं कि यह आदर्श नहीं है - यह निर्भर करता है कि आप विरासत स्क्रिप्ट को बदलने में कितने सक्षम हैं। Win7 मशीन पर आपको %ProgramFiles% और %ProgramFiles(x86)% का उपयोग करने में सक्षम होना चाहिए (पिछला '%' नोट करें)।

+0

बहुत बहुत धन्यवाद, यह – KCavon

+1

था आप शायद आपको अधिक सामान्य कोड और इस मूल्य की गणना कर सकते हैं। जैसे % x ("% प्रोग्रामफाइल (x86)%" के लिए लाइनों के साथ कुछ) echo% ~ fsx – John

+1

यह खतरनाक है। ~ 1 और ~ 2 आवश्यक रूप से 'प्रोग्राम फ़ाइलें' या 'प्रोग्राम फ़ाइलें (x86)' पर मैप नहीं करते हैं। यह 99% मशीनों पर काम कर सकता है, लेकिन टिल्ड संक्षिप्त नाम का अर्थ है "प्रोजेरा" से शुरू होने वाला पहला फ़ोल्डर, और "पहले" के लिए कोई अच्छी तरह से परिभाषित अर्थ नहीं है। –

1

निर्यात JAVA_HOME =/cygdrive/सी/Progra ~ 1/जावा/jdk1.7.0_40/

यह मेरे लिए काम किया।

+0

यह केवल एक सिग्विन वातावरण में काम करेगा, बैच स्क्रिप्ट के लिए बैच स्क्रिप्ट –

+0

नहीं .. SET A = B: \ X \ y \ Z का उपयोग करें – Li3ro

संबंधित मुद्दे