如何用bat删除文件的16进制前四个字节?

查看 42|回复 3
作者:ccb666   
[i][i] border=0 />
用bat可以删掉这样前四个字节,然后重新生成一个.png文件吗?(不更改文件名,只需要更改后缀)
或者有别的方法实现吗?

字节, 文件

blfiag   

得用个脚本语言吧,如py,能读写二进制文件的。是不是ps也行?
blfiag   

问:
powershell如何读写,二进制文件?
powershell如何读写,大文件?
答:
简单来说,是通过调用.net,通过二进制的方法,来读写的。
操作系统读写大文件,都是使用二进制(文件流)的形式。
通过更改字节偏移量,来实现io跳转。
然后读写bytes,具体请看手册:
https://msdn.microsoft.com/zh-cn/library/system.io.filestream(v=vs.110).aspx
ccb666
OP
  


blfiag 发表于 2023-4-27 11:44
得用个脚本语言吧,如py,能读写二进制文件的。是不是ps也行?

这是批处理论坛大佬写的,可以实现只是每次都要更改文件名,可以做到文件拖上去自动去掉前四字节,然后重新生成一个.png文件吗?(保持原文件名,只需要更改后缀)
[Asm] 纯文本查看 复制代码' & cls & cscript.exe /nologo /e:vbscript "%~f0" "1.sct" "2.sct" & pause & exit
Set oStream = CreateObject("ADODB.Stream")
oStream.Type = 1    'adTypeBinary
oStream.Mode = 3    'adModeReadWrite
oStream.Open()
With CreateObject("ADODB.Stream")
    .Type = 1    'adTypeBinary
    .Mode = 3    'adModeReadWrite
    .Open()
    .LoadFromFile WScript.Arguments(0)
    .Position = 4
    .CopyTo oStream
    .Close()
End With
oStream.SaveToFile WScript.Arguments(1), 2    'adSaveCreateOverWrite
oStream.Close()
您需要登录后才可以回帖 登录 | 立即注册

返回顶部