标题: [文本处理] (已解决)如何避免批处理for命令重复读取数据? [打印本页]
作者: lijinpengying 时间: 2013-7-30 15:44 标题: (已解决)如何避免批处理for命令重复读取数据?
本帖最后由 lijinpengying 于 2013-8-1 11:27 编辑
是这样的,我这里有很多个文本文档,例如a.txt b.txt c.txt ……*.txt
现在我想要把文档里面每一行都加上特殊字符,例如[]
a.txt
123
1234
12345
123456
处理后a.txt
[123]
[1234]
[12345]
[123456]
关键是用很多个文档,我的代码如下:- @echo off&setlocal enabledelayedexpansion
- for %%i in (*.txt) do (
- echo. >%%~ni2%%~xi
- call :ext >>%%~ni2%%~xi
- )
- pause
- :ext
- for /f %%j in ('type *.txt') do (
- echo ^-^[%%j^]^-
- )
复制代码
结果是把每一行都加上了我想要的字符,可是它是重复的,里面有多少个文档,它就有多少行那些字符,比如我现在有四个文本,那么a.txt:
[123]
[1234]
[12345]
[123456]
[123]
[1234]
[12345]
[123456]
[123]
[1234]
[12345]
[123456]
[123]
[1234]
[12345]
[123456]
[123]
[1234]
[12345]
[123456]
各位,请问如何才能避免这样的事情发生了,我只是想要一个就行了,当然如果只处理一个文本很容易,可是我要同时处理多个文本……谢谢大家……
作者: gawk 时间: 2013-7-30 16:04
- @echo off
- for "delims=" %%i in ('dir /b *.txt') do (
- (for /f "usebackq delims=" %%j in ("%%i") do (
- echo,[%%j]
- ))>%%~ni2%%~xi
- )
复制代码
作者: 522235677 时间: 2013-7-30 17:09
- @echo off
- for /r %%a in (*.txt) do (
- for /f %%b in (%%a) do (
- echo [%%b]>>%%~na.log
- )
- del %%a
- )
- for /r %%a in (*.log) do (ren %%a %%~na.txt)
复制代码
作者: CrLf 时间: 2013-7-30 17:19
输出文件的后缀名为 txt 的话建议不要用 for %%i in (*.txt) do,这里会对新增的 txt 遍历
而 type *.txt 的输出内容...你在 cmd 里运行一下就知道了
作者: lijinpengying 时间: 2013-8-1 09:56
回复 4# CrLf
谢谢大大!小子受教了!辛苦了哈!
作者: lijinpengying 时间: 2013-8-1 09:57
回复 3# 522235677
谢谢你!
作者: lijinpengying 时间: 2013-8-1 09:58
回复 2# gawk
久仰您的大名,您能来回答,表示万分感谢!谢谢!
作者: lijinpengying 时间: 2013-8-1 10:04
回复 2# gawk
可能是复制代码错误,试验没有成功……
作者: lijinpengying 时间: 2013-8-1 10:04
回复 6# lijinpengying
您的代码成功了!哦耶!
作者: lijinpengying 时间: 2013-8-1 10:24
回复 3# 522235677
呜呜,还是有问题啊,你把我那个盘符下所有的文本文档都加上了符号……
作者: gawk 时间: 2013-8-1 12:17
回复 8# lijinpengying
具体是怎么不成功呢?请详细描述一下
作者: 522235677 时间: 2013-8-1 16:36
回复 10# lijinpengying
放在要处理的文件夹里,干嘛放根目录呢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |