Board logo

标题: [其他] [已解决]批处理如何从文件里提取分段内容到txt [打印本页]

作者: a574045075    时间: 2020-10-1 16:49     标题: [已解决]批处理如何从文件里提取分段内容到txt


更正一下,图片应该显示的是tmd1.bin和tmd2.bin文件

请问如何用批处理把tmd1.bin和tmd2.bin文件位置0x141至0x144和0x155至0x159的内容批量提取到文本?
提取后的内容如下图所示:


提到的文件
链接:https://pan.baidu.com/s/1IRRD4klL459tC6esffWcMg
提取码:5a95
作者: went    时间: 2020-10-1 22:08

提取tmd*.bin文件指定位置数据到data.txt,如下图

你发的文件和一楼显示的不一样
  1. @powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause&exit
  2. Remove-Item "data.txt" 2>$null
  3. dir tmd*.bin | foreach {
  4.     $stream = [System.IO.File]::OpenRead($_.FullName)
  5.     $stream.Position = 33
  6.     $str=""
  7.     for($i=0;$i -lt 4;$i++){ $str+='{0:X2}' -f $stream.ReadByte() }
  8.     $str+=" "
  9.     $stream.Position = 53
  10.     for($i=0;$i -lt 5;$i++){ $str+='{0:X2}' -f $stream.ReadByte() }
  11. $str
  12.     $str | Out-File "data.txt" -Append
  13.     $stream.Close()
  14. }
复制代码

作者: terse    时间: 2020-10-2 15:49

看了下样本 代码仅针对此样本
  1. @echo off
  2. >data.txt (for %%a in (tmd1 tmd2) do (
  3.       powershell "$h=Format-Hex %%a;-join($($h[20].Bytes[1..4] |%% ToString  X2;' ';$h[21].Bytes[5..9] |%% ToString  X2))"
  4. ))
  5. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2