2012-11-21 112 views
1

我有一个随机生成的数字由52个字符每两个字符分配到一个字母,并想在字母表使用批处理

例如产生的数量是每两个字符分配给信:

8418883335015492815087755766083114261445499300375638 

我想前两个84被分配到一个称为VAR_A变量,然后18VAR_B到等。

我该如何做到最好?

编辑:::

set MY_ALPHABET=1234567890 

set MY_A=%MY_ALPHABET:~-2% 

SET MY_ALPHABET_B = (%MY_ALPHABET% - %MY_A%) 

echo %MY_ALPHABET_B% 
+0

只需使用一个循环? – nhahtdh

+0

向我们展示您尝试过的方法,然后我们可以提供帮助。 – aphoria

+0

好吧请参阅编辑 –

回答

0

这似乎是一个愚蠢的锻炼; Tibial,但在这里不用

@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 
+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