中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用批处理生成这样的纯数字字典
作者:
标题: 如何用批处理生成这样的纯数字字典 上一主题 | 下一主题
w1314ich
中级用户





积分 234
发帖 119
注册 2007-4-22
状态 离线
『楼 主』:  如何用批处理生成这样的纯数字字典

字典要求:数字0~9
可生成AABB型
         ABAB型
         ABBA型
总共三种类型4位纯数字密码字典



word
2010-1-5 13:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
w1314ich
中级用户





积分 234
发帖 119
注册 2007-4-22
状态 离线
『第 2 楼』:  

有人帮帮我吗



word
2010-1-5 15:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
w1314ich
中级用户





积分 234
发帖 119
注册 2007-4-22
状态 离线
『第 3 楼』:  

用批处理实现不了吗?



word
2010-1-5 16:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 4 楼』:  

可以拆成三个文件。
@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┃
┗━━━━━━┛
2010-1-5 17:43
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
w1314ich
中级用户





积分 234
发帖 119
注册 2007-4-22
状态 离线
『第 5 楼』:  

如果不是纯数字的话,而是字母和数字按照AABB,ABAB,ABBA的规律任何混合的话应该如何写



word
2010-1-6 15:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


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


@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
2010-1-8 11:18
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
ligui0001
初级用户





积分 58
发帖 41
注册 2009-4-3
状态 离线
『第 7 楼』:  

呵呵,给个解释,FOR难学会

2010-1-8 13:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 8 楼』:  

尝试用那个东东做一次
@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




综合型编程论坛

我的作品索引
  
2010-1-8 20:32
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 9 楼』:  

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




综合型编程论坛

我的作品索引
  
2010-1-8 21:17
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: