查找随机代码并将其导出

时间:2018-07-31 08:42:08

标签: batch-file

我正在研究一种谜题类型。

我需要找到随机代码(重复字符加农炮)并将其导出到.txt文件。

下面是我的代码,批处理文件类型:

@echo off
call :scramble 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 1 2 3 4 5 6 7 8 9
goto :output 
:scramble
set "scrambled%random%=%1"
shift
if not "%~1"=="" goto :scramble
for /f "tokens=1,* delims==" %%a in ('set scrambled') do set /p "=%%b "<nul
:output
echo "Still In Development, please contact the Admin on 0405789077.">> 
enigmacodes.txt
pause

随时提出更多要求,并乐于提出建议。

1 个答案:

答案 0 :(得分:1)

不是使用set /p来输出到没有cr / lf的屏幕,
放入变量中,并将变量回显到输出文件中。

还需要初始化已加扰的变量。
您应该防止运行代码流到子例程,
因为批处理本身不会分开。

将子标题重新排列到最后会保存一个标签并转到。

:: Q:\Test\2018\07\31\SO_51609078.cmd
@echo off & setlocal

:: initialize var scrambled
for /f "delims==" %%a in ('set scrambled 2^>Nul') do set "%%a="

call :scramble 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 1 2 3 4 5 6 7 8 9

echo "Still In Development, please contact the Admin on 0405789077."
Echo=%scrambled%
>> enigmacodes.txt Echo=%scrambled%
pause
Goto :Eof

:scramble
set "scrambled[%random%]=%1"
shift
if not "%~1"=="" goto :scramble
for /f "tokens=1,* delims==" %%a in ('set scrambled[') do call set "scrambled=%%scrambled%% %%b"
Set scrambled=%scrambled:~1%