首页 > 解决方案 > 批处理文件中的十六进制 FOR 循环

问题描述

我有一个批处理脚本,里面有这一行。

(hex.exe 只是在两个标志之间给我文件的十六进制值)

hex.exe -b -s 0x40E -e 0x40F "%%f"

我希望它处于一个循环中,以便为 0x40E、0x48E、0x50E、0x58E 执行这一行......但我找不到让它工作的方法。

希望这是有道理的!

完整的批处理文件:

@echo off
setlocal enableextensions enabledelayedexpansion
set /a count = 0
for /r %%f in (*.stl) do (
    echo %%f
    FOR /f "tokens=1 delims= " %%a in ('c:\hex.exe -b -s 0x48E -e 0x48F "%%f"') do (
    if %%a==00 (
        echo %%f >> list.txt
        set /a count += 1
        xcopy /Y %%f f:\Subs\fail\         
        )
    )
)
echo !count! >> list.txt
endlocal

编辑所以我会解释更多我想要做的事情。我想根据对此文件中某些位的测试对我的 subs 文件进行排序。输出中的列表是失败文件的列表,这些文件也粘贴在另一个目录中。我唯一的问题是完全进行测试。现在它只适用于 0x48E 位,但我想测试它的其他位,所以我想更改 -e 和 -s。范围是 40 次第一次迭代,但我不知道如何使用十六进制的那种步骤进行 for 循环。

标签: windowsfor-loopbatch-filehex

解决方案


推荐阅读