[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理如何去除txt文件名里面的标点符号等?

有一批txt放在一个文件夹里面,一些txt命名形式不规范, 很多夹杂标点符号,要么是特殊字符,要么标题太长 ,为这个问题 ,伤透脑筋了 ,

请问如何去除txt文件名里面的标点符号,特殊字符,并且能限制文件名的长度呢?

形如:

【申明】我们:心中最美丽的人就是他,发生在2005年.txt

这样的标题,很难收拾
有【】有:有, 且长度过长 !


谢谢大家 !

[ 本帖最后由 fanfande 于 2010-6-28 09:38 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

(已解决)批处理如何去除txt文件名里面的标点符号等?

是这样的吗

TOP

给标题加个已解决。让我混点分
~_~
努力学习,努力挣分

TOP

3q,测试下来基本上都能满足需求

TOP

  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
复制代码
刚开始你没说有这两个啊。你加后面不行有可能是没空格隔开。
1

评分人数

努力学习,努力挣分

TOP

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

!?

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

谢谢!

TOP

测试文本名字:
  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 编辑 ]
努力学习,努力挣分

TOP

版主,技术组员 快点帮帮忙啊!

TOP

下班归来 , 回楼上De Le Te.

短文件名只要符合

①特殊字符主要集中在这几个括号上 : 【  】[  ]  ()

②标点符号全部删除

③长度约定在25个汉字里面,多余删除

④整理之后确实有重复名字的文件,跳过就可以,极少会出现这样的情况

这几个条件即可

新人初到,谢谢 !

TOP

LZ你觉得改成短文件名如何
OrzDEF

TOP

你好,zqz0012005,这么晚甚为感动

你好,zqz0012005,这么晚甚为感动

①特殊字符主要集中在这几个括号上 : 【  】[  ]  ()

②标点符号全部删除

③长度约定在25个汉字里面,多余删除

④整理之后确实有重复名字的文件,跳过就可以,极少会出现这样的情况


谢谢 ! zqz0012005 ,谢谢 www.bathome.net

TOP

1、你认为哪些是特殊字符,请列举出来
2、长度为多少算“过长”?
3、整理之后如果名字重复怎么处理?
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

返回列表