2012-12-09 116 views
5

編號希望創建一個運行jar的批處理文件X用戶輸入的次數。我一直在尋找如何處理用戶輸入,但我不完全確定。 在這個循環中,我想增加我發送給jar的參數。Windows批處理文件多次運行jar文件

截至目前,我不知道

  • 操縱變量在for循環,numParam,strParam

所以,當我在命令行中運行這個小bat文件,我得到我能夠做的用戶輸入,但一旦它到達for循環,它吐出來「的命令的語法不正確

到目前爲止,我有以下

@echo off 

echo Welcome, this will run Lab1.jar 
echo Please enter how many times to run the program 
:: Set the amount of times to run from user input 
set /P numToRun = prompt 


set numParam = 10000 
set strParam = 10000 
:: Start looping here while increasing the jar pars 
:: Loop from 0 to numToRun 
for /L %%i in (1 1 %numToRun%) do (
    java -jar Lab1.jar %numParam% %strParam% 

) 
pause 
@echo on 

任何建議將是有益的

編輯: 隨着近年來的變化,它似乎沒有運行我的jar文件。或者至少似乎沒有運行我的測試回聲程序。看來,我的用戶輸入變量沒有被設置爲我所輸入的,它停留在0

回答

1

發生了什麼事是我的最後一個問題是一些與如何變量擴展。這實際上是在回答dreamincode.net:Here

最終代碼:

@echo off 

echo Welcome, this will run Lab1.jar 
:: Set the amount of times to run from user input 
set /P numToRun= Please enter how many times to run the program: 

set /a numParam = 1000 
set /a strParam = 1000 

setlocal enabledelayedexpansion enableextensions 


:: Start looping here while increasing the jar pars 
:: Loop from 0 to numToRun 
for /L %%i in (1 1 %numToRun%) do (
    set /a numParam = !numParam! * 2 
    set /a strParam = !strParam! * 2 
    java -jar Lab1.jar !numParam! !strParam! 

    :: The two lines below are used for testing 
    echo %numParam% !numParam! 
    echo %strParam% !strParam! 
) 

@echo on 
3

如果你讀的文件(在命令行中鍵入help forfor /?),那麼你會看到正確的語法,用於執行FOR循環固定次數。

for /L %%i in (1 1 %numToRun%) do java -jar Lab1.jar %numParam% %strParam% 

如果你想使用多行,那麼你就必須使用行繼續

for /L %%i in (1 1 %numToRun%) do^
    java -jar Lab1.jar %numParam% %strParam% 

或括號

for /L %%i in (1 1 %numToRun%) do (
    java -jar Lab1.jar %numParam% %strParam% 
    REM parentheses are more convenient for multiple commands within the loop 
) 
+0

我已經閱讀了幫助for循環和我試圖複製提供的第一個。 感謝您的回覆。這肯定有助於for循環問題 – Vnge

相關問題