2010-01-04 10 views
19

मैं कोई भी Inno सेटअप स्क्रिप्ट फ़ाइल (.iss) अंदर वातावरण चर को संदर्भित करने के लिए एक रास्ता खोजने की जरूरत है ...क्या कोई इनो सेटअप स्क्रिप्ट में पर्यावरण चर का उपयोग कर सकता है?

मैं एक .iss से पर्यावरण को संशोधित करने के लिए संदर्भ के बहुत सारे मिल गया है, लेकिन पर कैसे करने के लिए वास्तव में इसका इस्तेमाल करें। क्या यह संभव है?

उत्तर

13

Inno सेटअप दस्तावेज में this page के अनुसार, वातावरण चर का मान निम्न सिंटैक्स का उपयोग कर प्राप्त किया जा सकता है: जब में फ़ाइलों के स्रोत स्थान को निर्दिष्ट करने की कोशिश कर रहा

{%name|default} 
+1

मैं करने में असमर्थ हूँ किसी कारण से env चर का उपयोग करें। क्या कोई उदाहरण पोस्ट कर सकता है? मैंने आउटपुट फ़ाइल नाम में {% ओएस} जोड़ा और मैं जो भी वापस प्राप्त करता हूं वह स्ट्रिंग "{% ओएस}" स्ट्रिंग के साथ मूल फ़ाइल नाम है - जो मूल्य मैं पर्यावरण से नहीं चाहता हूं। – Tim

+3

@Tim: यदि आप अपने [कोड] के अंदर एक स्ट्रिंग में चर का उपयोग करना चाहते हैं, तो ExpandConstant ('{% OS}') – panschk

14

मैं एक ही समस्या में पड़ गए [फ़ाइलें] खंड। मैंने एक नया स्थिर परिभाषित करने के लिए GetEnv फ़ंक्शन का उपयोग किया।

#define Qt5 GetEnv('QT5') 
[Files] 
Source: {#Qt5}\bin\Qt5Concurrent.dll; DestDir: {app}; 
+0

का उपयोग करें परिभाषित करने के लिए यह सही तरीका है। {% नाम | डिफ़ॉल्ट} नोटेशन वहां काम नहीं कर रहा है। – pHiL

+0

यह बहुत अच्छा है, धन्यवाद! अब मैं एक डिफ़ॉल्ट मान व्यक्त करने का एक तरीका ढूंढ रहा हूं, लेकिन यह एक अच्छी शुरुआत है। – CJBrew

+0

'' #define Qt5 GetEnv ('QT5') Qt5 #if == "" #define Qt5 "प्रयास करें blah" #endif '' –

-1

यह और भी आसान हो सकता है:

OutputDir={#GetEnv("TEMP")}\ 
+0

एक पूर्वप्रक्रमक मैक्रो है यही कारण है कि। यह संकलन समय पर हल हो गया है! –

-1

चर TEMP तो डिफ़ॉल्ट मान का उपयोग किया जाएगा मौजूद नहीं है - ..\..\distr\))))

OutputDir={#StringChange(GetEnv("TEMP")+"\", StringChange(GetMD5OfString(GetEnv("TEMP")), "d41d8cd98f00b204e9800998ecf8427e", "\"), "..\..\distr\")} 
+0

यह एक प्रीप्रोसेसर मैक्रो है। यह संकलन समय पर हल हो गया है! –