中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 又一道出给新人的文本输出题(加分题):
作者:
标题: 又一道出给新人的文本输出题(加分题): 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『楼 主』:  又一道出给新人的文本输出题(加分题):

有a.txt内容如下:
; 1 cn-dos
; 2 cn-dos
; 3 cn-dos
; 4 cn-dos
; 5 cn-dos
; 6 cn-dos
; 7 cn-dos
; 8 cn-dos
; 9 cn-dos
; 10 cn-dos
; 11 cn-dos
; 12 cn-dos
; 13 cn-dos
; 14 cn-dos
; 15 cn-dos
; 16 cn-dos
; 17 cn-dos
; 18 cn-dos
; 19 cn-dos
; 20 cn-dos
要求通过批处理输出为:
;  1 cn-dos
;  2 cn-dos
;  3 cn-dos
;  4 cn-dos
;  5 wwww.cn-dos
;  6 wwww.cn-dos
;  7 wwww.cn-dos
;  8 wwww.cn-dos
;  9 wwww.cn-dos
;  10 wwww.cn-dos
;  11 wwww.cn-dos
;  12 wwww.cn-dos
;  13 wwww.cn-dos
;  14 wwww.cn-dos
;  15 wwww.cn-dos
;  16 cn-dos
;  17 cn-dos
;  18 cn-dos
;  19 cn-dos
;  20 cn-dos
第一个做出来的新人我加5分。

[ Last edited by zw19750516 on 2008-5-21 at 04:02 PM ]



批处理之家新域名:www.bathome.net
2008-5-21 15:49
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 2 楼』:  

@echo off&setlocal enabledelayedexpansion
for /f "eol= delims=" %%a in (a.txt) do (
        set str=%%a
        set/a n+=1
        if !n! geq 5 if !n! leq 15 set str=!str:cn-dos=wwww.cn-dos!
        echo !str!
)
pause


感觉这题只难在 不知道for会默认忽略以分号开头的行。。。

   此帖被 +1 点积分    点击查看详情   
评分人:【 bat-zw 分数: +1  时间:2008-5-21 16:28




心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-5-21 16:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
FQ
社区乞丐





积分 -61
发帖 37
注册 2008-4-19
状态 离线
『第 3 楼』:  


@echo off&setlocal
for /f "eol= tokens=1,2*" %%a in (a.txt) do (
if %%b geq 5 (if %%b leq 15 (echo/%%a %%b www.%%c) else echo/%%a %%b %%c) else echo/%%a %%b %%c
)


   此帖被 +5 点积分      点击查看详情   
评分人:【 bat-zw 分数: +5  时间:2008-5-21 16:28


2008-5-21 16:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by pusofalse at 2008-5-21 16:03:
@echo off&setlocal enabledelayedexpansion
for /f "eol= delims=" %%a in (a.txt) do (
        set str=%%a
        set/a n+=1
        if !n! geq 5 if !n! leq 15 set str=!str:cn-dos=wwww.cn-dos!
        echo !s ...

兄弟跟了我们这么贴,所以这道题对你来说是比较容易的,所以我只加了1分。
PS:兄弟可以去做一下那道排序的题目。

[ Last edited by zw19750516 on 2008-5-21 at 04:39 PM ]



批处理之家新域名:www.bathome.net
2008-5-21 16:38
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  公布我的答案:


@echo off&setlocal enabledelayedexpansion
for /f "delims=;" %%i in (a.txt) do (
    set a=%%i&set /a n+=1
    if !n! geq 5 if !n! leq 15 set a=!a:cn=www.cn!
    echo ; !a!
)
pause>nul
其实这道题目的就是让新手了解for默认会忽略以;号打头的行,也仅难在于此了。



批处理之家新域名:www.bathome.net
2008-5-21 16:46
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-5-21 04:38 PM:

兄弟跟了我们这么贴,所以这道题对你来说是比较容易的,所以我只加了1分。
PS:兄弟可以去做一下那道排序的题目。

[ Last edited by zw19750516 on 2008-5-21 at 04:39 PM ]

我的目的不是为了加分~ ^_^ 以前这种题目对我来说简直是太难,不过来到CN-DOS之后,我也感觉自己成长了呐! 多谢各位前辈。。。
排序题 正在思考中~ 果然排序对我来说还挺难的~



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-5-21 16:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: