将批处理脚本转换为AHK以进行进一步开发

时间:2013-05-12 22:02:16

标签: android batch-file autohotkey

这是批量脚本的一部分,用于提取我被卡片共享的MTK android boot.img。

一个AHK新手自己,因为标题说并且卡在循环,%boot_size%& cpio 未提取到 rmdisk 文件夹...

set /A N=0
:loop
FOR /F %%G IN (bin\off2.txt) DO (
    if !N!==1 (
        set /A ofs1=%%G
        set /A N+=1
    )
    if !N!==3 (
        set /A ofs2=%%G
        set /A N+=1
    )
    if !N!==5 (
        set /A ofs3=%%G+4
        set /A N+=1
    )   
    if `%%G` EQU `offset` (
            set /A N+=1
    )
)
FOR %%i IN (%1) DO ( set /A boot_size=%%~Zi )

md %~N1

bin\sfk166.exe partcopy %1 -fromto 0x0 %ofs1% %~N1\kernel_header -yes

bin\sfk166.exe partcopy %1 -fromto %ofs1% %ofs2% %~N1\kernel -yes

bin\sfk166.exe partcopy %1 -fromto %ofs2% %ofs3% %~N1\ram_header -yes

bin\sfk166.exe partcopy %1 -fromto %ofs3% %boot_size% %~N1\ram_disk.gz -yes

bin\7z.exe -tgzip x -y %~N1\ram_disk.gz -o%~N1 >nul

md %~N1\rmdisk
cd %~N1
cd rmdisk
%~dp0bin\cpio.exe -i <../ram_disk

非常感谢任何帮助...; - )

TIA


@ MCL 感谢您的回复。脚本的第一部分就像是直接翻译,所以它只是起作用...... :-P

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

RunWait, %comspec% /c %A_ScriptDir%\bin\sfk166.exe hexfind %A_ScriptDir%\recovery.img -pat -bin /88168858/ -case>%A_ScriptDir%\bin\offset.txt, , min
RunWait, %comspec% /c %A_ScriptDir%\bin\sfk166.exe hexfind %A_ScriptDir%\recovery.img -pat -bin /FFFFFFFF1F8B08/ -case>>%A_ScriptDir%\bin\offset.txt , , min
RunWait, %comspec% /c %A_ScriptDir%\bin\sfk166.exe find %A_ScriptDir%\bin\offset.txt -pat offset>%A_ScriptDir%\bin\off2.txt, , min
RunWait, %comspec% /c %A_ScriptDir%\bin\sfk166.exe replace %A_ScriptDir%\bin\off2.txt -binary /20/0A/ -yes, , min
FileRemoveDir, %A_ScriptDir%/recovery ;to make sure old failed extracted folder is deleted
FileCreateDir, %A_ScriptDir%/recovery

1 个答案:

答案 0 :(得分:0)

嗯,我终于翻译了它&amp;它工作得很好,猜测它们是真的,他们说 AHK 可以执行/替换任何批处理命令。 。 。

这方面的关键解决方案是了解批处理脚本尝试做什么&amp;用 AHK 命令替换它。每行执行一个命令&amp;看看它做了什么。 。

这就是我所做的,将批次脚本&amp;的 %% ofs2%%ofs3%%boot_size%添加回来。以下命令。 。

yourbatchfile.bat>log.txt

分析 log.txt 内容&amp;它会让你知道下一步该做什么。 。 。祝你好运; - )