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

TOP

其实重复 for + 'set #' 累计耗时是比较多的。
  1. @echo off
  2. set t=%time%
  3. setlocal enabledelayedexpansion
  4. for /l %%a in (1,1,100) do (call :get_sRandom)
  5. echo %t% %time%
  6. pause
  7. rem ---生成随机字符串
  8. :get_sRandom
  9.     set "sRandom="
  10.     set "sTime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%"
  11.     set "p=ABCDEFGHIJ"
  12.     for /l %%a in (0 1 9) do set "#!random!!random!!random!=!p:~%%a,1!"
  13.     for /f "tokens=1,2 delims==" %%a in ('set #') do (set "%%a="&set "sRandom=!sRandom!%%b")
  14.     set "sRandom=!sTime!!sRandom!"
  15.     echo !sRandom!
  16.     goto :eof
复制代码
另外写了一个随机提取的方法,对比下时间:
  1. @echo off
  2. set t=%time%
  3. setlocal enabledelayedexpansion
  4. for /l %%a in (1,1,100) do (call :get_sRandom)
  5. echo %t% %time%
  6. pause
  7. rem ---生成随机字符串
  8. :get_sRandom
  9.     set "sRandom="
  10.     set "sTime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%"
  11.     set "p=ABCDEFGHIJ"
  12.     for /l %%a in (9,-1,1) do (
  13.         set /a R=!random! %% %%a
  14.         for %%b in (!R!) do set GetSR=!p:~%%b,1!
  15.         for %%c in (!GetSR!) do set p=!p:%%c=!
  16.         set sRandom=!sRandom!!GetSR!
  17.     )
  18.     set "sRandom=!sTime!!sRandom!"
  19.     echo !sRandom!
  20.     goto :eof
复制代码

TOP

返回列表