中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:如何批量删除文件名中的半角字符?
作者:
标题: 求助:如何批量删除文件名中的半角字符? 上一主题 | 下一主题
pkto
初级用户





积分 62
发帖 62
注册 2007-7-14
状态 离线
『楼 主』:  求助:如何批量删除文件名中的半角字符?

如题。
有若干文本文件,但文件名中总掺杂若干不规则的半角字符,如:

张^#$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 ]

2009-11-4 09:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Evangel
初级用户





积分 145
发帖 95
注册 2008-4-12
状态 离线
『第 2 楼』:  

总感觉工作量好大!是不是有必要建立一个类似于字典的东西用来提供字符的筛选?提供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;
}


2009-11-4 17:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pkto
初级用户





积分 62
发帖 62
注册 2007-7-14
状态 离线
『第 3 楼』:  

嗯……偶想,可能需要类似fr所特有的正则替换符吧,否则光是建立半角字符,就是一件很繁琐的工作了……

2009-11-5 07:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: