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

来一个规规矩矩的

取到一个剔除一个
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=a b c d e f g h i j k l m n o p q r s t u v w x y z "
  3. for %%i in (%str%) do (set/a #+=1,%%i=#)
  4. for /l %%a in (1,1,10) do (
  5.     set/a asc=!random!%%#*2,#-=1
  6.     for %%b in (!asc!) do (set asc=!str:~%%b,1!)
  7.     for %%b in (!asc!) do (set str=!str:%%b =!&set/a $=!random!%%2,1/$ 2>nul||set asc=!%%b!)
  8.     echo !asc!
  9. )
  10. pause
复制代码

TOP

测试了一下,“||”管道操作虽然要比其它管道操作快,但是比起if还是要慢好多,相当于if 用时的5~8倍。
改为用if 判断。综合测度速度不错。
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=a b c d e f g h i j k l m n o p q r s t u v w x y z "
  3. for %%i in (%str%) do (set/a #+=1,%%i=#)
  4. for /l %%a in (1,1,10) do (
  5.     set/a asc=!random!%%#*2,#-=1
  6.     for %%b in (!asc!) do (set asc=!str:~%%b,1!)
  7.     for %%b in (!asc!) do (set str=!str:%%b =!&set/a $=!random!%%2&if !$! equ 0 set asc=!asc!)
  8.     echo !asc!
  9. )
  10. pause
复制代码

TOP

返回列表