标题: [文本处理] 批处理重命名文件如何把阿拉伯数字转换成中文小写数字? [打印本页]
作者: jellyhk 时间: 2012-2-23 11:52 标题: 批处理重命名文件如何把阿拉伯数字转换成中文小写数字?
本帖最后由 pcl_test 于 2017-6-22 17:46 编辑
批处理txt重命名怎么写?
怎样把001,002,003.......099批量重命名为第一章、第二章、第三章......第九十九章,批处理怎么写,谢谢各位了
作者: QIAOXINGXING 时间: 2012-2-23 12:10
刚出的练习题的第九题,能解决你的问题,http://www.bathome.net/thread-15559-1-1.html
下面这个代码凑合能用:- @echo off&setlocal enabledelayedexpansion&cd /d "%~dp0"
- set "nn=0"
- :start
- set /a "nn+=1"
- set "num=00!nn!"
- set "num=!num:~-3!"
-
- set "n="
- set "n4="
- set "n3="
- set "n2="
-
- for /l %%i in (0 1 3) do (set "n= !nn:~%%i,1!!n!")
- rem 数字间加空格并倒序
-
- set "aa=零 一 二 三 四 五 六 七 八 九"
- set "a=-1"
- for %%i in (!aa!) do (
- set /a a+=1
- set "b=%%i"
- call set "n=%%n:!a!=!b!%%"
- )
- rem 阿拉伯数字变为汉字
-
- set "x=0"
- for %%i in (!n!) do (set /a x+=1 & set n!x!=%%i)
-
- if defined n4 (set n=!n4!千!n3!百!n2!十!n1! ) else (
- if defined n3 (set n=!n3!百!n2!十!n1!) else (
- if defined n2 (set n=!n2!十!n1!) else (
- if defined n1 set n=!n1!)))
- rem 判断位数
-
- set "n=!n:零百=零!"
- set "n=!n:零十=零!"
- set "n=!n:十零=十!"
- set "n=!n:零零=零!"
- set "n=!n:零零=零!"
- if "!n2!!n1!"=="零零" set "n=!n:百零=百!"
- if "!n3!!n2!!n1!"=="零零零" set "n=!n:千零=千!"
-
- echo ren !num!.txt 第!n!章.txt>>rename.bat
-
- if "!num!"=="099" pause & exit
- echo ---------------------------------
- goto :start
复制代码
作者: ivor 时间: 2012-2-23 12:11
本帖最后由 ivor 于 2012-2-23 18:30 编辑
- @echo off
- setlocal EnableDelayedExpansion
- set 1=一& set 2=二& set 3=三& set 4=四& set 5=五
- set 6=六& set 7=七& set 8=八& set 9=九
- set count=1000
- :@@
- set /a count += 1
- set num1=%count:~2,1%
- set num2=%count:~3,1%
- if %num1% equ 1 (ren %count:~-3% 第十!%num2%!章) else (if %num1% equ 0 (ren %count:~-3% 第!%num2%!章) else (ren %count:~-3% 第!%num1%!十!%num2%!章))
- pause
- if %count% equ 1099 goto :EOF
- goto :@@
- pause
复制代码
作者: apang 时间: 2012-2-23 13:14
本帖最后由 apang 于 2012-2-23 13:17 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /a-d/b/s 0??.txt') do (
- set "str=%%~ni"&set str=!str:~1!
- for %%b in (1一 2二 3三 4四 5五 6六 7七 8八 9九 0零) do (
- set var=%%b&set m=!var:~,1!&set n=!var:~1,1!
- call set str=%%str:!m!=!n!%%
- )
- set output=!str:~,1!十!str:~1,1!
- set output=!output:零十=零!
- if "!output:~-1!"=="零" set output=!output:~,-1!
- if "!output:~,1!"=="零" set output=!output:~1!
- if "!output:~,2!"=="一十" set output=!output:~1!
- ren "%%i" 第!output!章.txt
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |