中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 19:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用批处理生成这样的纯数字字典
楼 主 如何用批处理生成这样的纯数字字典 发表于 2010-01-05 13:34 ·  中国 广东 电信
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
UID 86077
性别 男
状态 离线
字典要求:数字0~9
可生成AABB型
ABAB型
ABBA型
总共三种类型4位纯数字密码字典
2 发表于 2010-01-05 15:12 ·  中国 广东 电信
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
UID 86077
性别 男
状态 离线
有人帮帮我吗
3 发表于 2010-01-05 16:57 ·  中国 广东 电信
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
UID 86077
性别 男
状态 离线
用批处理实现不了吗?
4 发表于 2010-01-05 17:43 ·  中国 北京 中电华通通信有限公司
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
UID 116706
性别 男
状态 离线
可以拆成三个文件。



@echo off
setlocal enabledelayedexpansion
for /l %%i in (1000,1,9999) do (
set a=%%i
::AABB
if "!a:~0,1!"=="!a:~1,1!" (
if not "!a:~0,1!"=="!a:~2,1!" (
if "!a:~2,1!"=="!a:~3,1!" (
echo !a!
if "!a:~2,1!"=="0" echo !a:~2,2!!a:~0,2!
)
)
)
::ABAB
if "!a:~0,1!"=="!a:~2,1!" (
if not "!a:~0,1!"=="!a:~1,1!" (
if "!a:~1,1!"=="!a:~3,1!" (
echo !a!
if "!a:~1,1!"=="0" echo !a:~3,1!!a:~2,1!!a:~1,1!!a:~0,1!
)
)
)
::ABBA
if "!a:~0,1!"=="!a:~3,1!" (
if not "!a:~0,1!"=="!a:~1,1!" (
if "!a:~1,1!"=="!a:~2,1!" (
echo !a!
if "!a:~1,1!"=="0" echo !a:~1,1!!a:~0,1!!a:~3,1!!a:~2,1!
)
)
)
)
echo OK.
pause>nul
┏━━━━━━┓
┃据说是李先生┃
┠──────┨
┃*ntRSS┃
┗━━━━━━┛
5 发表于 2010-01-06 15:59 ·  中国 浙江 温州 联通
中级用户
★★
积分 234
发帖 119
注册 2007-04-22 11:09
UID 86077
性别 男
状态 离线
如果不是纯数字的话,而是字母和数字按照AABB,ABAB,ABBA的规律任何混合的话应该如何写
6 献丑了。。。 发表于 2010-01-08 11:18 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线

@echo off&setlocal enabledelayedexpansion
set "code=abcdefghijklmnopqrstuvwxyz0123456789"
(for /l %%a in (35,-1,1) do (
set "str=!code:~,1!"&set "code=!code:~1!"&set "codes=!code!"
for /l %%b in (%%a,-1,1) do (
set "var=!codes:~,1!"&set "codes=!codes:~1!"
echo !str!!str!!var!!var!
echo !str!!var!!str!!var!
echo !str!!var!!var!!str!
echo !var!!var!!str!!str!
echo !var!!str!!var!!str!
echo !var!!str!!str!!var!
)
))>list.txt
start list.txt


[ Last edited by bat-zw on 2010-1-8 at 14:25 ]
批处理之家新域名:www.bathome.net
7 发表于 2010-01-08 13:27 ·  中国 江西 南昌 电信
初级用户
积分 58
发帖 41
注册 2009-04-03 00:04
UID 141951
性别 男
状态 离线
呵呵,给个解释,FOR难学会
8 发表于 2010-01-08 20:32 ·  中国 广东 广州 白云区 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
尝试用那个东东做一次

@echo off
setlocal enabledelayedexpansion
call :func "" "12AB"
pause
exit

:func
setlocal
set str=%~2
if "%str:~2%"=="" (
call :echo %~1
goto :eof
)
set /a n=-1
:next
set /a n+=1,nb=n+1
call :func "%~1 !str:~%n%,1!" "!str:~0,%n%!!str:~%nb%!"
if not "!str:~%n%,-1!"=="" (goto :next)
endlocal
goto :eof

:echo
echo %1%1%2%2
echo %1%2%1%2
echo %1%2%2%1
goto :eof
9 发表于 2010-01-08 21:17 ·  中国 广东 广州 白云区 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
UID 110072
性别 男
状态 离线
1-9
call多了速度很慢的说,不说速度,却算是锻炼了。

@echo off
setlocal enabledelayedexpansion
set long=9876543210
call :func "" "123456789"
pause
exit

:func
setlocal
set str=%~2
if "%str:~6%"=="" (
call :echo %~1
goto :eof
)
set /a n=-1
:next
set /a n+=1,nb=n+1
call :func "%~1 !str:~%n%,1!" "!str:~0,%n%!!str:~%nb%!"
if not "!str:~%n%,-1!"=="" (goto :next)
endlocal
goto :eof

:echo
echo %1%1%2%2
echo %1%2%1%2
echo %1%2%2%1
goto :eof
论坛跳转: