2012-11-21 111 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