2013-07-19 61 views
2

我有一個小問題批量,我沒有找到解決的辦法! 我正在一個點系統上工作,只需要一個字符串來檢查變量是否爲負數。 這將是這樣的:批量檢查一個變量是否爲

set /p points=10 
set /p price=15 
set /a result=%points%-%price% 
if result < 0 (goto error) else (goto done) 

:error 
echo You have not enough Points ! 

:done 
echo Transaction Successfully Finished ! 

的一點是,我想這取決於一個事實,即定義了錢(或類似的東西)的變量是正面或負面的用戶重定向到一個不同的標籤。

編輯:4年後的今天,感謝其幫助一個貧窮的腳本老兄,現在我正在學習:d

回答

6

我是一個批處理文件noob(但一個有抱負的愛好者!)所以請原諒我,如果我的回答沒有幫助哈哈。

通過在命令行中輸入if /?,你會看到這些比較符:

EQU - equal 
NEQ - not equal 
LSS - less than 
LEQ - less than or equal 
GTR - greater than 
GEQ - greater than or equal 

在這種情況下,我會用這個語法:

if result LSS 0 (goto :error) else (goto :done) 

我希望這有助於!

+0

thx man!真棒! – ratouney

+0

嗨,再次!我有幾分鐘的免費時間,並決定擴大這一點並糾正一些錯誤。這個文件經過測試,似乎工作。如果有任何錯誤,請讓我知道。 http://pastebin.com/Ksv8yZ28 – Cecell

0
if result LSS 0 ... 

或GTR GEQ LEQ EQU NEQ取決於所要求的比較。

+0

你是什麼意思? – ratouney

+0

我的意思是不是'如果結果<0(goto error)else(goto done)'試着用'替換它'如果結果LSS 0(goto error)else(goto done)''LSS'意味着LESS THAN。如果你想要大於或等於'GQ',大於或等於''LEQ'小於或等於'EQU',等於或等於'NEQ',則使用'GTR'。 – Magoo