2017-05-15 63 views
0

我有一個需要4個命令行輸入的批處理文件。當我在命令提示符下執行批處理文件時,它會顯示幫助消息,要求輸入4個值。運行需要直接從文件夾輸入的批處理文件

當我直接從該文件夾運行此文件時,它會打開cmd並立即關閉。

是否可以修改批處理文件,以便在從文件夾運行時打開cmd並顯示幫助信息。

以下是帶有1個命令輸入的問題的迷你版本。該腳本是一個許可文件生成

@ECHO OFF 
GOTO :continue 

:continue 
SETLOCAL 
IF "%1" == "" GOTO :Help 

::Set the Command Line Options 
SET ARVERSION=%1 

::Create Directory 
SET OUT_PATH=%cd% 

ECHO Initiating Generation... 

if not exist %OUT_PATH% mkdir %OUT_PATH% 

::Create License File - Calling 'Subs' will create the output with actual Version 
Subs ARVERSION %ARVERSION% Input.txt 1>%OUT_PATH%\License.txt 

ECHO Scripts are created @ %OUT_PATH% 
ECHO Generation Completed... 

GOTO :End 

:Help 
ECHO Starting License File Generation... 
ECHO Usage: 
ECHO InstallerScriptGen.bat AR_VERSION 
ECHO AR_VERSION   - Version (3.2 or 4.0 or 4.2) 
ECHO Example : InstallerScriptGen.bat 3.2.2 
ECHO Please Note that input of incorrect values will result in wrong generation. 

:End 
ENDLOCAL 
+0

請參閱'timeout /?' – elzooilogico

+0

請分享一個[mcve]。 – JosefZ

+0

@JosefZ請找到更新的最小示例。 –

回答

1

(由我假設你的意思是「點擊圖標從Windows資源管理器」),「直接從文件夾運行」導致Windows資源管理器中執行的CMD /C <<batchfilename>>相當。當調用/C時,一旦批處理文件結束,CMD退出(並且CMD窗口關閉)。您可以通過使用PAUSE命令(這將導致它等待用戶按任意鍵)或TIMEOUT命令(它將等待指定的數字)結束腳本來強制窗口保持打開時間足夠長以讀取輸出幾秒鐘後繼續,沒有按鍵)。有關更多信息,請參閱SS64對PAUSETIMEOUT命令的幫助。