批处理文件脚本,用于解析和编辑大块文本

时间:2013-08-01 17:34:19

标签: batch-file scripting

我有一个文本文件,其中一个非常长的文本块,通常是大约600个字母数字字符(没有空格),是该文件的唯一内容。我需要解析那个文本块并做一个排序哈希的事情然后将散列的文本推送到变量中。

示例:

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

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

我只能按原样解析数据。我一直坚持如何按照我需要的方式操纵它。

这是我到目前为止所做的:

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

思考?这可以在批处理文件中使用吗?

1 个答案:

答案 0 :(得分: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