找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22298|回复: 2

[其他] [已解决]批处理如何从文件里提取分段内容到txt

[复制链接]
发表于 2020-10-1 16:49:19 | 显示全部楼层 |阅读模式

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

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


提到的文件
链接:https://pan.baidu.com/s/1IRRD4klL459tC6esffWcMg
提取码:5a95
发表于 2020-10-1 22:08:18 | 显示全部楼层
提取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. }
复制代码

评分

参与人数 2技术 +2 收起 理由
yhcfsr + 1 乐于助人
a574045075 + 1 谢谢了

查看全部评分

发表于 2020-10-2 15:49:43 | 显示全部楼层
看了下样本 代码仅针对此样本
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 04:28 , Processed in 0.017250 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表