中国DOS联盟论坛

中国DOS联盟

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

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

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

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『楼 主』:  又出文本输出加分题了(新手进):

如a.txt:
74x6oe9t0alev
y4y3cjm-2ung8
wvjrz2dauxp42
p-qidvm4f75k7
1111111111111
g5uoqztegt5pe
t-a8qtcfvipky
8545236972344
j-draqyqdxuq0
z6b712dvhnazw
hjiet9gzp6hwz
pmjfrlbuk-hig
sbffbmsrlcw17
l-1m1uqmwqcxl
q_6cxnx_2mylo
i9aceknisqetg
e7e_o76_-clwb
tmnerxm11jrhs
3333333333333
4562345811036
2lip_f01fz18c
uk33iipdgtv_9
bkfo5g-1lvb59
-yn9ds6p-p13s
问题一:写出生成文本a.txt的批处理(模式一样,每行13个随机字符,共20行,纯数字行是因题目要求加的不要生成)
问题二:用批处理找出a.txt中不含数字的行并输出
问题三:用批处理输出a.txt所有的行(但不输出每行的数字),如下:

xoetalev
yycjm-ung
wvjrzdauxp
p-qidvmfk

guoqztegtpe
t-aqtcfvipky

j-draqyqdxuq
zbdvhnazw
hjietgzphwz
pmjfrlbuk-hig
sbffbmsrlcw
l-muqmwqcxl
q_cxnx_mylo
iaceknisqetg
ee_o_-clwb
tmnerxmjrhs


lip_ffzc
ukiipdgtv_
bkfog-lvb
-yndsp-ps
要求:不生成任何其它(除a.txt外)的临时文件。
加分标准:第一个全写出来的加15分
               其它酌情加分


[ Last edited by zw19750516 on 2008-5-24 at 01:26 AM ]



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





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 2 楼』:  

问题一没看懂。



致精致简!
2008-5-24 00:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 3 楼』:  

提议:样本文件中应该再加几行纯数字的行,给问题三增加点难度。



致精致简!
2008-5-24 00:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




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

不输出每行的数字。。。 貌似又要用到字符截取和移位了  感觉效率相当低下~



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




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

随机生成吗?~ 我生成的每一行中都有数字 ,那问题2不就没法做了~



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




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

1
@echo off&setlocal enabledelayedexpansion
set str=1234567890abcdefghijklmnopqrstuvwxyz
:1
set/a n=%random%%%36
call,set var=%%str:~%n%,1%%
set string=%string%%var%
set/a m+=1
if %m% lss 13 goto 1
echo %string%
set m=0
set string=
set/a y+=1
if %y% lss 20 goto 1
pause


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




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




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

2。。。
自己手动修改a.txt 使其中几行没有数字。。- -||
for /f "delims=" %%a in (a.txt) do echo %%a|findstr /v "[0-9]"
pause



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

永远的学习者


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

第二、三题用我的例文就是的



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




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

3

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('findstr /n .* a.txt') do (
        set str=%%a
        set str=!str:*:=!
        set string=
        call :lp
        echo.!string!
)
pause>nul&goto :eof

:lp
if defined str (
        set var=!str:~,1!
        for /l %%a in (0 1 9) do if !var! equ %%a set "var="
        set string=!string!!var!
        set str=!str:~1!
        goto lp
)



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

永远的学习者


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



  Quote:
Originally posted by pusofalse at 2008-5-24 02:38:
2。。。
自己手动修改a.txt 使其中几行没有数字。。- -||
for /f "delims=" %%a in (a.txt) do echo %%a|findstr /v "[0-9]"
pause

效率是大问题,请修改。



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

永远的学习者


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



  Quote:
Originally posted by pusofalse at 2008-5-24 02:47:
3

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('findstr /n .* a.txt') do (
        set str=%%a
        set str=!str:*:=!
        set string=
        call :lp
        echo.!string!
)
pau ...

代码复杂,效率低,改!多用if少用findstr.

[ Last edited by zw19750516 on 2008-5-24 at 02:51 AM ]



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




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

findstr /v "[0-9]" a.txt

整天都在用for 都思维定向了~~ 原来一句就OK

   此帖被 +14 点积分      点击查看详情   
评分人:【 bat-zw 分数: +5  时间:2008-5-24 02:52
评分人:【 26933062 分数: +9  时间:2008-5-24 02:55




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

永远的学习者


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



  Quote:
Originally posted by pusofalse at 2008-5-24 02:50:
findstr /v "[0-9]" a.txt

整天都在用for 都思维定向了~~ 原来一句就OK

想想除了findstr还有什么别的不。不要还泡在findstr里。



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





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by pusofalse at 2008-5-24 02:50:
findstr /v "[0-9]" a.txt

整天都在用for 都思维定向了~~ 原来一句就OK

哈哈,终于开窍了。。。



致精致简!
2008-5-24 02:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 15 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-5-24 02:52:

想想除了findstr还有什么别的不。不要还泡在findstr里。

findstr 是bat中唯一的正则,用的好,大有用处,并不是只要使用了findstr就会效率低的。关键看你怎么用。。。



致精致简!
2008-5-24 02:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: