如何計算用戶從鍵盤輸入的推算數字的總和?我嘗試了一個 for 回圈,但沒完沒了。我想不出一個break陳述句。
::@ECHO OFF
setlocal EnableDelayedExpansion
set /p X=
SET /A suma=0
:Loop
FOR %%G IN (%X%) DO (
IF %%G GTR 0 (
SET /A suma=%suma% %%G
)
)
SHIFT
GOTO Loop
:completed
echo %suma%
我想做的是讓程式更加用戶友好,比如 echo somthing,讓用戶知道它應該寫一些東西。我知道這個問題的正確代碼,但是數字作為命令中的引數給出(語法:script.bat parameter1 parameter2 parameter3)。
::@ECHO OFF
SET /A suma=0
:Loop
IF "%1"=="" GOTO completed
FOR %%F IN (%1) DO (
IF %1 GTR 0 (
SET /A suma=%suma% %1
)
)
SHIFT
GOTO Loop
:completed
echo %suma%
請給我關于第一個示例中的中斷陳述句的任何想法,或者我如何修改代碼以從用戶輸入變數中獲取數字而不是作為引數。
謝謝你。
uj5u.com熱心網友回復:
SET /A suma=0
set "X=%*"
if not defined X set /p "X=No parameters detected "
if not defined X ECHO No user-input detected&goto completed
FOR %%G IN (%X%) DO (
IF %%G GTR 0 (
SET /A suma=suma %%G
)
)
:completed
echo %suma%
%*表示命令列尾部。如果沒有尾巴,則要求用戶輸入。如果仍然沒有資料,則發出訊息并顯示結果。
shift將命令列尾部移動一個位置,因此 %2 變為 %1,等等。您沒有提供退出例程的測驗 - 命令列尾部可能是空的,所以您正在使用shift它(它什么都不做)并且回圈。
處理整個for...%%G..串列%X%,所以沒有意義shift/loop- 資料已經被處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531206.html
標籤:批处理文件命令和
上一篇:批處理檔案計算兩個數字
