中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 22:43
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:如何批量删除文件名中的半角字符? 查看 931 回复 2
楼 主 求助:如何批量删除文件名中的半角字符? 发表于 2009-11-04 09:08 ·  中国 江苏 南京 电信
初级用户
★★
积分 62
发帖 62
注册 2007-07-14 14:39
19年会员
UID 93962
性别 男
状态 离线
如题。
有若干文本文件,但文件名中总掺杂若干不规则的半角字符,如:

张^#$22三.txt
李四@!>11pu.txt
<51m周六.txt
67d王二egr.txt……等,现要求将这些文件名修正为:

张三.txt
李四.txt
周六.txt
王二.txt
……

请教达人,如何实现?

现有一个代码:
@echo off
for %%a in (*.txt) do (
set "str=%%~na"
call set "str=%%str:%%需要替换的字符=%%"
call ren "%%a" "%%str%%.txt"
)

pause

可否在以上代码基础上实现需求?

[ Last edited by pkto on 2009-11-4 at 09:10 ]
2 发表于 2009-11-04 17:48 ·  中国 四川 成都 电信
初级用户
★★
积分 145
发帖 95
注册 2008-04-12 16:29
18年会员
UID 115703
性别 男
状态 离线
总感觉工作量好大!是不是有必要建立一个类似于字典的东西用来提供字符的筛选?提供C语言字典……

#include<stdio.h>
int main()
{
int i=1;
FILE * fp= fopen("d:\\dict.txt","wb");
for(;i<126;i++)
{
fprintf(fp,"%c\r\n",i);
}
return 0;
}

3 发表于 2009-11-05 07:56 ·  中国 江苏 南京 电信
初级用户
★★
积分 62
发帖 62
注册 2007-07-14 14:39
19年会员
UID 93962
性别 男
状态 离线
嗯……偶想,可能需要类似fr所特有的正则替换符吧,否则光是建立半角字符,就是一件很繁琐的工作了……
论坛跳转: