用純批量創建十六進制輸出並不是一個好主意。
但你可以使用VBScript或簡單的任務FC.exe可以工作。
@echo off
SETLOCAL EnableDelayedExpansion
set filesize=%~z1
set "hexVal=41"
set "x10=AAAAAAAAAA"
set /a chunks=1+filesize/10
del dummy.txt 2>nul > nul
for /L %%n in (0,1,%chunks%) DO (
<nul >> dummy.txt set /p ".=%x10%"
)
set /a expectedNum=0
for /F "eol=F usebackq tokens=1,2 skip=1 delims=:[] " %%A in (`fc /b "%~dpf1" dummy.txt`) DO (
set /a num=0x%%A && (
set /a numDec=num-1
set "hex=%%B"
for /L %%n in (!expectedNum!=,=1 !numDec!) DO (
echo %hexVal%
)
set /a expectedNum=num+1
echo !hex!
)
)
首先我創建具有(接近)相同長度的文件,然後我在二進制模式(/ B),輸出被掃描並且如果檢測到一個線路missings,它們填充有FC比較它們與x10字符串的hexVal(在這種情況下,0x41 ='A')。
來源
2011-01-10 15:53:38
jeb
謝謝,這個完美的作品,但是當你提到的VBScript它太慢了比較大的文件(36KB),順便說一句您的意思是否有一個命令行方式調用腳本? – 2011-01-10 17:07:29
您可以像這樣的`CSCRIPT MyScript.vbs`從批處理文件中調用VBScript。 – aphoria 2011-01-10 18:10:10