2017-10-16 183 views
0

我有一個bat腳本,它將一個字符串作爲命令行參數來確定要複製哪些配置文件。蝙蝠代碼對於變量賦值來說非常簡單(下面解釋),並且它可以像預期的那樣工作,當我自己運行它時可以使用任何命令行參數。在通過Iexpress創建的exe文件中使用命令行參數

@ECHO OFF 
setlocal enabledelayedexpansion 
set var=%1% 
if "%var%" == "" (
    echo Argument missing 
    EXIT 1 
) 

問題是當我嘗試使用IExpress程序創建使用該bat文件作爲安裝程序的自解壓壓縮文件。我一直無法弄清楚如何指示給予可執行文件的命令行參數應該傳遞給安裝程序(bat腳本)。從本質上講,我希望能夠運行:

myiexpressexecutable.exe arg1 
從Windows命令行

,並有蝙蝠安裝程序分配「變種」到任何的「ARG1」的值。

我不確定是否僅僅是我不知道正確的語法,或者IExpress不允許這樣做。我試着在IExpress嚮導既設置安裝程序:

cmd.exe /c zabbix_install.bat %1 

cmd.exe /c zabbix_install.bat %* 

在這兩種情況下,如果我嘗試將參數傳遞到生成的可執行文件,我得到的消息「命令行操作語法錯誤,鍵入/?for幫助「。當我沒有參數傳遞時,底層bat腳本會運行,但會將%1或%*視爲文字字符串「%1」或「%*」。

當我在IExpress程序設置安裝程序只是:

cmd.exe /c zabbix_install.bat 

我得到同樣的「命令行操作的語法錯誤」的消息時,我包括可執行的命令行參數。當我運行這個沒有任何參數的exe時,底層的批處理腳本會失敗,因爲var是一個空字符串。

任何人都可以幫助我找出我在做這個exe的安裝程序設置錯誤嗎?或者是否有人知道IExpress是否僅僅不能創建帶有命令行參數的exes?

感謝

回答

0

如果使用

myiexpressexecutable.exe /? 

它會告訴你有關參數的一些信息。 在IExpress程序設定程序

cmd.exe /c zabbix_install.bat 

,然後用類似的參數運行已編譯的文件:

myiexpressexecutable.exe /c:" cmd.exe /c zabbix_install.bat arg1" 

通知的報價和CMD.EXE的開始之間的間隔。文檔說它應該像這樣運行,但它可能不正確。嘗試沒有空間。

相關問題