回复 3# fzp070
那脚本有个小BUG 如果输入 125000的时候会导致脚本以零结尾,且单位不显示!
碰巧我求助的脚本疑难有人帮我解决,我就修善了一下这脚本!帖上完整的可用脚本吧!- @ECHO OFF
- Call,:Cnm 74 30 2 & Title 人民币大写转换
- Echo.请输入人民币的阿拉伯数字:
- Set/p 数字=
- Call,:RMB %数字%
- :RMB
- REM 百度得出中文单位分别是:清净(10的负二十一次方)、虚空、六德、刹那、弹指、瞬息、须臾、逡巡、模糊、漠、渺、埃、尘、沙、纤、微、忽、丝、毫、厘、分、零、壹、贰、叁、肆、伍、陆、柒、捌、玖、分、角、圆、拾、佰、仟、萬、亿、兆、京、垓、秭、穰、沟、涧、正、载、极(10的四十八次方)
- Echo %~1|FindStr "^[0-9]*$">Nul || echo 非法输入!按任意键退出!&&PAUSE>NUL&&EXIT
- Set/a Q=02102452501
- SET RMB检测=
- SET RMB检测=%~1
- SET RMB窗口=
- SET RMB窗口=%~1
- SET 单位=圆
- :RMB位数
- SET RMB窗口=%RMB窗口:~1%
- Set/a RMB位数+=1
- Set/a 窗口长度=%窗口长度%+4
- IF NOT "%RMB窗口%"=="" GOTO,RMB位数
- If %窗口长度% Lss 15 Set 窗口长度=15
- Set/a 窗口长度=%窗口长度%+3
- Call,:Cnm 74 %窗口长度% 3
- ECHO.QQ:%Q%
- ECHO.输入:%~1
- :RMB循环
- SET/a RMB位数-=1
- CALL,:RMB转换 %RMB检测:~0,1% %RMB位数%
- SET RMB检测=%RMB检测:~1%
- IF NOT "%RMB检测%"=="" GOTO,RMB循环
- PAUSE>NUL
- EXIT
- :RMB转换
- IF "%~1"=="0" GOTO,RMB零
- IF "%~1"=="1" SET/P="壹"<NUL
- IF "%~1"=="2" SET/P="贰"<NUL
- IF "%~1"=="3" SET/P="叁"<NUL
- IF "%~1"=="4" SET/P="肆"<NUL
- IF "%~1"=="5" SET/P="伍"<NUL
- IF "%~1"=="6" SET/P="陆"<NUL
- IF "%~1"=="7" SET/P="柒"<NUL
- IF "%~1"=="8" SET/P="捌"<NUL
- IF "%~1"=="9" SET/P="玖"<NUL
- IF "%~2"=="51" SET/P="仟"<NUL
- IF "%~2"=="50" SET/P="佰"<NUL
- IF "%~2"=="49" SET/P="拾"<NUL
- IF "%~2"=="48" SET/P="极"<NUL
- IF "%~2"=="47" SET/P="仟"<NUL
- IF "%~2"=="46" SET/P="佰"<NUL
- IF "%~2"=="45" SET/P="拾"<NUL
- IF "%~2"=="44" SET/P="载"<NUL
- IF "%~2"=="43" SET/P="仟"<NUL
- IF "%~2"=="42" SET/P="佰"<NUL
- IF "%~2"=="41" SET/P="拾"<NUL
- IF "%~2"=="40" SET/P="正"<NUL
- IF "%~2"=="39" SET/P="仟"<NUL
- IF "%~2"=="38" SET/P="佰"<NUL
- IF "%~2"=="37" SET/P="拾"<NUL
- IF "%~2"=="36" SET/P="涧"<NUL
- IF "%~2"=="35" SET/P="仟"<NUL
- IF "%~2"=="34" SET/P="佰"<NUL
- IF "%~2"=="33" SET/P="拾"<NUL
- IF "%~2"=="32" SET/P="沟"<NUL
- IF "%~2"=="31" SET/P="仟"<NUL
- IF "%~2"=="30" SET/P="佰"<NUL
- IF "%~2"=="29" SET/P="拾"<NUL
- IF "%~2"=="28" SET/P="穰"<NUL
- IF "%~2"=="27" SET/P="仟"<NUL
- IF "%~2"=="26" SET/P="佰"<NUL
- IF "%~2"=="25" SET/P="拾"<NUL
- IF "%~2"=="24" SET/P="秭"<NUL
- IF "%~2"=="23" SET/P="仟"<NUL
- IF "%~2"=="22" SET/P="佰"<NUL
- IF "%~2"=="21" SET/P="拾"<NUL
- IF "%~2"=="20" SET/P="垓"<NUL
- IF "%~2"=="19" SET/P="仟"<NUL
- IF "%~2"=="18" SET/P="佰"<NUL
- IF "%~2"=="17" SET/P="拾"<NUL
- IF "%~2"=="16" SET/P="京"<NUL
- IF "%~2"=="15" SET/P="仟"<NUL
- IF "%~2"=="14" SET/P="佰"<NUL
- IF "%~2"=="13" SET/P="拾"<NUL
- IF "%~2"=="12" SET/P="兆"<NUL
- IF "%~2"=="11" SET/P="仟"<NUL
- IF "%~2"=="10" SET/P="佰"<NUL
- IF "%~2"=="9" SET/P="拾"<NUL
- IF "%~2"=="8" SET/P="亿"<NUL
- IF "%~2"=="7" SET/P="仟"<NUL
- IF "%~2"=="6" SET/P="佰"<NUL
- IF "%~2"=="5" SET/P="拾"<NUL
- IF "%~2"=="4" SET/P="萬"<NUL
- IF "%~2"=="3" SET/P="仟"<NUL
- IF "%~2"=="2" SET/P="佰"<NUL
- IF "%~2"=="1" SET/P="拾"<NUL
- IF "%~2"=="0" SET/P="%单位%"<NUL
- SET 零=0
- GOTO,:EOF
- :RMB零
- SET 后零=%RMB检测:~1,1%
- IF "%后零%"=="" SET 零=1
- IF "%~2"=="0" SET/P="%单位%"<NUL
- IF "%~2"=="4" SET/P="萬"<NUL&SET 零=4&GOTO,:EOF
- IF "%~2"=="8" SET/P="亿"<NUL&SET 零=8&GOTO,:EOF
- IF "%~2"=="12" SET/P="兆"<NUL&SET 零=12&GOTO,:EOF
- IF "%~2"=="16" SET/P="京"<NUL&SET 零=16&GOTO,:EOF
- IF "%~2"=="20" SET/P="垓"<NUL&SET 零=20&GOTO,:EOF
- IF "%~2"=="24" SET/P="秭"<NUL&SET 零=24&GOTO,:EOF
- IF "%~2"=="28" SET/P="穰"<NUL&SET 零=28&GOTO,:EOF
- IF "%~2"=="32" SET/P="沟"<NUL&SET 零=32&GOTO,:EOF
- IF "%~2"=="36" SET/P="涧"<NUL&SET 零=36&GOTO,:EOF
- IF "%~2"=="40" SET/P="正"<NUL&SET 零=40&GOTO,:EOF
- IF "%~2"=="44" SET/P="载"<NUL&SET 零=44&GOTO,:EOF
- IF "%~2"=="48" SET/P="极"<NUL&SET 零=48&GOTO,:EOF
- IF "%零%"=="0" ( IF NOT "%后零%"=="0" SET/P="零"<NUL&SET 零=1 )
- GOTO,:EOF
- EXIT
- :CNM
- If Not "%~1"=="" Color %~1
- If Not "%~2"=="" MODE con: COLS=%~2
- If Not "%~3"=="" MODE con: LINES=%~3
- GOTO,:EOF
复制代码 原本还可以再改进一下加上小数点后两位的,角,分 ,,,但现社会都很少用 角和分了,且加上会再次加写判断过程,有点耗时,我也就懒得再后续完善了! |