在我的NSIS腳本中,我有以下幾行(沒有將第一行變成代碼塊,因爲它太長,看起來不好,因爲1行):非常長的參數列表被下一行切斷的NSIS執行命令
Exec'「$ BINDIR \ SubscriberACD.exe」// IS // SubscriberACD --Install =「$ BINDIR \ SubscriberACD.exe」--Description =「Subscriber service with Apache Commons Daemon」--Jvm =「$ JVMDIR \ jvm.dll」--Classpath =「$ CLASSESDIR \ SubscriberACD.jar; $ CLASSESDIR \ jeromq-0.3.5.jar; $ CLASSESDIR \ jackson-databind-2.6.3.jar; $ CLASSESDIR \ jackson-核 - 2.6.3.jar; $ CLASSESDIR \傑克遜 - 註解-2.6.0.jar; $ CLASSESDIR \管理核心-util的-4.1.2.jar; $ CLASSESDIR \管理測量-4.1.2.jar; $ CLASSESDIR \管理測量檢查點作家-1.0.jar; $ CLASSESDIR \ JNA-4.2.2.jar; $ CLASSESDIR \ JNA平臺-4.2.2.jar 「--StartMode = jvm --StartClass = SubscriberACD.Subscriber --StartMethod = windowsService --StartParams = start --StopMode = jvm --StopClass = SubscriberACD.Subscriber --StopMethod = windowsService --StopParams = stop --LogPath =」 $ INSTDIR \ SubscriberACD \日誌」 --StdOutput =自動--StdError =自動」
Sleep 5000
ExecWait '"sc" config SubscriberACD start=" auto"'
不知怎的,當我看着我的NSIS日誌,我看到以下內容:
執行:「C:\程序文件(x86)\ MyProduct \ SubscriberACD \ bin \ SubscriberACD.exe「// IS SubscriberACD --Install =」C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ bin \ SubscriberACD.exe「--Description = 「Apache Commons Daemon的訂閱服務」--Jvm =「C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ jdk7 \ jre \ bin \ server \ jvm.dll」 --Classpath =「C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ SubscriberACD.jar; C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ jeromq-0.3.5.jar; C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ jackson-databind-2.6.3.jar; C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ jackson-core-2.6.3.jar; C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ jackson-annotations-2.6.0.jar; C:\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ management-core-util-4.1.2.jar; C :\ Program Files(x86)\ MyProduct \ SubscriberACD \ classes \ management-measurement-4.1.2.jar; C:\ PrograExecute:「sc」 config SubscriberACD start = auto
請注意,NSIS如何組合這兩條線並實際覆蓋了第一行的一些內容。任何想法是什麼導致這個? NSIS不喜歡長參數的命令嗎?
最初,我使用ExecWait作爲我的第一個命令。當我看到同樣的問題時,我切換到使用Exec,然後添加一個Sleep5000睡5秒鐘,因爲我認爲這可能是一個計時問題。
我再次檢查了我的引號以確保它們匹配。
我想切換到NSIS 3.0是不是現在的選擇,因爲我們有一個釋放上來快,所以我會盡力的批處理文件選項。順便說一句,我是NSIS的新手,並不確定你的NSIS代碼的目的是什麼。 :) – SpartaSixZero
[這裏](https://sourceforge.net/projects/nsis/files/NSIS%202/2.51/nsis-2.51-strlen_8192.zip/download)是NSIS 2特別版本。我的批處理文件代碼沒有真正的用途,它只是一個示例,顯示如何構建和執行批處理文件... – Anders
我能夠通過減少字符串的總長度來解決此最大字符長度問題。謝謝 – SpartaSixZero