我有一个由52个字符组成的随机生成的数字,并希望将每两个字符分配给字母表中的一个字母
例如,生成的数字是:
8418883335015492815087755766083114261445499300375638
我希望将前两个84
分配给名为VAR_A
的变量,然后18
分配给VAR_B
,依此类推。
我怎样才能做到最好?
编辑:::
set MY_ALPHABET=1234567890
set MY_A=%MY_ALPHABET:~-2%
SET MY_ALPHABET_B = (%MY_ALPHABET% - %MY_A%)
echo %MY_ALPHABET_B%
答案 0 :(得分:0)
可能有更好的方法,但它有效
@echo off
setlocal enabledelayedexpansion
set start=0
set step=2
set end=52
set nvar=1
set number=8418883335015492815087755766083114261445499300375638
:LOOP
if %start%==%end% (
echo done
pause >nul
) else (
set var%nvar%=!number:~%start%,%step%!
echo !var%nvar%!
set /a start+=2
set /a nvar+=1
goto :LOOP
)
pause >nul
完成后,您将有26个名为var1
的变量,最多为var26
。
答案 1 :(得分:0)
这看起来像是一个愚蠢的运动,但这里有了
@echo off
setlocal enableDelayedExpansion
set "chars=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
set "string=8418883335015492815087755766083114261445499300375638"
::Assign variables
for /l %%N in (0 2 50) do set "var_!chars:~%%N,1!=!string:~%%N,2!"
::Show results
set var
结果:
var_A=84
var_B=18
var_C=88
var_D=33
var_E=35
var_F=01
var_G=54
var_H=92
var_I=81
var_J=50
var_K=87
var_L=75
var_M=57
var_N=66
var_O=08
var_P=31
var_Q=14
var_R=26
var_S=14
var_T=45
var_U=49
var_V=93
var_W=00
var_X=37
var_Y=56
var_Z=38