返回列表 发帖

批处理输入任意字母,计算它们的总和



     a=1,b=2,c=3 . . . z=26,要计算的任意字母由用户输入,计算它们的总和



    如用户输入abcd             那么a+b+c+d=10

[ 本帖最后由 ieutk 于 2008-1-3 22:20 编辑 ]
不大可能的事也许今天实现,根本不可能的事也许明天会实现

@echo off&setlocal enabledelayedexpansion
:main
cls&echo.
set input=
set /p input=  请输入字母:
if not defined input goto main
echo %input%|findstr "^[a-z]*$">nul||goto main
call :ya %input% len
for /l %%a in (0 1 %len%) do call :ie %%a _num
echo.
echo   你输入了 "%input%" ,它们的总和为 "%_num%"
echo.
pause
set _num=0
goto main
:ya
for /f "tokens=1 delims=:" %%a in ('^(echo %1^&echo.^)^|findstr /o ".*"') do set /a %2=%%a-4
goto :eof
:: 在随风发的贴子中看到此方法,现学现用,拿来试下
:ie
for %%b in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
set /a num+=1
if "!input:~%1,1!"=="%%b" set /a %2+=!num!
    )
set num=0
goto :eofCOPY
不大可能的事也许今天实现,根本不可能的事也许明天会实现

TOP

返回列表