[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理如何把中文数字转换成阿拉伯数字?

自己写的,谁能帮我简化一下?感觉用4个set和call set部分太重复了。
而且这个只能处理一千以下的。要能处理很大的数,该怎么改进。提提意见啊
1.txt的内容随便写几个:
一百零五
一百二十
九十八


  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. for %%i in (零 一 二 三 四 五 六 七 八 九 十) do (
  4. set %%i=!n!
  5. set /a n+=1
  6. set /a n=!n! %% 10
  7. )
  8. for /f %%a in (1.txt) do (
  9. set s=%%a
  10. set s1=!s:~0,1!
  11. set s2=!s:~1,1!
  12. set s3=!s:~2,1!
  13. set s4=!s:~3,1!
  14. call set x1=%%!s1!%%
  15. call set x2=%%!s2!%%
  16. call set x3=%%!s3!%%
  17. call set x4=%%!s4!%%
  18. if "!s3!"=="" set x3=
  19. if "!s2!"=="百" (set x=!x1!!x3!!x4!) else (set x=!x1!!x3!)
  20. echo !x!
  21. )
  22. pause
复制代码

返回列表