楼 主
批处理修改文本高级问题求助
发表于 2007-10-27 14:21 · 中国 福建 三明 电信
初级用户
★★
积分 165 发帖 79 注册 2007-10-27 13:43 18年会员 UID 100924 性别 男
状态 离线
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代码
请高手帮忙实现!
第 2 楼
发表于 2007-10-27 19:56 · 中国 甘肃 天水 电信
金牌会员
★★★★
积分 4,103 发帖 1,744 注册 2006-01-20 13:00 20年会员 UID 49241 性别 男 来自 甘肃.临泽
状态 离线
第 3 楼
发表于 2007-10-27 20:50 · 中国 上海 长宁区 电信
初级用户
★★
积分 184 发帖 73 注册 2007-05-24 18:06 19年会员 UID 89185 性别 男
状态 离线
@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
第 4 楼
发表于 2007-10-28 02:23 · 中国 福建 三明 电信
初级用户
★★
积分 165 发帖 79 注册 2007-10-27 13:43 18年会员 UID 100924 性别 男
状态 离线
第 5 楼
发表于 2007-10-28 12:42 · 中国 福建 三明 电信
初级用户
★★
积分 165 发帖 79 注册 2007-10-27 13:43 18年会员 UID 100924 性别 男
状态 离线
Originally posted by sinbao at 2007-10-27 08:50 PM:
@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 ]
第 6 楼
发表于 2007-10-28 13:39 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493 发帖 2,315 注册 2006-05-01 10:41 20年会员 UID 54766 性别 男 来自 上海
状态 离线
第 7 楼
发表于 2007-10-28 18:25 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 19年会员 UID 59080
状态 离线
第 8 楼
发表于 2007-10-28 21:27 · 中国 福建 三明 电信
初级用户
★★
积分 165 发帖 79 注册 2007-10-27 13:43 18年会员 UID 100924 性别 男
状态 离线
B.txt
I !Love you ("c:\5.txt")
I Love you ("c:\6.txt")
I Love you ("c:\7.txt")
要修改c:\6.txt
第 9 楼
发表于 2007-10-28 22:09 · 中国 上海 闵行区 电信
初级用户
★★
积分 184 发帖 73 注册 2007-05-24 18:06 19年会员 UID 89185 性别 男
状态 离线
首先你要分清楚需求变化的是哪一部分,然后才能在代码上把那一部分反映出来.
第 10 楼
发表于 2007-10-28 23:08 · 中国 福建 三明 电信
初级用户
★★
积分 165 发帖 79 注册 2007-10-27 13:43 18年会员 UID 100924 性别 男
状态 离线
Originally posted by sinbao at 2007-10-28 10:09 PM:
首先你要分清楚需求变化的是哪一部分,然后才能在代码上把那一部分反映出来.
顶楼写得很清楚
而且你实现了
但是
你的这个方法假若B.TXT很大的时候很累
毕竟B.TXT是现成的
所写的BAT中的B.TXT部分应当可以循环调用B.TXT来写入那样就可以节省操作的时间
第 11 楼
发表于 2007-10-28 23:40 · 中国 上海 闵行区 电信
初级用户
★★
积分 184 发帖 73 注册 2007-05-24 18:06 19年会员 UID 89185 性别 男
状态 离线
你的b.txt文件里面有太多的特殊字符,用循环很麻烦或者不可能,建议你用sed或者perl来做这些事情...因为dos毕竟不是搞文本解析的...
第 12 楼
发表于 2007-10-28 23:57 · 中国 福建 三明 电信
初级用户
★★
积分 165 发帖 79 注册 2007-10-27 13:43 18年会员 UID 100924 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正