[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
test.bat
  1. #&cls&@cd /d "%~dp0" & powershell -c "$cur_dir='%~dp0';Get-Content '%~0' | Out-String | Invoke-Expression" &pause&exit
  2. $file = '胡歌 - 逍遥叹.krc'
  3. #密钥
  4. $key = @(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105)
  5. #加载dll
  6. [void][System.Reflection.Assembly]::LoadFile($cur_dir+'zlib.dll')
  7. #读取源文件
  8. $bytes = [System.IO.File]::ReadAllBytes($file)
  9. #解密
  10. $compress_bytes = New-Object 'System.Collections.ArrayList'
  11. for($i = 4; $i -lt $bytes.Count-4; $i++){ [void]$compress_bytes.Add(($bytes[$i] -bxor $key[($i-4)%16])) }
  12. #解压缩
  13. $str = [Ionic.Zlib.ZlibStream]::UncompressString($compress_bytes)
  14. #转lrc
  15. &{
  16.     $str -split '\r\n' | foreach {
  17.         if($_ -match '^\[(\d+),(\d+)\]'){
  18.             $t = (New-Object 'datetime' (([int]$Matches[1])*10000)).ToString('[mm:ss.ff]')
  19.             $s = $_ -replace '\[\d+?,\d+\]','' -replace '<\d+?,\d+?,\d+>',''
  20.             $t + $s
  21.         }
  22.     }
  23. } | Out-File ($file -replace 'krc$','lrc')
复制代码
需要zlib库,和bat放一起zlib.dll

TOP

本帖最后由 went 于 2022-1-17 22:25 编辑

回复 7# 5i365


    dll下载了吗,改成这样呢
  1. [void][System.Reflection.Assembly]::UnsafeLoadFrom($cur_dir+'zlib.dll')
复制代码
!!!!!
1

评分人数

    • 5i365: 下载了, 用这个就可以了! 技术牛X, 乐于助 ...技术 + 1

TOP

回复 9# 5i365


    powershell在便捷性上确实秒杀其它脚本
    参考http://www.doczj.com/doc/52a6af6f5bcfa1c7aa00b52acfc789eb172d9ea8.html

TOP

回复 10# 5i365


    c是用的zlib的静态库,不需要额外的dll,powershell不行
  1. #include "zlib/zconf.h"
  2. #include "zlib/zlib.h"
复制代码

TOP

回复 14# 5i365


    真想把coder.exe放到ps里,用base64存放
    但coder.exe还是有16kb,我觉得大可不必

TOP

返回列表