标题: 批处理修改文本高级问题求助
[打印本页]
作者: xuehaiwuya
时间: 2007-10-27 14:21
标题: 批处理修改文本高级问题求助
A.txt
abcd.dll
cdfg.exe
dfgrt.dll
fghdghkl.dll
dfegerhgrehgf.exe
...
B.txt
I !Love you ("c:\5.txt")
I Love you ("c:\6.txt")
I Love you ("c:\7.txt")
如何循环生成B1.txt,B2.txt,B3.txt,...
其中B1.txt
I !Love you ("c:\5.txt")
I Love you ("c:\abcd.dll")
I Love you ("c:\7.txt")
B2.txt
I !Love you ("c:\5.txt")
I Love you ("c:\cdfg.exe")
I Love you ("c:\7.txt")
B3.txt
I !Love you ("c:\5.txt")
I Love you ("c:\dfgrt.dll")
I Love you ("c:\7.txt")
....
能用批处理执行这个过程吗?
暂时在本论坛没看到可实现的BAT代码
请高手帮忙实现!
作者: vkill
时间: 2007-10-27 19:56
没有发现什么规律
作者: sinbao
时间: 2007-10-27 20:50
@echo off
setlocal enabledelayedexpansion
set /a count=0
for /f "delims=" %%i in (a.txt) do (
set /a "count+=1"
set file=B!count!.txt
rem echo !count!
echo I ^^!Love you ^("c:\5.txt"^)>!file!
echo I Love you ^("%%i"^)>>!file!
echo I Love you ^("c:\7.txt"^)>>!file!
)
endlocal
goto :EOF
作者: xuehaiwuya
时间: 2007-10-28 02:23
谢谢十楼
作者: xuehaiwuya
时间: 2007-10-28 12:42
Quote: |
Originally posted by sinbao at 2007-10-27 08:50 PM:
[code]@echo off
setlocal enabledelayedexpansion
set /a count=0
for /f "delims=" %%i in (a.txt) do (
set /a "count+=1"
set file=B!count!.txt
rem echo !count!
echo ... |
|
如果A.txt内容很多的话
这样写BAT很累的
echo I ^^!Love you ^("c:\5.txt"^)>!file!
echo I Love you ^("%%i"^)>>!file!
echo I Love you ^("c:\7.txt"^)>>!file!
最好能从B.txt中调用文件内容
能用FOR循环解决吗
有谁能改进代码啊
换句话说
是如何在写一个简单的介质BAT生成十楼所写的BAT
[
Last edited by xuehaiwuya on 2007-10-28 at 12:52 PM ]
作者: fastslz
时间: 2007-10-28 13:39
SED单行脚本快速参考
http://sed.sourceforge.net/sed1line_zh-CN.html
作者: lxmxn
时间: 2007-10-28 18:25
B.txt 中需要修改的是哪一行呢?
作者: xuehaiwuya
时间: 2007-10-28 21:27
B.txt
I !Love you ("c:\5.txt")
I Love you ("c:\6.txt")
I Love you ("c:\7.txt")
要修改c:\6.txt
作者: sinbao
时间: 2007-10-28 22:09
首先你要分清楚需求变化的是哪一部分,然后才能在代码上把那一部分反映出来.
作者: xuehaiwuya
时间: 2007-10-28 23:08
Quote: |
Originally posted by sinbao at 2007-10-28 10:09 PM:
首先你要分清楚需求变化的是哪一部分,然后才能在代码上把那一部分反映出来. |
|
顶楼写得很清楚
而且你实现了
但是
你的这个方法假若B.TXT很大的时候很累
毕竟B.TXT是现成的
所写的BAT中的B.TXT部分应当可以循环调用B.TXT来写入那样就可以节省操作的时间
作者: sinbao
时间: 2007-10-28 23:40
你的b.txt文件里面有太多的特殊字符,用循环很麻烦或者不可能,建议你用sed或者perl来做这些事情...因为dos毕竟不是搞文本解析的...
作者: xuehaiwuya
时间: 2007-10-28 23:57
我想可能的
至少理论上是可能的
问题是怎么来实现