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

可以参考java使用对象封装局部变量来防止数字重复时的变量名问题,而不需要使用random.
接受任意个数参数调用,无论数字还是字符。
如qs g e sdfsd z
qs 2342 6756 1231323 1 2 412
  1. ::以下代码保存为qs.bat
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. setlocal
  5. set k=0
  6. for %%i in (%*) do (
  7. set /a k+=1
  8. set arr.!k!=%%i
  9. )
  10. set arr.length=%k%
  11. call :s arr
  12. for %%i in (%arr.re%) do (
  13. set /p a=%%i <nul
  14. )
  15. echo.
  16. endlocal
  17. exit /b
  18. :s
  19. if !%1.length! lss 2 (
  20. call :return %1
  21. exit /b
  22. )
  23. for /l %%i in (2,1,!%1.length!) do (
  24. if !%1.%%i! leq !%1.1! (
  25. call :push %1.1 !%1.%%i!
  26. ) else (
  27. call :push %1.2 !%1.%%i!
  28. )
  29. )
  30. call :s %1.1
  31. call :s %1.2
  32. set %1.re=!%1.1.re! !%1.1! !%1.2.re!
  33. exit /b
  34. :push
  35. set /a %1.length+=1
  36. set %1.!%1.length!=%2
  37. exit /b
  38. :return
  39. if !%1.length!==0 set "%1.re="
  40. for /l %%i in (1,1,!%1.length!) do (
  41. set %1.re=!%1.re! !%1.%%i!
  42. )
  43. exit /b
复制代码

TOP

返回列表