2014-11-08 129 views
0

我有了用戶輸入一個批處理腳本:批「if」語句,只會如果輸入的文本做一些事情,否則去做些別的事情

set /p serverstart=Starter Path (or leave blank if unknown): 

現在需要採取什麼措施是,如果一個用戶輸入一些東西(任何東西)它會去特定的標籤:

if %serverstart% == [anything] goto %serverstart% 
:%serverstart% 
java -Xmx1024M -Xms1024M -jar %serverstart%.jar nogui 

但只有當用戶輸入的東西。如果用戶離開該領域的空白,該文件需要繼續它的方式:

set /p serverstart=Starter Path (or leave blank if unknown): 
:serverram 
cls 
set /p serverram=Server RAM: 
[enter more code here] 

因此,如果用戶輸入什麼它進入用戶定義的標籤,並啓動%serverstart%的.jar,但如果用戶將該字段留空,它什麼都不做,繼續進行。會:

set /p serverstart=Starter Path (or leave blank if unknown): 
if %serverstart% == "" goto %serverstart% 
goto serverram 
:serverram 
set /p serverram=Server RAM: 

:%serverstart% 
java -Xmx%serverram%M -Xms%serverram%M -jar %serverstart%.jar nogui 

工作?

(只是櫃面你想要的話,這裏是完整的代碼到目前爲止)

@ECHO OFF 
title MineServer Runner 
cls 

:servername 
cls 
if exist ServerFiles\serverconfig.cmd goto startserver 
set /p servername=Server Name: 
echo set servername=%servername%>> ServerFiles\serverconfig.cmd 
call "ServerFiles\serverconfig.cmd" 
title MineServer (%servername%) Runner 
set /p serverstart=Starter Path (or leave blank if unknown): 
:serverram 
cls 
set /p serverram=Server RAM: 
echo set serverram=%serverram%>> ServerFiles\serverconfig.cmd 

:startserver 
cd ServerFiles 
call "serverconfig.cmd" 
java -Xmx%serverram%M -Xms%serverram%M -jar starters\minecraft_server.jar nogui 

回答

1
if defined serverstart goto (wehaveinput) else (goto wedonthaveinput) 

當然你也可以使用if not defined serverstart...也。

的記憶 - set您的變量爲空(set "var=") before套/ p`否則將保持不變,從任何先前值它有

+0

@Stephan:就像你說的那樣,很好的捕捉! – Magoo 2014-11-08 09:47:27

0

我會改過來:

if not "%serverstart%" == "" (
    we have input-code 
) ELSE (
    we have NO input-code 
) 

編輯

+0

這個點不是必需的:'if not'%serverstart%「==」「('會工作_always_。」我現在不是真的什麼時候,但有時候是領先的空白處被修剪「。你有沒有任何證明這一點的例子是點?發佈基於假設的建議不是一個好主意...... – Aacini 2014-11-08 14:58:55

+0

已編輯。目前還沒有一個例子。它有時出現在工作中,我在批處理中做了很多工作,下一次出現時,我會寫下來並回到這裏^^^) – BaBa 2014-11-08 15:18:44

相關問題