2015-06-03 3 views
0

Я пытаюсь сделать случайную строку в пакетном режиме, и я понятия не имею, что делать. Я назвал случайной последовательностью чисел с случайной функцией%%, но я понятия не имею, как постоянно заменять определенные символы в моем переменном:Сделать случайную строку в партии

@echo off 
set subkey1=%random%%random%%random%%random%%random%%random% 
set subkey2=%random%%random%%random%%random%%random%%random% 
set subkey3=%random%%random%%random%%random%%random%%random% 


ECHO %subkey1:0=a% 
ECHO %subkey1:1=b% 
ECHO %subkey1:2=c% 
ECHO %subkey1:3=d% 
ECHO %subkey1:4=e% 
ECHO %subkey1:5=f% 
ECHO %subkey1:6=g% 
ECHO %subkey1:7=h% 
ECHO %subkey1:8=i% 
ECHO %subkey1:9=j% 

ECHO %subkey2:0=k% 
ECHO %subkey2:1=l% 
ECHO %subkey2:2=m% 
ECHO %subkey2:3=n% 
ECHO %subkey2:4=o% 
ECHO %subkey2:5=p% 
ECHO %subkey2:6=q% 
ECHO %subkey2:7=r% 
ECHO %subkey2:8=s% 
ECHO %subkey2:9=t% 

ECHO %subkey3:0=u% 
ECHO %subkey3:1=v% 
ECHO %subkey3:2=w% 
ECHO %subkey3:3=x% 
ECHO %subkey3:4=y% 
ECHO %subkey3:5=z% 
REM after going through all the letters, we just pick random ones 
ECHO %subkey3:6=a% 
ECHO %subkey3:7=g% 
ECHO %subkey3:8=k% 
ECHO %subkey3:9=o% 

set key=%subkey1%%subkey2%%subkey3% 
echo String: %key% 
pause 

Так как вы можете видеть, я могу ECHO разные ключи , но я хочу сохранить новую в переменной (EX в подразделе 1, я хочу заменить все 0s на a, затем SAVE, чтобы, если я посмотрю на свою переменную после этого, я могу увидеть новую и уметь называют, что в различных функциях

ответ

0

, чтобы назначить переменной значение, используйте команду SET:.

SET subkey1=%random%%random%%random%%random%%random%%random% 

SET subkey1=%subkey1:0=a% 
SET subkey1=%subkey1:1=b% 
SET subkey1=%subkey1:2=c% 
. 
. 
. 
ECHO %subkey1% 

И, конечно, остерегайтесь, чтобы %random% никогда не должен использоваться в качестве источника криптографических целей.

+0

Спасибо, это работает отлично, ИДК, как я не думаю об этом. Хорошо спасибо за вашу помощь – MishaTheHoovy

0

же эффект с гораздо меньшим количеством кода:

@echo off 
setlocal enabledelayedexpansion 
set "string=abcdefghijklmnopqrstuvwxyz" 
set "result=" 
for /L %%i in (1,1,30) do call :add 
echo %result% 
goto :eof 

:add 
set /a x=%random% %% 26 
set result=%result%!string:~%x%,1! 
goto :eof 
Смежные вопросы