中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 19:11
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 又出文本输出加分题了(新手进):
可打印版本  2,430 / 34
第1楼 bat-zw 发表于 2008-05-24 00:42
金牌会员 发帖 1,276 积分 3,105
又出文本输出加分题了(新手进):
如a.txt:

问题一:写出生成文本a.txt的批处理(模式一样,每行13个随机字符,共20行,纯数字行是因题目要求加的不要生成)
问题二:用批处理找出a.txt中不含数字的行并输出
问题三:用批处理输出a.txt所有的行(但不输出每行的数字),如下:

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


[ Last edited by zw19750516 on 2008-5-24 at 01:26 AM ]
第2楼 26933062 发表于 2008-05-24 00:44
银牌会员 发帖 879 积分 2,268
问题一没看懂。
第3楼 26933062 发表于 2008-05-24 00:53
银牌会员 发帖 879 积分 2,268
提议:样本文件中应该再加几行纯数字的行,给问题三增加点难度。
第4楼 pusofalse 发表于 2008-05-24 02:25
银牌会员 发帖 646 积分 1,604
不输出每行的数字。。。 貌似又要用到字符截取和移位了 感觉效率相当低下~
第5楼 pusofalse 发表于 2008-05-24 02:33
银牌会员 发帖 646 积分 1,604
随机生成吗?~ 我生成的每一行中都有数字 ,那问题2不就没法做了~
第6楼 pusofalse 发表于 2008-05-24 02:35
银牌会员 发帖 646 积分 1,604
1
第7楼 pusofalse 发表于 2008-05-24 02:38
银牌会员 发帖 646 积分 1,604
2。。。
自己手动修改a.txt 使其中几行没有数字。。- -||
for /f "delims=" %%a in (a.txt) do echo %%a|findstr /v "[0-9]"
pause
第8楼 bat-zw 发表于 2008-05-24 02:45
金牌会员 发帖 1,276 积分 3,105
第二、三题用我的例文就是的
第9楼 pusofalse 发表于 2008-05-24 02:47
银牌会员 发帖 646 积分 1,604
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
)
第10楼 bat-zw 发表于 2008-05-24 02:47
金牌会员 发帖 1,276 积分 3,105
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 ""
pause

效率是大问题,请修改。
第11楼 bat-zw 发表于 2008-05-24 02:49
金牌会员 发帖 1,276 积分 3,105
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 ]
第12楼 pusofalse 发表于 2008-05-24 02:50
银牌会员 发帖 646 积分 1,604
findstr /v "[0-9]" a.txt

整天都在用for 都思维定向了~~ 原来一句就OK
第13楼 bat-zw 发表于 2008-05-24 02:52
金牌会员 发帖 1,276 积分 3,105
Originally posted by pusofalse at 2008-5-24 02:50:
findstr /v "" a.txt

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

想想除了findstr还有什么别的不。不要还泡在findstr里。
第14楼 26933062 发表于 2008-05-24 02:53
银牌会员 发帖 879 积分 2,268
Originally posted by pusofalse at 2008-5-24 02:50:
findstr /v "" a.txt

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

哈哈,终于开窍了。。。
第15楼 26933062 发表于 2008-05-24 02:54
银牌会员 发帖 879 积分 2,268
Originally posted by zw19750516 at 2008-5-24 02:52:

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

findstr 是bat中唯一的正则,用的好,大有用处,并不是只要使用了findstr就会效率低的。关键看你怎么用。。。
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023