Board logo

标题: [文本处理] 批处理如何将文件夹名中的中文小写数字改为阿拉伯数字? [打印本页]

作者: 尼古丁vs乙醇    时间: 2016-11-23 11:47     标题: 批处理如何将文件夹名中的中文小写数字改为阿拉伯数字?

本帖最后由 pcl_test 于 2016-11-23 17:31 编辑

如题,比方说一个文件夹里有很多子文件夹,如:第一章XXXX,第二章SSSS。。。。。。第十五章TTTTT。。。。第二十三章YYYYY。。。。
如何将这些文件夹的名称改为:第1章XXXX,第2章SSSS。。。。。。第15章TTTTT。。。。第23章YYYYY。。。。
作者: 尼古丁vs乙醇    时间: 2016-11-23 12:31

拜托,我搜索了好不好,JS脚本我又看不懂,只想用BAT脚本进行改动。

这。。。。。管理员动不动就扣分,连申辩的机会都没有。。。。。。。
作者: pcl_test    时间: 2016-11-23 17:29

本帖最后由 pcl_test 于 2016-11-26 05:47 编辑

批处理的,那么看懂了么,能改动么?
http://www.bathome.net/redirect. ... 40953&ptid=6326
http://www.bathome.net/viewthread.php?tid=34193

再封装一个转换“函数”
  1. @echo off
  2. rem 调用方法call :ch2num 中文小写数字 结果
  3. rem 最大支持九千九百九十九亿九千九百九十九万九千九百九十九
  4. call :ch2num 一亿二千三百四十五万四千三百二十一 result
  5. echo;%result%
  6. pause&exit
  7. :ch2num
  8. set "str=%~1"
  9. set "str=%str: =%"
  10. set str=%str:〇=零%
  11. setlocal enabledelayedexpansion
  12. for %%a in (零0 一1 二2 三3 四4 五5 六6 七7 八8 九9 十10 百100 千1000) do (
  13.     set "n=%%a"&set "#_!n:~,1!=!n:~1!"
  14. )
  15. if "%str%" equ "零" (
  16.     set v=0
  17. ) else (
  18.     set /a s=s1=s2=0
  19.     set str=%str:零=%
  20.     if "!str:~,1!" equ "十" set str=一!str!
  21.     for %%a in (亿 万) do set "str=!str:%%a=%%a !"
  22.     for %%a in (!str!) do (
  23.         set t=%%a
  24.         if "!t:~-1!" equ "亿" (set f=1) else if "!t:~-1!" equ "万" (set f=2)
  25.         if defined f set t=!t:~,-1!
  26.         for %%b in (千 百 十) do (
  27.             if "!t:~-1!" equ "%%b" set t=!t!零
  28.             set "t=!t:%%b=%%b !"
  29.         )
  30.         for %%b in (!t!一) do (set "n=%%b"&call set /a "s!f!+=%%#_!n:~,1!%%*%%#_!n:~-1!%%")
  31.         set "f="
  32.     )
  33.     set /a s+=s2*10000
  34.     if !s1! equ 0 (set v=!s!) else (set /a s+=100000000&set v=!s1!!s:~1!)
  35. )
  36. endlocal&set "%~2=%v%"&goto :eof
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2