中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何解决DOS批处理中替换字符的字母大小写问题
作者:
标题: 如何解决DOS批处理中替换字符的字母大小写问题 上一主题 | 下一主题
sparkl
新手上路





积分 12
发帖 5
注册 2008-6-2
状态 离线
『楼 主』:  如何解决DOS批处理中替换字符的字母大小写问题

假设存在C:\test文件夹,下面有很多TXT文件,就算100个吧,有的文件名还有空格, 如1.txt 2.txt 3.txt 3 0 0.txt 等等,现在要把这些文档文件里面的内容 A 替换成 B 经过处理可以当加密用,或者如果B是空的,那就是删除A, 代码如下: @echo off setlocal enabledelayedexpansion set file=c:\test :文件目录 set TYPEFILE=*.txt :文件类型 set /p BEF=输入您须要替换前的字符,按回车结束. :设置变量BEF set /p AFT=输入您须要替换后的字符,按回车结束. :设置变量 set TEMPFILE=%random%.tmp :建立一个随机的临时文件 cls echo. echo ------------Made by Sparklt %date% %time% ------------ echo. echo 您输入的 %BEF% 将会替换成 %AFT% echo. echo. echo. echo. 正在替换.... for /r %file% %%i in (%TYPEFILE%) do ( if exist %TEMPFILE% (del /f /q %TEMPFILE%) for /f "usebackq tokens=*" %%j in ("%%i") do ( set TEM=%%j echo !TEM:%BEF%=%AFT%! >>%TEMPFILE% ) move /y %TEMPFILE% "%%i" ) echo. echo 替换完成 pause endlocal 存在缺陷是替换的字母不分大小写,比如替换的是a,可是文件里面的A也被替换了.希望有高手指点.....感激不尽


2008-6-2 15:00
查看资料  发短消息  网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

貌似没有解决办法。


   此帖被 +1 点积分    点击查看详情   
评分人:【 sparkl 分数: +1  时间:2008-6-3 02:34




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-6-2 16:39
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (653668)  编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 3 楼』:  

介绍一下 4DOS / 4NT / Take Command 的 @replace 变量函数
@REPLACE[string1, string2, text]: Replaces all occurrences of string1 in the text string with string2. For example, %@replace[w,ch,warming] returns the string "charming". The search is case sensitive. Examples: echo %@replace[\,/,"ftp:\\server\etc"] echo %@replace[%=,,,A better, command processor]




DOS倒下了,但永远不死 DOS NEVER DIES ! 投票调查: www.cn-dos.net/forum/viewthread. ... 本人尚未解决的疑难问题: www.cn-dos.net/forum/viewthread. ... www.cn-dos.net/forum/viewthread. ... www.cn-dos.net/forum/viewthread. ...
2008-6-3 00:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
sparkl
新手上路





积分 12
发帖 5
注册 2008-6-2
状态 离线
『第 4 楼』:  感谢2,3楼

楼上是不是要我下个系统增强DOS,---->4NT软件啊? 看来XP自带的DOS是完成不了以上任务了........


2008-6-3 02:33
查看资料  发短消息  网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 5 楼』:  

给你纠正一个概念:WindowsXP 下不存在所谓的自带的 DOS




DOS倒下了,但永远不死 DOS NEVER DIES ! 投票调查: www.cn-dos.net/forum/viewthread. ... 本人尚未解决的疑难问题: www.cn-dos.net/forum/viewthread. ... www.cn-dos.net/forum/viewthread. ... www.cn-dos.net/forum/viewthread. ...
2008-6-3 03:18
查看资料  发短消息  网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

DOSforever兄,貌似4dos/4nt又有了新版本,那就是Take Command,而且依然是商业软件,兄给推荐一下,用哪个版本比较适合? 其实,我以前下载过很多这个东西,但一直没有真正的用过。 最主要的问题,它不完全是一个第三方程序,而是一个第三方的环境,相当于完全不同的shell,它无法无缝的集成到自己的批处理中,需要时调用,不需要时退出。




偶只喜欢回答那些标题和描述都很清晰的帖子! 如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-6-3 07:44
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (653668)  编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 7 楼』:  

哦,是这样的,Take Command 不叫 4DOS / 4NT 的新版本,确切的倒应该说是 4NT / Take Command 是 4DOS 在 Windows 下的继承和延续和扩展。4NT 和 Take Command 是当时在 Windows 下同时并列推出的,从语句使用上来说基本没什么区别,只不过界面上一个和 CMD 一样是字符形式,另一个更加图形化一些(有点象在文本编辑器中写字一样)。 前一段时间 JP Software 推出的新版本有些混乱,在原有保持 4NT / Take Command 的情况下推出了一个新产品:TCI (Tabbed Console Interface),它是在一个窗口下能够开多个命令行标签窗口,就像在多标签浏览器中浏览多个网页一样。但它默认开的还是 CMD 标签窗口,无法使用 JPSoft 丰富的命令行语法。当然也可以进入后再加载 4NT ,就像 4DOS 在 COMMAND 下作为第二层 shell 加载一样。所以我个人不大喜欢这个产品。果然,JP Software 可能也认为这个产品的意义不大,在推出到最后的 2.01 版后就不再继续了。从目前 JP Software 官方网站的介绍来看,它打算是把所有的产品最后都集成到 Take Command 9.0 中,再在此基础上推出两种简化版。从界面上看 Take Command 9.0 和以前的版本有很大的不同,就像把命令行窗口集成到资源管理器中去了,而且可以开多个 Take Command Console 窗口,而不是 CMD 窗口 。可以说 Take Command 9.0 是 JP Software 所有命令行产品的大集成,差不多可以说是终极产品了。 由于目前我还没找到 Take Command 9.0 的破解,所以只能解一下眼馋,目睹一下它的芳容,呵呵呵呵。 目前我使用的是 4NT / Take Command 的 8.02 版,其实就我们普通使用来说版本高低也无所谓,用了高版本也只不过是心理安慰而已,呵呵。另外,Unicode 版的 4NT / Take Command 在重定向处理汉字字符时有问题,这个问题我至今还没完全解决: www.cn-dos.net/forum/viewthrea ... 本来我想和 wl00560 继续讨论这问题的,但有个例子忘了,所以只能暂时搁置起来,等以后遇到再继续讨论。 所以,我至今还保留了一份 4NT 6.01 ASCII 版,以便 8.02 版不能处理时让 6.01 处理。 至于 free 版的 TCC LE 9.0 各项特性怎么样,我还没怎么用过,所以不得而知。 说到 4NT / Take Command 的使用,确实如你所说的完全是另一个环境,但是这个环境是兼容 CMD 的,就像 4DOS 是兼容 COMMAND 一样。我以前和你谈到过这问题: www.cn-dos.net/forum/viewthrea ...『第 6 楼』:
4DOS与传统的COMMAND.COM相比变化确实很大,但它并不是改变了COMMAND.COM原有的语法和参数,而是在它的基础上加以扩充,你也可以完全按照使用COMMAND.COM的习惯来使用它,原来在COMMAND.COM下编写的BATCH可以不加任何修改地在4DOS下运行,但这样一来两者就没有什么区别了,完全不能发挥4DOS的优势和特点。
与此类似,你在 CMD 下编写的 batch 也可以不加修改的在 4NT / Take Command 下运行,但是你不能把 4NT / Take Command 当作 wbat 那样“需要时调用,不需要时退出”。也就是说,你用 4NT / Take Command 语法来编写的 batch 就只能在它环境下运行。其实这个问题并不麻烦,也很好解决。如果你的 batch 就是应用于 CMD 环境下的,那就命名为 .bat 或 .cmd 文件,如果是应用于 4NT / Take Command 环境下的,那就命名为 .btm 文件, 4NT / Take Command 安装时会问你是否要关联 .btm 文件。 有一点要说明的是 4NT / Take Command 相对于 CMD 的兼容比 4DOS 相对于 COMMMAND 的兼容要稍微差那么一点点。不过我是没遇到过。但是这又不能全怪 4NT / Take Command ,请看 JP Software 自己的“辩解”: www.jpsoft.com/ConsoleFAQs.htm
2. Is Take Command completely compatible with the standard Windows CMD.EXE? * It's impossible to be 100% compatible with CMD.EXE, because o (1) Take Command has several thousand additional features, and o (2) CMD.EXE itself is incompatible with other versions of CMD.EXE. * We strive for 99.9% compatibility (generally more than CMD.EXE manages with itself!) . * There are always workarounds for the rare situation where Take Command doesn't execute a batch file in an identical way. * The best answer would be to download a 30-day fully functional trial of 4NT and test it in your own environment.




DOS倒下了,但永远不死 DOS NEVER DIES ! 投票调查: www.cn-dos.net/forum/viewthread. ... 本人尚未解决的疑难问题: www.cn-dos.net/forum/viewthread. ... www.cn-dos.net/forum/viewthread. ... www.cn-dos.net/forum/viewthread. ...
2008-6-3 13:21
查看资料  发短消息  网志   编辑帖子  回复  引用回复
sparkl
新手上路





积分 12
发帖 5
注册 2008-6-2
状态 离线
『第 8 楼』:  烂砖一抛,引出无数金镶玉

非常感谢DOSforever和Climbing的分析.偶现也下了一个8.02版的,但是看帮助都是英语,没办法,只能强啃了,不知道百度上有没有汉化了的帮助


2008-6-3 14:44
查看资料  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: