本帖最后由 pcl_test 于 2017-6-22 17:53 编辑
问题已解决, 问题解决代码附在帖子最后. 另外自己加上了对繁体数字的处理.
一个文件夹里有许多使用中文数字的文件名, 例如 第一组 第二组 第三组
有无办法可以把从以数字零开始的文件重命名为 阿拉伯数字
文件夹中不一定会出现某些数字, 例如带有零的文件
批处理的目标是, 对文件名中存在 [零, 一, 二, 三, 四, 五, 六, 七, 八, 九, 十, 十一, 十二 ...] 替换为 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ...]
另外, 也可以单独使用或者结合使用 vbs
例一个文件夹中有如下文件
第一组 张三
第二组 李四
第十二组 王五
需要把这些文件名字改为
第1组 张三
第2组 李四
第12组 王五
------------补充需求------------
感谢帮助十楼Bat1兄以及大家的帮助, 才想到另一些问题.
12楼处提供了 第与组 之间空格的处理办法, 不过还需要组与名字之间需要增加一个空格, 并且不能影响已有空格的文件.
还有一个问题, 批处理中的 set a=!a:十=1! 是把十替换成1, 第十组以后的可以解决, 但是如果遇到第十组的时候怎么办? 成了第一组了.
下面付出10楼的批处理- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- for %%i in ("第一组 张三","第二组 李四","第三组 王五","第十二组 赵六","第二十五组 王八蛋") do (
- echo.>%%i.txt
- )
- echo 已经在当前目录下建立要改名的演示文件
- pause
- echo.
- for /f "tokens=1,2 delims=组" %%i in ('dir /b *.txt') do (set a=%%~ni
- set a=!a: =!
- set a=!a:二十=2!
- set a=!a:一=1!
- set a=!a:二=2!
- set a=!a:三=3!
- set a=!a:四=4!
- set a=!a:五=5!
- set a=!a:六=6!
- set a=!a:七=7!
- set a=!a:八=8!
- set a=!a:九=9!
- set a=!a:十=1!
- ren "%%i组%%j" "!a!%%~xi组%%j"
- )
- pause
复制代码 ------------------------问题解决代码------------------------- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- for %%i in ("一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","拾") do (
- echo.>"第%%i组 张%%i.txt"
- )
- echo 已经在当前目录下建立要改名的演示文件
- pause
- echo.
- for /f "tokens=1,2 delims=组" %%i in ('dir /b *.txt') do (set a=%%~ni
- if "!a:~-1!"=="十" set a=!a:十=10!
- set a=!a: =!
- set a=!a:二十=2!
- set a=!a:一=1!
- set a=!a:二=2!
- set a=!a:三=3!
- set a=!a:四=4!
- set a=!a:五=5!
- set a=!a:六=6!
- set a=!a:七=7!
- set a=!a:八=8!
- set a=!a:九=9!
- set a=!a:十=1!
- if "!a:~-1!"=="拾" set a=!a:拾=10!
- set a=!a:壹=1!
- set a=!a:贰=2!
- set a=!a:叁=3!
- set a=!a:肆=4!
- set a=!a:伍=5!
- set a=!a:陸=6!
- set a=!a:柒=7!
- set a=!a:捌=8!
- set a=!a:玖=9!
- set a=!a:拾=1!
- ren "%%i组%%j" "!a!%%~xi组 %%j"
- )
- pause
复制代码
|