2012-07-16 10 views
12

से कमांड लाइन कमांड निष्पादित करें मैं अपनी पहली एनएसआई स्क्रिप्ट बना रहा हूं और मैं बस सोच रहा हूं कि क्या मैं एनएसआईएस से कमांड लाइन कमांड निष्पादित कर सकता हूं या क्या मुझे बैच फ़ाइल निष्पादित करनी चाहिए? मैं वास्तव में नहीं जानता कि कहां से शुरू करना है और अन्य समान विषय मेरे सिर पर थोड़ा सा चले गए हैं।एनएसआईएस

4.9.1.2 Exec

आदेश

निर्दिष्ट कार्यक्रम निष्पादित और तुरंत जारी रखने के लिए:

+0

[यहाँ का जवाब] (http:

उदाहरण एक फ़ाइल (या एक से अधिक फ़ाइलों) की प्रतिलिपि करने के लिए NSIS आदेश का उपयोग करें: //stackoverflow.com/a/10900198/62576) मदद कर सकता है। यह एक कमांड लाइन ऐप के लिए ठीक काम करता है। –

उत्तर

8

exec आदेश http://nsis.sourceforge.net/Docs/Chapter4.html का उपयोग करें। ध्यान दें कि निर्दिष्ट फ़ाइल लक्ष्य प्रणाली पर मौजूद होनी चाहिए, संकलन प्रणाली नहीं। $OUTDIR कामकाजी निर्देशिका के लिए प्रयोग किया जाता है। त्रुटि ध्वज सेट किया गया है अगर प्रक्रिया लॉन्च नहीं की जा सकी। नोट, यदि कमांड में रिक्त स्थान हो सकते हैं, तो आपको इसे पैरामीटर से डिलीमिट करने के लिए उद्धरणों में रखना चाहिए। उदाहरण: Exec '"$INSTDIR\command.exe" parameters'। यदि आप इसे उद्धरण में नहीं डालते हैं तो यह विंडोज 9एक्स पर या पैरामीटर के बिना काम नहीं करेगा।

Exec '"$INSTDIR\someprogram.exe"' 
Exec '"$INSTDIR\someprogram.exe" some parameters' 
+0

ठीक है, मैं उम्मीद कर रहा था कि .nsi से कमांड लाइन को नियंत्रित करने में सक्षम हो और ऐसा कुछ करें: "copy/b someprogram.exe +," लगता है जैसे मुझे बैच फ़ाइल से ऐसा करने की आवश्यकता होगी। – user1457296

+3

क्या आपने इस 'Exec' cmd/k copy/b ... ''? – zenpoy

10

मैं nsExec प्लगइन को देखने की सलाह दूंगा। मुझे हाल ही में एक ऐसी स्थिति थी जहां मुझे एनएसआईएस लिपि के अंदर से एक सर्वर पिंग करने की आवश्यकता थी, और निम्नलिखित कोड मेरे लिए पूरी तरह से काम करता था।

nsExec::Exec '"C:\Windows\System32\PING.EXE" $URL' 

nsExec का उपयोग करने का लाभ यह है कि यह आपकी स्क्रीन पर डॉस बॉक्स पॉप अप किए बिना कमांड निष्पादित करता है। वापसी मूल्य स्टैक पर धक्का दिया जाता है, और कुछ अलग-अलग तरीके हैं जिन्हें आप प्रोग्राम के आउटपुट तक पहुंच सकते हैं (यदि कोई मौजूद है)।

वहाँ NSIS वेबसाइट है कि मैं मिल सकता है पर प्लगइन के बारे में जानकारी की एक पूरी बहुत कुछ नहीं है, लेकिन नीचे दिए गए लिंक आप सही दिशा में शुरू कर दिया जाना चाहिए:

http://nsis.sourceforge.net/Docs/nsExec/nsExec.txt

संपादित करें:

मैंने देखा है कि आपने विशेष रूप से एक COPY कमांड के बारे में पूछा है जो एक आंतरिक डॉस कमांड है, जिसका अर्थ है कि आप इसे निष्पादित करने में सक्षम नहीं होंगे जैसे मैंने पिंग के साथ किया था। मुझे गलत हो सकता है लेकिन आपको इस तरह के बुनियादी आदेशों को पूरा करने के लिए किसी बाहरी कार्यक्रम का उपयोग करने की आवश्यकता नहीं है। आपको एनएसआईएस कमांड का उपयोग करके अधिकांश आंतरिक आदेशों को दोहराने में सक्षम होना चाहिए। CopyFiles

NSIS Scripting Reference अपने दोस्त है :) (तो ctrl है + च)

+0

कमांड प्रॉम्प्ट प्रदर्शित किए बिना एप्लिकेशन को निष्पादित करने का सही विकल्प –

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