[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 2# Batcher
先谢谢管理员,我也正需要这样的批处理。
求修改
1、从粘贴板获取金额,运行后,再输出大写金额到粘贴板。
2、能识别千分符。
谢谢了。
  1. :: 人民币大小写互转程序 R3
  2. :: qzwqzw http://bbs.cn-dos.net
  3. :: 2007-01-03 11:15
  4. :: 出处:http://www.cn-dos.net/forum/viewthread.php?tid=26288
  5. @echo off
  6. setlocal EnableDelayedExpansion
  7. for /l %%i in (1,1,100) do (
  8.     set /a numin=!random!*50001-50000000
  9.     set numin=!numin:~0,-2!.!numin:~-2!
  10.     set in=!numin!
  11.     call :Num2RMB
  12.     set in=!out!
  13.     call :RMB2Num
  14.     echo.%%i [!numin!:!in!:!out!]
  15.     if !numin! neq !out! set /p=--- Invalid ---
  16.     set out=
  17. )
  18. if "%~0"=="%~f0" pause
  19. endlocal
  20. goto :eof
  21. :Num2RMB
  22. setlocal
  23. set num=%in%
  24. set num=0%num%
  25. for /f "tokens=1,2,* delims=." %%f in ("%num%") do (
  26.     set num2=%%g00
  27.     set num=%%f!num2:~0,2!
  28.     if not "%%h"=="" goto :eof
  29. )
  30. :del_pre0
  31. if "%num:~0,1%"=="0" (
  32.     set num=%num:~1%
  33.     goto del_pre0
  34. )
  35. :checknum
  36. set num=%num:,=%
  37. set /a num2=num+0
  38. if not "%num%"=="%num2%" goto :eof
  39. if %num% geq 1000000000000 goto :eof
  40. if %num% leq 0 goto :eof
  41. set tbl1=零壹贰叁肆伍陆柒捌玖
  42. set tbl2=分角元拾佰仟万拾佰仟亿拾佰仟
  43. :n2r_loop
  44. call set rmb=%%tbl1:~%num:~-1,1%,1%%%%tbl2:~%bit%,1%%%rmb%
  45. set /a bit+=1
  46. set num=%num:~0,-1%
  47. if not "%num%"=="" goto n2r_loop
  48. set rmb=%rmb:零拾=零%
  49. set rmb=%rmb:零佰=零%
  50. set rmb=%rmb:零仟=零%
  51. set rmb=%rmb:零零=零%
  52. set rmb=%rmb:零零=零%
  53. set rmb=%rmb:零元=元零%
  54. set rmb=%rmb:零万=万零%
  55. set rmb=%rmb:零亿=亿零%
  56. set rmb=%rmb:零零=零%
  57. set rmb=%rmb:零分=零%
  58. set rmb=%rmb:零角=零%
  59. set rmb=%rmb:角零=角%
  60. set rmb=%rmb:零零=整%
  61. endlocal & set out=%rmb%
  62. goto :eof
  63. ::Num2RMB
  64. :RMB2Num
  65. setlocal
  66. set rmb=%in%
  67. set rmb=%rmb:零=%
  68. set rmb=%rmb:整=%
  69. set tbl1=零壹贰叁肆伍陆柒捌玖
  70. set tbl2=分角元拾佰仟万拾佰仟亿拾佰仟
  71. for /l %%i in (1,1,9) do call set rmb%%tbl1:~%%i,1%%=%%i
  72. :r2n_loop
  73. if "%tbl2:~0,1%"=="%rmb:~-1,1%" (
  74.     set rmb=!rmb:~0,-1!
  75.     call set tmp=%%rmb!rmb:~-1,1!%%
  76.     if not "!tmp!"=="" (
  77.         set num=!tmp!!num!
  78.         set rmb=!rmb:~0,-1!
  79.     ) else (
  80.         set num=0!num!
  81.     )
  82. ) else (
  83.     set num=0!num!
  84. )
  85. set tbl2=%tbl2:~1%
  86. if not "%rmb%"=="" if not "%tbl2%"=="" goto r2n_loop
  87. set num=%num:~0,-2%.%num:~-2%
  88. endlocal & set out=%num%
  89. goto :eof
  90. ::RMB2Num
复制代码

TOP

回复 8# smss


    求修改
1、从粘贴板获取金额,运行后,再输出大写金额到粘贴板。
2、能识别千分符。

TOP

本帖最后由 lxf0356 于 2019-4-29 15:12 编辑
迷你版
smss 发表于 2019-4-19 15:30

借用你的代码,修改了一下,搞定了

TOP

返回列表