中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]批处理问题,内容加入txt中
作者:
标题: [已结]批处理问题,内容加入txt中 上一主题 | 下一主题
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『楼 主』:  [已结]批处理问题,内容加入txt中

a.txt内容以下

标题请尽量表意( )、清晰,能大概反映帖子内容
答案:、明确
能大概反映帖子( ),而不要使用诸如"请帮忙
答案:、内容
。。。。。
。。。。。

请求帮助P的写法
要求:把答案写入前边的( )里

[ Last edited by HAT on 2008-11-3 at 19:43 ]

2008-11-2 19:18
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 2 楼』:  


@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n /c:"( )" a.txt') do (
        set /a num=%%i+1
        call :p %%i
        set qus=%%j
        call set qus=!qus:( =(%%ans%%!
        echo !qus!>>ans.txt
)
pause
goto :EOF

:p
for /f "tokens=1* delims=:、" %%a in ('more a.txt +%1 ^| findstr /c:"答案:、"') do (
        set ans=%%b
        goto :EOF
)
goto :EOF
生成的ans.txt为:
标题请尽量表意(明确)、清晰,能大概反映帖子内容
能大概反映帖子(内容),而不要使用诸如"请帮忙
[ Last edited by dikex on 2008-11-3 at 13:50 ]



正在潜水修练的批处理小白
2008-11-2 21:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by dikex at 2008-11-2 09:31 PM:
[code]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n "( )" a.txt') do (
        set /a num=%%i+1
        call :p %%i
        set qus=%%j
        call set  ...

我换了a.txt内容出错了。不知那里的事。
a.txt内容
第1题:转向轮摇摆的故障大部分是转向器和传动机构( )、连接松动等原因引起的,
答案:、间隙过大
第2题:以总成解体清洗、检查、调整为中心的保养称为( )保养。
答案:、三级
第3题:根据GB5768—1999(道路交通标志和标线)的规定,交通标志分为( )大类。
答案:、两
第4题:蓄电池在充电时,其内部的化学反应将外接电源的( )转变为化学能储存起来。
答案:、电能
第5题:水冷型增压中冷可将进气温度冷至( )左右,
答案:、90℃
第6题:( )将发动机的动力传递给驱动车轮,
答案:、传动系
第7题:在制动过程中,当车轮抱死滑移时,车轮与路面的( )将完全消失。

P处理后只有这样的答案
第4题:蓄电池在充电时,其内部的化学反应将外接电源的(电能)转变为化学能储存起来。

什么123-567都没有了?

2008-11-3 13:27
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 4 楼』:  

因为括号的问题,一些是全角,一些是半角
顶楼的是半角的,我就按半角的写了
用记事本的替换把“( )”全部替换为“( )”就可以了,改代码太麻烦……
注意括号中必须有一个空格

P.S. 上面的代码调整了一点点,只是查找时精确一点,无啥影响

[ Last edited by dikex on 2008-11-3 at 13:55 ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 sea1112 分数: +2  时间:2008-11-3 18:21




正在潜水修练的批处理小白
2008-11-3 13:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 5 楼』:  

好,明白了,谢谢,给你加分

2008-11-3 18:21
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复

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


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



论坛跳转: