[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 mxxcgzxxx 于 2011-5-31 22:50 编辑

答个1,3,2题
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set a=0
  4. for /f "tokens=1-6 delims= " %%1 in (千字文.txt) do (
  5.             set /a a+=1 & set "a!a!=%%1"
  6.             set /a a+=1 & set "a!a!=%%2"
  7.             set /a a+=1 & set "a!a!=%%3"
  8.             set /a a+=1 & set "a!a!=%%4"
  9.             set /a a+=1 & set "a!a!=%%5"
  10.             set /a a+=1 & set "a!a!=%%6"
  11.             )
  12. set /a b=%a%-6
  13. for /l %%i in (%b%,1,%a%) do if "!a%%i!"==""  set /a a-=1
  14. set /a b=%a%*4
  15. echo 《千字文》篇幅总计有%b%字;
  16. pause>nul
  17. set c=
  18. for /l %%i in (%a%,-1,1) do echo,!a%%i! &set c=!c!!a%%i!
  19. pause>nul
  20. set /a d=b-1
  21. set f=
  22. for /l %%i in (1,1,%d%) do (
  23.          set /a e=%%i+1
  24.          for /l %%1 in (!e!,1,%b%) do if "!c:~%%i,1!"=="!c:~%%1,1!" set "f=!f! !c:~%%i,1!"
  25.          )
  26. echo  有以下重字:%f%
  27. pause>nul
复制代码
1

评分人数

    • zm900612: 思路很好,另辟蹊径PB + 5 技术 + 1
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

我的重字较对那里花的时间有点多!
1

评分人数

    • zm900612: 补上少加的分。思路很活,希望保持!PB + 12
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-7-14 22:08 编辑

看到楼上的
  1. for /l %%a in (0 1 %n%)do Set/a "_!$:~%%a,1!+=1"
  2. Set _|find/v "=1"
复制代码
发现自己的思路是好窄!
但有趣的是我的机子在重复运行后会出错全都变成2了怎么回事?

原来是自己多复制了一次
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

本帖最后由 mxxcgzxxx 于 2011-7-14 22:07 编辑

在原基础上提高重字效率
  1. @ECHO OFF
  2. setlocal EnableDelayedExpansion
  3. set a=0
  4. for /f "tokens=1-6 delims= " %%1 in (千字文.txt) do (
  5.             set /a a+=1 & set "a!a!=%%1"
  6.             set /a a+=1 & set "a!a!=%%2"
  7.             set /a a+=1 & set "a!a!=%%3"
  8.             set /a a+=1 & set "a!a!=%%4"
  9.             set /a a+=1 & set "a!a!=%%5"
  10.             set /a a+=1 & set "a!a!=%%6"
  11.             )
  12. set /a b=%a%-6
  13. for /l %%i in (%b%,1,%a%) do if "!a%%i!"==""  set /a a-=1
  14. set /a b=%a%*4
  15. echo 《千字文》篇幅总计有%b%字;
  16. pause>nul
  17. set c=
  18. for /l %%i in (%a%,-1,1) do echo,!a%%i! &set c=!c!!a%%i!
  19. pause>nul
  20. set /a b-=1
  21. set f=
  22. for /l %%1 in (1,1,%b%) do (
  23.    set "a=!c:~0,1!"
  24.    set "c=!c:~1!"
  25.    for %%i in (!a!) do set "d=!c:%%i=!"
  26.    if "!d!" neq "!c!" set "f=!f! !a!"
  27.    )
  28. echo  有以下重字:%f%
  29. pause>nul
复制代码
世界上没有学不会的知识,也没有想得到却做不到的事!

TOP

返回列表