[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
有意思的题目,好好想想。。。
心绪平和,眼藏静谧。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p str=<a.txt
  3. set /a n=-1
  4. :loop
  5. set/a n+=1
  6. for /f "delims=" %%a in (a.txt) do (
  7.      set "var=%%a"
  8.      if "!var:~%n%,1!" neq "!str:~%n%,1!" set "x=%n%"
  9.      set "str=%%a"
  10. )
  11. if not defined x goto loop
  12. for /f "delims=" %%i in (a.txt) do (
  13.      set "var=%%i"
  14.      echo !var:~%x%!
  15. )
  16. pause
复制代码
也来一个,同样只是去掉前缀。输出结果跟batman版主的代码有点出入。
1

评分人数

心绪平和,眼藏静谧。

TOP

再修改下,能正确输出1,2,3、、、、100。
  1. @echo off&setlocal enabledelayedexpansion
  2. cd.>a.txt
  3. set/a r=%random%,d=!random!,n=-1
  4. for /l %%a in (1 1 100) do set "_!random!!random!=%r%%%a%d%"
  5. for /f "tokens=2 delims==" %%i in ('set _') do echo>>a.txt %%i
  6. set /p str=<a.txt
  7. :loop
  8. set/a n+=1,m+=1
  9. for /f "delims=" %%a in (a.txt) do (
  10.      set "var=%%a"
  11.      if "!var:~%n%,1!" neq "!str:~%n%,1!" if not defined x set "x=%n%"
  12.      if "!var:~-%m%,1!" neq "!str:~-%m%,1!" if not defined y set "y=%m%"
  13.      set "str=%%a"
  14. )
  15. for %%a in (x y) do if not defined %%a goto loop
  16. set/a y-=1
  17. for /f "delims=" %%i in (a.txt) do (
  18.      set "var=%%i"
  19.      echo !var:~%x%,-%y%!
  20. )
  21. pause>nul
复制代码

[ 本帖最后由 pusofalse 于 2008-10-17 18:28 编辑 ]
心绪平和,眼藏静谧。

TOP

返回列表