Board logo

标题: [文本处理] [已解决]批处理如何去除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

测试文本名字:
  1. 【申明】我们心[中]最美丽的(人)   就是他,发生在2005年123456789123456789.txt
复制代码
修改后的名字:
  1. 申明我们心中最美丽的人   就是他,发生在2005.txt
复制代码
代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.   set name=%%~na
  5.   for %%b in (【 】 ^( ^) [ ]) do (
  6.   set name=!name:%%b=!
  7. )
  8.   call ren "%%~nxa" "!name:~0,25!.txt"
  9. )
  10. endlocal
复制代码
没有考虑修改后名字相同的情况

[ 本帖最后由 sgaizxt001 于 2010-6-26 08:43 编辑 ]
作者: fanfande    时间: 2010-6-26 09:57

你好,试验下来总的还可以
就是还有2个全角的标点无法清除 !

!?

这2个,我把他加后面,仍然不行 !

谢谢!
作者: sgaizxt001    时间: 2010-6-26 20:21

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.   set name=%%~na
  5.   for %%b in (【 】 ^( ^) [ ] ! ?) do (
  6.   set name=!name:%%b=!
  7. )
  8.   call ren "%%~nxa" "!name:~0,25!.txt"
  9. )
  10. 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