搜索
  • 您还未登录,请
  • 查看: 1530|回复: 1
    打印 上一主题 下一主题
    收起左侧

    Any2Bat.vbs将exe文件转换成bat

    [复制链接]
    • 形象
    • 资料
    • 荣誉
    CooL.泪猪  男性
    发短消息 加为好友

    QQ查看个人网站
    UID: 1
    帖子: 5112
    精华: 33
       积分: 33240
       威望: 2128
       状态: 0
       积极: 9976
       贡献: 644
       魅力: 499
       活跃: 11205
       人气: 1235
       酷币: 23500
       阅读权限:255
       注册时间:2009-9-1
       在线时长:2829小时
       失踪天数: 0 天
       社区经验: 18级 已经发了5112篇文章咯快19级咯
       在线状态:   
    时尚酷族泪猪
    级别: 酷族管理员
  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 299 天

    连续签到: 2 天

    [LV.8]以坛为家I

    荣誉勋章

    社区QQ达人 超级无敌新人奖 优秀成员 最佳成员奖 原创者勋章 沙发王勋章 每日签到奖 推广之星奖 宣传大使 极度诱惑勋章 视觉潮人奖 先锋奖 六星奖 音乐天才奖 空间认证奖 YY认证勋章 在线时间王勋章 红人勋章 爱心勋章 社区活动奖 幸福恋人奖(男) 酷Q帅哥奖 精英会员审核团队标志 最具人气奖 水瓶座
    跳转到指定楼层
    楼主
    CooL.泪猪实名认证 发表于 2012-4-29 22:22:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式      紫钻仅向指定用户开放  
    +1
    1531°C
    1
    • CooL.皇児
    过: 他们

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    一个把任何文件转成批处理的很好用的脚本。
    用Base64编码数据,好处是压缩了大小(相对bin2str而言),缺点是增加处理时间和脚本复杂度。
    由于效率瓶颈是在bat生成vbs这一步,所以总的来说还是合算了。
    写文件用ADODB.Recordset,比debug好使多了。
    大部分事都是脚本做的,批处理只是用echo来生成脚本而已。
    echo版的好处是,全选复制粘贴到cmd shell里就把文件上传了。



    新版本改进如下:
    1,增加数据压缩功能(使用系统自带的makecab.exe和expand.exe)。
    2,Base64编码采用Microsoft.XMLDOM,速度快,代码更简洁。
    3,echo生成临时脚本时文件名不带后缀,避免杀毒软件频繁扫描,提高效率。

    用法不变。以文件名为参数,或拖放文件到Any2Bat.vbs的图标上。
    文件大小以生成的bat不超过500K为宜。

    '====================代码分割线==============

    'Any2Bat.vbs v2.0 by zzzEVAzzz
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set shl = CreateObject("WScript.Shell")
    Set xml = CreateObject("Microsoft.XMLDOM")
    Set stm = CreateObject("ADODB.Stream")

    Set arg = WScript.Arguments
    If arg.Count = 0 Then WScript.Quit
    If Not fso.FileExists(arg(0)) Then WScript.Quit

    Set f = fso.GetFile(arg(0))
    rr = shl.Run("makecab.exe """ & f.Path & """ xx.cab", 0, True)
    If rr <> 0 Then WScript.Quit

    Set el = xml.createElement("cab")
    el.dataType = "bin.base64"
    stm.Open : stm.Type = 1
    stm.LoadFromFile "xx.cab"
    el.nodeTypedValue = stm.Read
    txt = Replace(el.text, vbLf, ">>xx" & vbNewLine & "@echo ")
    stm.Close
    fso.DeleteFile "xx.cab"

    With fso.OpenTextFile(f.Path & ".bat", 2, True)
    .WriteLine "@echo ^<package^>^<cab xmlns:dt=""urn:schemas-microsoft-com:datatypes"" dt:dt=""bin.base64""^> >xx"
    .Write "@echo " : .Write txt : .WriteLine ">>xx"
    .WriteLine "@echo ^</cab^>^<job^>^<script language=""VBScript""^> >>xx"
    .WriteLine "@echo Set xml = CreateObject(""Microsoft.XMLDOM"")>>xx"
    .WriteLine "@echo xml.load WScript.ScriptFullName>>xx"
    .WriteLine "@echo Set stm = CreateObject(""ADODB.Stream"")>>xx"
    .WriteLine "@echo stm.Open : stm.Type = 1 >>xx"
    .WriteLine "@echo stm.Write xml.documentElement.childNodes.item(0).nodeTypedValue>>xx"
    .WriteLine "@echo stm.SaveToFile ""xx.cab"">>xx"
    .WriteLine "@echo ^</script^>^</job^>^</package^> >>xx"
    .WriteLine "rename xx xx.wsf"
    .WriteLine "cscript.exe //nologo xx.wsf"
    .WriteLine "expand.exe -r xx.cab>nul"
    .Write "del xx.wsf & del xx.cab"
    .Close
    End With

    '================代码结束================
    CooL.泪猪说:
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
         时尚酷族社区:www.coqq.net
    • 形象
    • 资料
    • 荣誉
    CooL.皇児  男性
    发短消息 加为好友

    QQ查看个人网站
    UID: 19
    帖子: 403
    精华: 15
       积分: 2651
       威望: 164
       状态: 0
       积极: 762
       贡献: 81
       魅力: 81
       活跃: 852
       人气: 242
       酷币: 2190
       阅读权限:70
       注册时间:2010-7-25
       在线时长:70小时
       失踪天数: 4398 天
       社区经验: 06级 已经发了403篇文章咯快7级咯
       在线状态:   
    CooL.皇児
    级别: 『社区成长』LV.5

    该用户从未签到

    升级   82.55%

    荣誉勋章

    社区QQ达人 超级无敌新人奖 优秀成员 最佳成员奖 原创者勋章 沙发王勋章 每日签到奖 推广之星奖 宣传大使 社区精英会员奖励 极度诱惑勋章 视觉潮人奖 先锋奖 六星奖 音乐天才奖 空间认证奖 YY认证勋章 爱心勋章 社区活动奖 幸福恋人奖(男) 酷Q帅哥奖 优秀版主 最具人气奖 金牛座
    沙发
    CooL.皇児实名认证 发表于 2012-4-29 23:26:07 | 只看该作者         
    楼主发帖辛苦了,谢谢楼主分享!
    酷家QQ空间社区,我的最爱!
    CooL.皇児说:

    发表回复

    您需要登录后才可以回帖 登录 | 会员注册

    本版积分规则

    欢迎您的光临,如果您觉得本站做得不错的话,请把本站介绍给您的好友,谢谢大家的支持!
    发布主题 上个主题 下个主题 快速回复 收藏帖子 返回列表

    ©2009-2025 时尚酷族社区 http://www.coqq.net/  版权所有 
      

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