中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 15:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求嗰随机数排列 查看 965 回复 8
楼 主 求嗰随机数排列 发表于 2008-04-05 01:04 ·  中国 广东 肇庆 电信
初级用户
积分 27
发帖 12
注册 2008-03-29 22:24
18年会员
UID 114395
性别 男
状态 离线
求A-z的随机排列..谢谢
2 发表于 2008-04-05 01:25 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
:

@echo off&setlocal enabledelayedexpansion
set "str=abcdefghijklmnopqrstuvwxyz"
for /l %%i in (0 1 25) do (
set /a num=!random! %% 25+1
call set var=%%str:~!num!,1%%
call set str=%%str:!var!=%%!var!
)
echo !str:~10!!str:~0,10!
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
forkfan +2 2008-04-06 14:30
致精致简!
3 发表于 2008-04-05 01:29 ·  中国 广东 肇庆 电信
初级用户
积分 27
发帖 12
注册 2008-03-29 22:24
18年会员
UID 114395
性别 男
状态 离线
谢谢..
4 发表于 2008-04-05 02:07 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
@echo off
set "str=abcdefghijklmnopqrstuvwxyz"
set n=27
:loop
set/a n-=1
set/a s=%random%%%%n%
call set var=%%str:~%s%,1%%
set var1=%var%%var1%
call set str=%%str:%var%=%%
if defined str goto loop
echo %var1%
pause
简单!简单!再简单!
5 发表于 2008-04-05 10:21 ·  中国 湖北 武汉 电信
初级用户
积分 47
发帖 24
注册 2008-03-12 23:44
18年会员
UID 112802
性别 男
状态 离线
支持
6 我也来一个: 发表于 2008-04-06 04:01 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
@echo off
:begin
set code=abcdefghijklmnopqrstuvwxyz
set /a n=%random%%%26
call,set str=%%code:~%n%,1%%
for %%i in (%var%) do if "%%i"=="%str%" goto begin
set var=%var% %str%
if "%var:~51,1%"=="" goto begin
echo %var%
pause
批处理之家新域名:www.bathome.net
7 发表于 2008-04-06 05:27 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
:

@echo off&setlocal EnableDelayedExpansion
set "code=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%a in (26 -1 1) do (
set /a w=!random!%%%%a
call set var=!var!%%code:~!w!,1%%
call set code=%%code:!var:~-1!=%%
)
echo !var!
pause


[ Last edited by 26933062 on 2008-4-6 at 05:28 AM ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
PPdos +4 2008-04-06 07:06
forkfan +2 2008-04-06 14:30
致精致简!
8 发表于 2008-04-06 07:28 ·  法国 wanadoo网络
高级用户
★★
积分 783
发帖 268
注册 2006-12-26 17:18
19年会员
UID 74627
性别 男
状态 离线
我替楼兄做个注:

@echo off&setlocal EnableDelayedExpansion
set "code=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%a in (26 -1 1) do (
set /a w=!random!%%%%a
1.随机取余数,余数w小于等于25
call set var=!var!%%code:~!w!,1%%
2.取变量code的第w+1位放入变量var并不断累积
call set code=%%code:!var:~-1!=%%
3.删除变量code中已截取的字母,将其继续循环
)
echo %var%
pause


这个第三步 妙 我加分!
菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
9 发表于 2008-04-06 08:47 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
呵呵,再来个另类点的。

@echo off&setlocal EnableDelayedExpansion
set "code=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for /l %%a in (26 -1 1) do (
set /a w=!random!%%%%a
call call set code=%%%%code:%%code:~!w!,1%%=%%%%%%code:~!w!,1%%
)
echo %code%
pause
致精致简!
论坛跳转: