使用批处理将每两个字符分配给字母表中的字母

时间:2012-11-21 12:26:22

标签: string batch-file split

我有一个由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%

2 个答案:

答案 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