中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-20 20:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文本输出加分题(15分): 查看 867 回复 8
楼 主 文本输出加分题(15分): 发表于 2008-05-24 14:37 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
如下:

==<'\~!|#%
*)$""(#':"
$)#~<&<\~$
^<'!"|'@*:
<~<#"|^@#'
>"==:"@>=*
*>*>"@!@'$
:^=\<~*\\(
&!||&=)!'
>:*))<<'(=
)'&|~(^$^\
>!^@%%)!:|
()^~\<\~<#
(':@=^'&
^!|!~(@:@*
<@>"~&*^~%
:$!^'|)\'^
@)'"@<$@#(
^:%'(%*|
^(#)!*'*#@

要求通过批处理(vbs等不来)不生成临时文件输出20行由特列字符(^&%!$#><:=~*()@"'\|)随机组成的10位字符串。
----------------------------------------------------------------------------------------------------------
是时候公布本人的答案了:

@echo off
set code=^^^&%%%^:!$#^>^<:=~*()@"'\|
setlocal enabledelayedexpansion
:begin
set /a a=%random%%%19
set var=!code:~%a%,1!&set str=!str!!var!
set /a n+=1
if !n! lss 10 goto begin
echo !str!
set /a m+=1
if !m! lss 20 set str=&set n=0&goto begin
pause>nul


[ Last edited by zw19750516 on 2008-5-24 at 06:27 PM ]
批处理之家新域名:www.bathome.net
2 发表于 2008-05-24 15:09 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
@echo off
set slore=^^^&%%%^:!$#^>^<:=~*()@"'\|

echo ^%slore:~0,1%
echo ^%slore:~1,1%
echo ^%slore:~2,1%
echo ^%slore:~3,1%
echo ^%slore:~4,1%
echo ^%slore:~5,1%
echo ^%slore:~6,1%
echo ^%slore:~7,1%
echo ^%slore:~8,1%
echo ^%slore:~9,1%
echo ^%slore:~10,1%
echo ^%slore:~11,1%
echo ^%slore:~12,1%
echo ^%slore:~13,1%
echo ^%slore:~14,1%
echo ^%slore:~15,1%
echo ^%slore:~16,1%
echo ^%slore:~17,1%
echo ^%slore:~18,1%

pause>nul

[ Last edited by slore on 2008-5-24 at 03:11 PM ]
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
3 发表于 2008-05-24 15:20 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
Originally posted by slore at 2008-5-24 15:09:
@echo off
set slore=^^^&%%%^:!$#^>^<:=~*()@"'\|

echo ^%slore:~0,1%
echo ^%slore:~1,1%
echo ^%slore:~2,1%
echo ^%slore:~3,1%
echo ^%slore:~4,1%
echo ^%slore:~5,1%
echo ^%slo ...

我知道老兄是故意不写完,还是请老兄写完整看看。
批处理之家新域名:www.bathome.net
4 发表于 2008-05-24 15:27 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
既然可以输出每一位……哪么随机和20*10的表格

有点懒+有点晕~

就是那列的0,1,2,3,4,5……用变量代替貌似没有输出成功。。。

不过用set /p似乎可以……

我大概写写嘛~
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
5 发表于 2008-05-24 16:02 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
set slore=^^^^^&%%%^:^$#^>^<:=~*()@"'\|^!
for /l %%i in (0,1,19) do call :sline
pause>nul

:sline
set outs=
for /l %%j in (0,1,10) do (
set /a bit=!RANDOM!%%19
call :linkltr !bit!
)
echo !outs:~1!

:linkltr
set outs=!outs!!slore:~%1,1!
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
bat-zw +15 2008-05-24 16:11
moniuming +4 2008-05-24 17:05
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
6 发表于 2008-05-24 16:55 ·  中国 重庆 渝中区 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
楼上的如果把 set slore=^^^^^&%%%^:^$#^>^<:=~*()@"'\|^!
中的感叹号插到中间就会出错。所以把setlocal enabledelayedexpansion放到set后面:
@echo off
set slore=^^^&^:!$#^>^<:=~*()@"'\|%%%
setlocal enabledelayedexpansion
for /l %%i in (1,1,20) do (
for /l %%j in (1,1,10) do (
call :out
)
echo !mystr!&set mystr=
)
pause>nul

:out
set/a var=%random%%%20
set mystr=!mystr!!slore:~%var%,1!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
moniuming +4 2008-05-24 17:05
7 发表于 2008-05-24 17:39 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
其实习惯吧

1.@echo off和变量延迟写一行……

2.因为要随机……所以就没有必要注意顺序了。
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
8 发表于 2008-05-24 18:06 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
发现你把!移动到前面去了?把%%%放到后面啦……

不开变量延迟是可以按顺序的……不过好像删除了……算了……
感觉P还是不适合……
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
9 发表于 2008-05-24 20:56 ·  中国 重庆 渝中区 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
顺序换不换都能显示,呵呵。
论坛跳转: