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

回复 15楼 的帖子

呵呵,既然循环了,就循环到底吧,反正结果都差不多。

TOP

如果有相同的字符就出错了,

TOP

来个递归的
Call 的第二个参数是排列的字符,暂时不支持排列内带重复的字符。

  1. @echo off&setlocal enabledelayedexpansion
  2. call :func "0" "" "123abc"
  3. pause
  4. :func
  5. if %3=="" (set /a na=%~1+1
  6.            echo,%~2
  7.            goto :eof)
  8. set na=0
  9. :loop
  10.       set str=%~3
  11.       set /a nb=na+1
  12.       call :func "%na%" "%~2!str:~%na%,1!" "!str:~0,%na%!!str:~%nb%!"
  13.       set str=%~3
  14. if not "!str:~%na%!"=="" goto :loop
  15. set /a na=%~1+1
复制代码

TOP

一个比一个精湛   连递归都用上了

TOP

返回列表