batch file - गैर-कार्यशील बैच फ़ाइल को डीबग करना या इनो सेटअप इंस्टॉलर से निष्पादित कमांड



batch-file inno-setup (1)

मैं विंडोज 10 पर एक सेवा के रूप में इनको सेटअप का उपयोग करके कमांड लाइन के माध्यम से टॉमकैट स्थापित करने की कोशिश कर रहा हूं, लेकिन मैं समस्याओं में चल रहा हूं वर्तमान में यह मेरा सिंटैक्स है।

[Run] 
Filename: net.exe; Flags: runascurrentuser; parameters: "user elt_user TrackFox38# /add"

; installs tomcat makes it run as a service NOTE THAT IN INNO THIS IS A SINGLE LINE
Filename: {src}\..\apache-tomcat-7.0.69\bin\service.bat; Flags: runascurrentuser; parameters: "tomcat7 //IS//Tomcat7 --DisplayName='Apache_Tomcat_7' ^ --Install='C:\Program Files\Tomcat\bin\tomcat7.exe' --Jvm=auto ^ --StartMode=jvm --StopMode=jvm ^ --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^ --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop"

अजीब बात यह है कि यह तब काम करता है जब मैं इसे मैन्युअल रूप से कमांड लाइन में पेस्ट करता हूं। पहले तो मुझे लगा कि यह एक अनुमति मुद्दा है, लेकिन यह तथ्य कि net.exe कमांड काम करता है और टॉमकैट उस प्रश्न में कॉल नहीं करता है। इसके अलावा मेरे पास व्यवस्थापक के लिए आवश्यक विशेषाधिकार हैं और एप्लिकेशन को इंस्टॉलर को शुरू करने के लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता है, इसलिए मुझे नहीं लगता कि इसका उपयोगकर्ता मुद्दा है। मैं इनो सेटअप में नया हूँ और यहाँ थोड़ा अटका हुआ हूँ।

डिबग आउटपुट:

[09:18:54.770] Filename: C:\program\Output\..\apache-tomcat-   7.0.69\bin\service.bat 
[09:18:54.771] Parameters: tomcat7 //IS//Tomcat7 --DisplayName='Apache_Tomcat_7' ^ --Install='C:\Program Files\Tomcat\bin\tomcat7.exe' --Jvm=auto ^ --StartMode=jvm --StopMode=jvm ^ --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start ^ --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop 
[09:18:54.867] Process exit code: 0

जब आप एक बैच फ़ाइल (या किसी कमांड) को निष्पादित करते हैं, तो इसके परिणाम (या त्रुटियां) या तो बिल्कुल भी दिखाई नहीं देते हैं (विशेषकर जब runhidden ध्वज का उपयोग किया जाता है) या तुरंत गायब हो जाता है कि आप उन्हें नहीं पढ़ सकते हैं।

उस स्थिति में, कमांड को स्पष्ट रूप से cmd.exe माध्यम से चलाएं (इनो सेटअप बैच फ़ाइलों को चलाने के दौरान अपने आप ही निहित है), लेकिन इस बार अधिक सामान्य /C स्विच के बजाय /K स्विच के /C/K स्विच यह सुनिश्चित करता है कि कंसोल विंडो अपने आप बंद न हो।

इसलिए इसके बजाय:

[Run] 
Filename: {app}\setup.bat; Parameters: "arguments"

या समकक्ष:

[Run] 
Filename: {cmd}; Parameters: "/C ""{app}\setup.bat"" arguments"

उपयोग:

[Run] 
Filename: {cmd}; Parameters: "/K ""{app}\setup.bat"" arguments"

तब कंसोल विंडो setup.bat बाद रहता है। setup.bat समाप्त हो जाती है और आप अंतिम त्रुटियां देख सकते हैं।

यदि बैच फ़ाइल सामान्य @echo off कमांड के साथ शुरू होती है जो कमांड निष्पादित की जा रही है, तो अस्थायी रूप से rem साथ इस लाइन पर टिप्पणी करने से डीबगिंग में भी मदद मिलेगी।





inno-setup