2012-01-02 18 views
13

इनोसेटअप में, रन नामक एक भाग है जो exe, बैच फ़ाइल और एमएसआई निष्पादित करेगा। हम इस रन के लिए कमांड लाइन पैरामीटर भी दे सकते हैं।एनएसआईएस स्क्रिप्ट में एक्सई फाइल कैसे चलाएं?

[Run] 
Filename: "{app}\msdirent.exe "; 
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\NETCFSetupv2.msi""" ; Check:ShouldInstallComCtlUpdate ; 

लेकिन NSISS स्क्रिप्ट में, कैसे मेरे exe चलाने के लिए है और यह भी मैं चिंतित exe करने के लिए आदेश पंक्ति तर्क प्रदान करने के लिए है:

मैं InnoSetup नमूना प्रदान?

उत्तर

12

संस्थापक को msdirent.exe जोड़ने के लिए निम्न कमांड

Exec "$APPS\msdirent.exe" 

कमांड लाइन args के लिए,

Exec "$APPS\msdirent.exe 1" 

प्रयास करें,

SetOutPath "$APPS" 
File "localpath\msdirent.exe" 

Exec "$APPS\msdirent.exe 1" 
+1

@ Sivakg: कैसे संस्थापक में है कि msdirent.exe पैक करने के लिए? – karthik

+0

@ शिवकग: आपके उत्तर के लिए +1 – karthik

+0

आपको इन पथों को सही ढंग से उद्धृत करने की आवश्यकता है, एनएसआईएस मैनुअल या उदाहरणों के लिए मेरा जवाब देखें! – Anders

16

आप 3 NSIS instructions है कि एक शुरू कर सकते हैं नई प्रक्रिया: Exec, ExecWait और ExecShell (आंतरिक रूप से पहले दो उपयोग CreateProcess और पिछले एक ShellExecute उपयोग करता है)

सभी मामलों SetOutPathworking directory for the child process सेट में।

यह प्राप्त करने के लिए महत्वपूर्ण है के हवाले से सही के बाद से NSIS साथ रिक्त स्थान " के साथ उद्धृत किया जाना चाहिए 3 उद्धरण वर्ण और खिड़कियों पथ है:

ExecWait '"$instdir\myapp.exe"' 
Exec '"$instdir\otherapp.exe" param1 "par am 2" param3' 
+0

@ एंडर्स: आपके उत्तर के लिए धन्यवाद। मैं आपके उत्तर को ऊपर उठाता हूं लेकिन शिवक वह है जो पहले जवाब देता है। – karthik

+0

@ कार्तिक वैसे, उनका वर्तमान उत्तर गलत है, उन Exec की सभी प्रणालियों पर काम नहीं करेगा ... – Anders

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