本帖最后由 Abracadabra 于 2017-6-28 17:25 编辑
可以参考java使用对象封装局部变量来防止数字重复时的变量名问题,而不需要使用random.
接受任意个数参数调用,无论数字还是字符。
如qs g e sdfsd z
qs 2342 6756 1231323 1 2 412- ::以下代码保存为qs.bat
- @echo off
- setlocal enabledelayedexpansion
- setlocal
- set k=0
- for %%i in (%*) do (
- set /a k+=1
- set arr.!k!=%%i
- )
- set arr.length=%k%
- call :s arr
- for %%i in (%arr.re%) do (
- set /p a=%%i <nul
- )
- echo.
- endlocal
- exit /b
-
- :s
- if !%1.length! lss 2 (
- call :return %1
- exit /b
- )
- for /l %%i in (2,1,!%1.length!) do (
- if !%1.%%i! leq !%1.1! (
- call :push %1.1 !%1.%%i!
- ) else (
- call :push %1.2 !%1.%%i!
- )
- )
- call :s %1.1
- call :s %1.2
- set %1.re=!%1.1.re! !%1.1! !%1.2.re!
- exit /b
-
- :push
- set /a %1.length+=1
- set %1.!%1.length!=%2
- exit /b
-
- :return
- if !%1.length!==0 set "%1.re="
- for /l %%i in (1,1,!%1.length!) do (
- set %1.re=!%1.re! !%1.%%i!
- )
- exit /b
复制代码
|