来个递归的
Call 的第二个参数是排列的字符,暂时不支持排列内带重复的字符。
- @echo off&setlocal enabledelayedexpansion
- call :func "0" "" "123abc"
- pause
-
- :func
- if %3=="" (set /a na=%~1+1
- echo,%~2
- goto :eof)
- set na=0
- :loop
- set str=%~3
- set /a nb=na+1
- call :func "%na%" "%~2!str:~%na%,1!" "!str:~0,%na%!!str:~%nb%!"
- set str=%~3
- if not "!str:~%na%!"=="" goto :loop
- set /a na=%~1+1
复制代码
|