-3

我有一个文本文件,其中只有一个很长的文本块,通常大约 600 个字母数字字符(无空格),是文件的唯一内容。我需要解析该文本块并进行某种哈希处理,然后将该哈希文本推送到一个变量中。

例子:

codeblock.txt 包含一个字符串“12345678ABCDEFGH”(尽管实际上它将是大约 600 个字符长度的随机字符)。

“12345678ABCDEFGH”需要由批处理文件解析,然后通过反转四个字符块中的字符来“散列”。因此“12345678ABCDEFGH”变为“43218765DCBAHGFE”,然后将该信息推送到变量“HASHVAR”。

我的代码只“按原样”解析数据。我被困在如何按照我需要的方式操纵它。

这是我到目前为止所拥有的:

for /f "tokens=*" %%i in (c:\temp\codeblock.txt) do set rawvar=%%i

想法?这在批处理文件中可行吗?

4

1 回答 1

0

交换字符串中的字符

@echo off
setlocal EnableDelayedExpansion

for /f "tokens=*" %%I in ("12345678ABCDEFGH") do set "RAWVAR=%%I"

set "START=0"
:FlipLoop
set "TEMPVAR=!RAWVAR:~%START%,4!"
set /a "START+=4"
if defined TEMPVAR set "HASHVAR=%HASHVAR%%TEMPVAR:~3,1%%TEMPVAR:~2,1%%TEMPVAR:~1,1%%TEMPVAR:~0,1%"
if defined TEMPVAR goto FlipLoop

echo HASHVAR = %HASHVAR%
pause
endlocal

输出:

HASHVAR = 43218765DCBAHGFE
于 2013-08-01T18:27:12.510 回答