@echo off & setlocal enabledelayedexpansion & cls
(set chrs=^"#$%%^&'^(^)*+,-./01234 56789:;^<=^>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvwxyz{^|}~)
echo 这是一个由 ASCII 码值 32--126 ^(除了半角感叹号外^) 共 94 个字符组成的字符串:
echo %chrs%
set /p=按任意键查看对这 94 个字符进行初始编号...<nul&pause>nul&echo.
for /l %%i in (0,1,93) do (
(set cc%%i=!chrs:~%%i,1!)
set /a "ii=100+%%i"
echo !ii:~1!:{!cc%%i!}
)
set /p=按任意键查看对这 94 个字符进行排序后的次序表...<nul&pause>nul&echo.
for /l %%i in (0,1,92) do (
set /a "min=%%i, n=%%i+1"
(set minChr=!cc%%i!)
for /l %%j in (!n!,1,93) do (
if "!cc%%j!" lss "!minChr!" (
(set min=%%j)
(set minChr=!cc%%j!)
)
)
for /f "tokens=1" %%m in ("!min!") do (
(set tt=!cc%%i!)
(set cc%%i=!cc%%m!)
(set cc%%m=!tt!)
)
)
for /l %%i in (0,1,93) do (
set /a "ii=100+%%i"
echo !ii:~1!:{!cc%%i!}
)
set /p=按任意键查看插入半角感叹号后, 95 个字符的全次序表...<nul&pause>nul&echo.
for /l %%i in (93,-1,3) do (
set /a "jj=%%i+1"
for /f "tokens=1" %%j in ("!jj!") do (set cc%%j=!cc%%i!)
)
setlocal disabledelayedexpansion
(set cc3=!)
setlocal enabledelayedexpansion
for /l %%i in (0,1,94) do (
set /a "ii=100+%%i"
echo !ii:~1!:{!cc%%i!}
)
pause
exit /b
@echo off & setlocal enabledelayedexpansion & cls
(set chrs=^"#$%%^&'^(^)*+,-./01234 56789:;^<=^>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`abcdefghijklmnopqrstuvwxyz{^|}~)
echo 这是一个由 ASCII 码值 32--126 ^(除了半角感叹号外^) 共 94 个字符组成的字符串:
echo %chrs%
set /p=按任意键查看对这 94 个字符进行初始编号...<nul&pause>nul&echo.
for /l %%i in (0,1,93) do (
(set cc%%i=!chrs:~%%i,1!)
set /a "ii=100+%%i"
echo !ii:~1!:{!cc%%i!}
)
set /p=按任意键查看对这 94 个字符进行排序后的次序表...<nul&pause>nul&echo.
for /l %%i in (0,1,92) do (
set /a "min=%%i, n=%%i+1"
(set minChr=!cc%%i!)
for /l %%j in (!n!,1,93) do (
if "!cc%%j!" lss "!minChr!" (
(set min=%%j)
(set minChr=!cc%%j!)
)
)
for /f "tokens=1" %%m in ("!min!") do (
(set tt=!cc%%i!)
(set cc%%i=!cc%%m!)
(set cc%%m=!tt!)
)
)
for /l %%i in (0,1,93) do (
set /a "ii=100+%%i"
echo !ii:~1!:{!cc%%i!}
)
set /p=按任意键查看插入半角感叹号后, 95 个字符的全次序表...<nul&pause>nul&echo.
for /l %%i in (93,-1,3) do (
set /a "jj=%%i+1"
for /f "tokens=1" %%j in ("!jj!") do (set cc%%j=!cc%%i!)
)
setlocal disabledelayedexpansion
(set cc3=!)
setlocal enabledelayedexpansion
for /l %%i in (0,1,94) do (
set /a "ii=100+%%i"
echo !ii:~1!:{!cc%%i!}
)
pause
exit /b