标题: [文本处理] [已解决]批处理如何去除txt文件名里面的标点符号等? [打印本页]
作者: fanfande 时间: 2010-6-23 00:02 标题: [已解决]批处理如何去除txt文件名里面的标点符号等?
有一批txt放在一个文件夹里面,一些txt命名形式不规范, 很多夹杂标点符号,要么是特殊字符,要么标题太长 ,为这个问题 ,伤透脑筋了 ,
请问如何去除txt文件名里面的标点符号,特殊字符,并且能限制文件名的长度呢?
形如:
【申明】我们:心中最美丽的人就是他,发生在2005年.txt
这样的标题,很难收拾
有【】有:有, 且长度过长 !
谢谢大家 !
[ 本帖最后由 fanfande 于 2010-6-28 09:38 编辑 ]
作者: zqz0012005 时间: 2010-6-23 00:11
1、你认为哪些是特殊字符,请列举出来
2、长度为多少算“过长”?
3、整理之后如果名字重复怎么处理?
作者: fanfande 时间: 2010-6-23 07:53 标题: 你好,zqz0012005,这么晚甚为感动
你好,zqz0012005,这么晚甚为感动
①特殊字符主要集中在这几个括号上 : 【 】[ ] ()
②标点符号全部删除
③长度约定在25个汉字里面,多余删除
④整理之后确实有重复名字的文件,跳过就可以,极少会出现这样的情况
谢谢 ! zqz0012005 ,谢谢 www.bathome.net
作者: Seter 时间: 2010-6-23 07:57
LZ你觉得改成短文件名如何
作者: fanfande 时间: 2010-6-23 21:59
下班归来 , 回楼上De Le Te.
短文件名只要符合
①特殊字符主要集中在这几个括号上 : 【 】[ ] ()
②标点符号全部删除
③长度约定在25个汉字里面,多余删除
④整理之后确实有重复名字的文件,跳过就可以,极少会出现这样的情况
这几个条件即可
新人初到,谢谢 !
作者: fanfande 时间: 2010-6-25 08:57
版主,技术组员 快点帮帮忙啊!
作者: sgaizxt001 时间: 2010-6-26 08:38
测试文本名字:- 【申明】我们心[中]最美丽的(人) 就是他,发生在2005年123456789123456789.txt
复制代码
修改后的名字:- 申明我们心中最美丽的人 就是他,发生在2005.txt
复制代码
代码- @echo off
- setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- set name=%%~na
- for %%b in (【 】 ^( ^) [ ]) do (
- set name=!name:%%b=!
- )
- call ren "%%~nxa" "!name:~0,25!.txt"
- )
- endlocal
复制代码
没有考虑修改后名字相同的情况
[ 本帖最后由 sgaizxt001 于 2010-6-26 08:43 编辑 ]
作者: fanfande 时间: 2010-6-26 09:57
你好,试验下来总的还可以
就是还有2个全角的标点无法清除 !
!?
这2个,我把他加后面,仍然不行 !
谢谢!
作者: sgaizxt001 时间: 2010-6-26 20:21
- @echo off
- setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- set name=%%~na
- for %%b in (【 】 ^( ^) [ ] ! ?) do (
- set name=!name:%%b=!
- )
- call ren "%%~nxa" "!name:~0,25!.txt"
- )
- endlocal
复制代码
刚开始你没说有这两个啊。你加后面不行有可能是没空格隔开。
作者: fanfande 时间: 2010-6-28 01:34
3q,测试下来基本上都能满足需求
作者: sgaizxt001 时间: 2010-6-28 02:14
给标题加个已解决。让我混点分
~_~
作者: fanfande 时间: 2010-6-28 09:39
(已解决)批处理如何去除txt文件名里面的标点符号等?
是这样的吗
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |