[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] Hope Any to Bat,将任何文件插入至Bat中

本帖最后由 HOPE2021 于 2022-6-5 15:19 编辑

这个程序可以将任何文件插入进批处理脚本中,可以让您的批处理能在绝大多数Windows环境下自动解包复杂的文档。

注意
本程序最新版本使用的VBS内核并不成熟,
目前已在Windows XP/Windows Vista/Windows 10环境下进行测试,
打包程序只有在Windows 10中才能正常运行,
不过打包后的自解压脚本可以在Windows XP/Windows Vista/Windows 10中运行。
恳请您的改进。

声明
本程序允许在保留原作者及所有改进者名单的情况下,由任何个人和团体二次发行。

更新日志
        ·Version Version 1.0.0000 09/08/2021
        ·Version 1.0.0001[未发布] 19/08/2021
                首次尝试VBS内核,兼容性极差
        ·Version Version 1.0.0002 05/06/2022
                重新设计VBS内核,速度增强,
                更改了界面。
                未解决兼容性问题,打包程序目前只在 Windows 10 测试正常。
3

评分人数

回复 22# command1152
积分并不会与水平是线性关系,有些大佬积分不多,出手就不同凡响。我觉得虽然自己水平有限,能在熟悉的地方帮到别人也是一种幸福,其他的倒是无所谓了。

TOP

我用您的按键检测做了一个东西:
  1. @echo off
  2. @Call :LoadFunctions
  3. :i
  4. cls
  5. echo;
  6. echo; 1.退出
  7. echo; 2.输入密码
  8. echo; F.控制台
  9. echo;
  10. Set/P=# 请选择:[ ]<Nul
  11. @Call :Choice
  12. If "%ascKey%"=="1" Set/P=#1]<Nul & exit
  13. If "%ascKey%"=="2" Set/P=#2]<Nul & goto :sr
  14. If "%ascKey%"=="f" Set/P=#F]<Nul & goto :y
  15. If 0 Equ 0 @Goto :i %= 防止因特殊字符而出错 =%
  16. :Choice
  17. %_Getch:#ascCode#=ascKey%
  18. @Goto :Eof
  19. :LoadFunctions
  20. Set _Getch=Set "#ascCode#=" ^& ( For /F "Usebackq Delims=" %%_ in (`XCopy /L /W "%~f0" "%~f0" 2^^^>Nul`) Do If Not Defined #ascCode# ( Set "#ascCode#=%%_") ) ^& Call Set "#ascCode#=%%#ascCode#:~-1%%"
  21. @Goto :Eof
  22. :sr
  23. cls
  24. echo;
  25. echo; 输入密码(.清除 [空格]确定)F调出控制台:
  26. Set/P=# %mm%[ ]    <Nul
  27. @Call :Choice
  28. If "%ascKey%"=="f" Set/P=#F]<Nul & set "xxa= " & set "xxb=*" & set "xxc= " & set "xxd= " & goto :y
  29. if "%ascKey%"=="." set "mm=" & Set/P=#.]<Nul & goto :sr
  30. if "%ascKey%"==" " Set/P=#*]<Nul & if "%mm%"=="HOPE2021" goto :y
  31. Set/P=#%ascKey%]<Nul
  32. set mm=%mm%%ascKey%
  33. goto :sr
  34. :y
  35. set xxa=*
  36. set xxb=
  37. set xxc=
  38. set xxd=
  39. :yb
  40. cls
  41. echo;
  42. echo; 控制台
  43. echo; 按数字选择,[空格]确定
  44. echo;
  45. echo; [%xxa%] 1.开头
  46. echo; [%xxb%] 2.输入密码
  47. echo; [%xxc%] 3.退出
  48. echo; [%xxd%] 4.打开cmd
  49. @Call :Choice
  50. if "%ascKey%"==" " (
  51. if "%xxa%"=="*" goto :i
  52. if "%xxb%"=="*" goto :sr
  53. if "%xxc%"=="*" exit
  54. if "%xxd%"=="*" start "" "cmd"
  55. )
  56. if "%ascKey%"=="1" set "xxa=*" & set "xxb= " & set "xxc= " & set "xxd= "
  57. if "%ascKey%"=="2" set "xxa= " & set "xxb=*" & set "xxc= " & set "xxd= "
  58. if "%ascKey%"=="3" set "xxa= " & set "xxb= " & set "xxc=*" & set "xxd= "
  59. if "%ascKey%"=="4" set "xxa= " & set "xxb= " & set "xxc= " & set "xxd=*"
  60. goto :yb
复制代码

TOP

回复 18# qixiaobin0715


    你知道吗:删除有评分的帖子评分会撤回...

TOP

  >> 正在生成文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
无效命令行开关。

出现问题了

TOP

回复 21# qixiaobin0715


    按回复按钮不要钱....

TOP

何必呢???

TOP

本帖最后由 qixiaobin0715 于 2022-6-6 13:42 编辑

连这个也要给我个技术分,不妥不妥。
1

评分人数

TOP

批处理LOGO代码:
  1. @echo off
  2. echo;
  3. echo; ■    ■
  4. echo; ■    ■
  5. echo; ■■■■
  6. echo; ■    ■
  7. echo; ■    ■
  8. echo;
  9. ping -n 1 127.1 >nul&&cls&&echo;
  10. echo; ■    ■
  11. echo; ■    ■  □□□
  12. echo; ■■■■  □  □
  13. echo; ■    ■  □  □
  14. echo; ■    ■  □□□
  15. echo;
  16. ping -n 1 127.1 >nul&&cls&&echo;
  17. echo; ■    ■          ■■■
  18. echo; ■    ■  □□□  ■    ■
  19. echo; ■■■■  □  □  ■■■
  20. echo; ■    ■  □  □  ■
  21. echo; ■    ■  □□□  ■
  22. echo;
  23. ping -n 1 127.1 >nul&&cls&&echo;
  24. echo; ■    ■          ■■■      □□
  25. echo; ■    ■  □□□  ■    ■  □    □
  26. echo; ■■■■  □  □  ■■■    □□□□
  27. echo; ■    ■  □  □  ■        □
  28. echo; ■    ■  □□□  ■          □□□
  29. echo;
  30. ping -n 1 127.1 >nul&&cls&&echo;
  31. echo;  ■■■
  32. echo; ■    ■
  33. echo; ■■■■
  34. echo; ■    ■
  35. echo; ■    ■
  36. echo;
  37. ping -n 1 127.1 >nul&&cls&&echo;
  38. echo;  ■■■
  39. echo; ■    ■
  40. echo; ■■■■  □□□
  41. echo; ■    ■  □  □
  42. echo; ■    ■  □  □
  43. echo;
  44. ping -n 1 127.1 >nul&&cls&&echo;
  45. echo;  ■■■           ■    ■
  46. echo; ■    ■          ■    ■
  47. echo; ■■■■  □□□    ■■■
  48. echo; ■    ■  □  □        ■
  49. echo; ■    ■  □  □    ■■
  50. echo;
  51. ping -n 1 127.1 >nul&&cls&&echo;
  52. echo; ■■■■
  53. echo;    ■
  54. echo;    ■
  55. echo;    ■
  56. echo;    ■
  57. echo;
  58. ping -n 1 127.1 >nul&&cls&&echo;
  59. echo; ■■■■
  60. echo;    ■     □□□
  61. echo;    ■     □  □
  62. echo;    ■     □  □
  63. echo;    ■     □□□
  64. echo;
  65. ping -n 1 127.1 >nul&&cls&&echo;
  66. echo; ■■■
  67. echo; ■    ■
  68. echo; ■■■
  69. echo; ■    ■
  70. echo; ■■■
  71. ping -n 1 127.1 >nul&&cls&&echo;
  72. echo; ■■■    □□□
  73. echo; ■    ■       □
  74. echo; ■■■     □□□
  75. echo; ■    ■  □   □
  76. echo; ■■■    □□ □
  77. ping -n 1 127.1 >nul&&cls&&echo;
  78. echo; ■■■    □□□  ■■■■
  79. echo; ■    ■       □    ■
  80. echo; ■■■     □□□    ■
  81. echo; ■    ■  □   □    ■
  82. echo; ■■■    □□ □    ■
  83. ping -n 1 127.1 >nul&&cls&&echo;
  84. echo; 欢迎使用 Hope Any tp Bat 。
  85. ping -n 2 127.1 >nul&&cls
  86. exit /b
复制代码

TOP

win7好像没有Sort /Unique后面这个参数
https://pc.woozooo.com/mydisk.php

TOP

本帖最后由 HOPE2021 于 2022-6-5 15:15 编辑

1.0.0002下半部分
  1. :GetHex
  2. Echo.
  3. Echo.  ^>^> 正在获取文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
  4. Fsutil File CreateNew 1.$ %jFileSize% > Nul 2> Nul
  5. FC /B "%hFileName%" 1.$ > 2.$
  6. @Call :WriteVBS 1 2.$ 3.$
  7. Echo.
  8. Echo.  ^>^> 正在整理文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
  9. Cscript //Nologo WriteBin.VBS
  10. @Call :WriteVBS 2 %jFileSize%
  11. Echo.
  12. Echo.  ^>^> 正在找回文件遗漏的十六进制信息,此步骤将耗费较多时间,请耐心等待……
  13. Cscript //Nologo WriteBn2.VBS
  14. FC /B "%hFileName%" 2.Tmp > 4.$
  15. @Call :WriteVBS 1 4.$ 5.$
  16. Echo.
  17. Echo.  ^>^> 正在重新整理文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
  18. Cscript //Nologo WriteBin.VBS
  19. Type 3.$ > tHexS.$
  20. Type 5.$ >> tHexS.$
  21. Echo.
  22. Echo.  ^>^> 正在生成文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
  23. Sort /Unique tHexS.$ /O tHex.Tmp
  24. Echo.
  25. Echo.  ^>^> 正在生成文件十六进制码,此步骤将耗费较多时间,请耐心等待……
  26. @Call :WriteVBS 3 tHex.Tmp Hex.Tmp
  27. Cscript //Nologo WriteBn3.VBS
  28. @Goto :Eof
  29. :MakeBatch
  30. Echo.
  31. Echo.  ^>^> 正在生成批处理脚本,此步骤将耗费较多时间,请耐心等待……
  32. (
  33. Echo.Dim objFSO, objFile, strLine
  34. Echo.Dim objOpFSO, objOpFile, strOpLine
  35. Echo.Dim i
  36. Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
  37. Echo.Set objOpFSO = CreateObject^("Scripting.FileSystemObject"^)
  38. Echo.Set objFile = objFSO.OpenTextFile^("Hex.Tmp", 1^)
  39. Echo.Set objOpFile = objOpFSO.CreateTextFile^("Mk.Bat"^)
  40. Echo.objOpFile.Write "@Echo Off" ^& vbCrLf ^& "@Goto :Main" ^& vbCrLf ^& vbCrLf ^& ":Main" ^& vbCrLf ^& vbTab ^& "@Call :Mk_%jFileName%" ^& vbCrLf ^& "@Exit /B" ^& vbCrLf ^& vbCrLf ^& ":Mk_%jFileName%" ^& vbCrLf ^& "Cd. > Mk.$" ^& vbCrLf
  41. Echo.i = 0
  42. Echo.Do Until objFile.atendofstream
  43. Echo. If i = 0 Then objOpFile.Write "(" ^& vbCrLf
  44. Echo. If ^(i + 1^) Mod 256 = 0 Then objOpFile.Write ") >> Mk.$" ^& vbCrLf ^& "(" ^& vbCrLf
  45. Echo. strLine = objFile.ReadLine
  46. Echo. objOpFile.WriteLine "Echo." ^& strLine
  47. Echo. i = i + 1
  48. Echo.Loop
  49. Echo.If i Mod 256 ^<^> 0 Then objOpFile.Write ") >> Mk.$" ^& vbCrLf
  50. Echo.If i Mod 256 = 0 Then objOpFile.Write "Cd.) >> Mk.$" ^& vbCrLf
  51. Echo.objFile.Close
  52. Echo.objOpFile.Close
  53. Echo.Set objFSO = Nothing
  54. Echo.Set objOpFSO = Nothing
  55. ) > $Make.VBS
  56. Cscript //Nologo $Make.VBS
  57. (
  58. Echo.^(
  59. Echo.Echo.Dim objFSO, objFile, strLine
  60. Echo.Echo.Dim objOpFSO, objOpFile, strOpLine
  61. Echo.Echo.Dim i
  62. Echo.Echo.Set objFSO = CreateObject^^^("Scripting.FileSystemObject"^^^)
  63. Echo.Echo.Set objOpFSO = CreateObject^^^("Scripting.FileSystemObject"^^^)
  64. Echo.Echo.Set objFile = objFSO.OpenTextFile^^^("Mk.$", 1^^^)
  65. Echo.Echo.Set objOpFile = objOpFSO.CreateTextFile^^^("Mk_.VBS"^^^)
  66. Echo.Echo.objOpFile.Write "Dim Bin_" ^^^& vbCrLf ^^^& "Bin_ = Array("
  67. Echo.Echo.Do Until objFile.AtEndOfStream
  68. Echo.Echo. strLine = objFile.ReadLine
  69. Echo.Echo. For i = 1 To Len^^^(strLine^^^) Step 2
  70. Echo.Echo. objOpFile.Write "&H" ^^^& Mid^^^(strLine, i, 2^^^) ^^^& ", "
  71. Echo.Echo. Next
  72. Echo.Echo. objOpFile.Write "_ " ^^^& vbCrLf
  73. Echo.Echo.Loop
  74. Echo.Echo.objOpFile.Write "-1)" ^^^& vbCrLf ^^^& vbCrLf
  75. Echo.Echo.objOpFile.WriteLine "Call WriteBinary(""%FName%"", Bin_)"
  76. Echo.Echo.objOpFile.Write vbCrLf
  77. Echo.Echo.objOpFile.WriteLine "Sub WriteBinary(FileName, Buf)"
  78. Echo.Echo.objOpFile.WriteLine " Dim I, aBuf, Size, bStream"
  79. Echo.Echo.objOpFile.WriteLine " Size = UBound(Buf) - 1: ReDim aBuf(Size \ 2)"
  80. Echo.Echo.objOpFile.WriteLine " For I = 0 To Size - 1 Step 2"
  81. Echo.Echo.objOpFile.WriteLine " aBuf(I \ 2) = ChrW(Buf(I + 1) * 256 + Buf(I))"
  82. Echo.Echo.objOpFile.WriteLine " Next"
  83. Echo.Echo.objOpFile.WriteLine " If I = Size Then aBuf(I \ 2) = ChrW(Buf(I))"
  84. Echo.Echo.objOpFile.WriteLine " aBuf=Join(aBuf, """")"
  85. Echo.Echo.objOpFile.WriteLine " Set bStream = CreateObject(""ADODB.Stream"")"
  86. Echo.Echo.objOpFile.WriteLine " bStream.Type = 1: bStream.Open"
  87. Echo.Echo.objOpFile.WriteLine " With CreateObject(""ADODB.Stream"")"
  88. Echo.Echo.objOpFile.WriteLine " .Type = 2 : .Open: .WriteText aBuf"
  89. Echo.Echo.objOpFile.WriteLine " .Position = 2: .CopyTo bStream: .Close"
  90. Echo.Echo.objOpFile.WriteLine " End With"
  91. Echo.Echo.objOpFile.WriteLine " bStream.SaveToFile FileName, 2: bStream.Close"
  92. Echo.Echo.objOpFile.WriteLine " Set bStream = Nothing"
  93. Echo.Echo.objOpFile.WriteLine "End Sub"
  94. Echo.Echo.objFile.Close
  95. Echo.Echo.objOpFile.Close
  96. Echo.Echo.Set objFSO = Nothing
  97. Echo.Echo.Set objOpFSO = Nothing
  98. Echo.^) ^> Mk$.VBS
  99. ) >> Mk.Bat
  100. (
  101. Echo.Cscript //Nologo Mk$.VBS
  102. Echo.Cscript //Nologo Mk_.VBS
  103. If /I %IsCompress%==True Echo.Expand /R "%FName%" ^> Nul 2^> Nul
  104. If /I %IsCompress%==True Echo.If Exist "%FName%" Del /Q "%FName%" ^> Nul 2^> Nul
  105. Echo.If Exist "Mk_.VBS" Del /Q "Mk_.VBS" ^> Nul 2^> Nul
  106. Echo.If Exist "Mk$.VBS" Del /Q "Mk$.VBS" ^> Nul 2^> Nul
  107. Echo.If Exist "Mk.$" Del /Q "Mk.$" ^> Nul 2^> Nul
  108. Echo.@Goto :Eof
  109. ) >> Mk.Bat
  110. If Exist Hex.Tmp Del /Q Hex.Tmp
  111. If Exist $Make.VBS Del /Q $Make.VBS
  112. @Goto :Eof
  113. :WriteVBS
  114. If %1==1 (
  115. (
  116. Echo.Dim objFSO, objFile, strLine
  117. Echo.Dim objOpFSO, objOpFile, strOpLine
  118. Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
  119. Echo.Set objOpFSO = CreateObject^("Scripting.FileSystemObject"^)
  120. Echo.Set objFile = objFSO.OpenTextFile^("%2", 1^)
  121. Echo.Set objOpFile = objOpFSO.CreateTextFile^("%3"^)
  122. Echo.objFile.SkipLine
  123. Echo.Do Until objFile.atendofstream
  124. Echo. strLine = objFile.ReadLine
  125. Echo. strOpLine = Split^(strLine, " "^)
  126. Echo. objOpFile.WriteLine strOpLine^(0^) ^& strOpLine^(1^)
  127. Echo.Loop
  128. Echo.objFile.Close
  129. Echo.objOpFile.Close
  130. Echo.Set objFSO = Nothing
  131. Echo.Set objOpFSO = Nothing
  132. ) > WriteBin.VBS
  133. )
  134. If %1==2 (
  135. (
  136. Echo.Dim objFSO, objFile, strLine, i
  137. Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
  138. Echo.Set objFile = objFSO.CreateTextFile^("2.Tmp"^)
  139. Echo.For i = 0 To %2 - 1
  140. Echo. objFile.Write Chr^(65^)
  141. Echo.Next
  142. Echo.objFile.Close  
  143. Echo.Set objFSO=Nothing
  144. ) > WriteBn2.VBS
  145. )
  146. If %1==3 (
  147. (
  148. Echo.Dim objFSO, objFile, strLine
  149. Echo.Dim objOpFSO, objOpFile, strOp
  150. Echo.Dim i
  151. Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
  152. Echo.Set objOpFSO = CreateObject^("Scripting.FileSystemObject"^)
  153. Echo.Set objFile = objFSO.OpenTextFile^("%2", 1^)
  154. Echo.Set objOpFile = objOpFSO.CreateTextFile^("%3"^)
  155. Echo.i = 0
  156. Echo.Do Until objFile.atendofstream
  157. Echo. strLine = objFile.ReadLine
  158. Echo. strOp = Split^(strLine, ":"^)
  159. Echo. objOpFile.Write strOp^(1^)
  160. Echo. If ^(i + 1^) Mod 32 = 0 Then objOpFile.Write vbCrLf
  161. Echo. i = i + 1
  162. Echo.Loop
  163. Echo.objFile.Close
  164. Echo.objOpFile.Close
  165. Echo.Set objFSO = Nothing
  166. Echo.Set objOpFSO = Nothing
  167. ) > WriteBn3.VBS
  168. )
  169. @Goto :Eof
  170. :PrintWizardTitle
  171. @Cls
  172. For /L %%I in (0,1,1) Do Echo.
  173. Echo.    新建工程向导
  174. Set /P Str=#    <Nul
  175. For /L %%I in (0,1,71) Do Set /P Str=#=<Nul
  176. Echo.
  177. For /L %%I in (0,1,1) Do Echo.
  178. @Goto :Eof
  179. :ReadHelp
  180. @Cls
  181. For /L %%I in (0,1,1) Do Echo.
  182. Echo.  Hope(R) Any to Bat 自述文档
  183. Echo.
  184. Echo.  Hope Any to Bat [Version 1.1.00002]
  185. Echo.  (C) Copyright 2016-2022 Hope Corp.
  186. Echo.
  187. Echo.  ·Hope(R) Any to Bat 是什么
  188. Echo.      Hope(R) Any to Bat 是一款批处理嵌入包设计软件,它可以将任何文件插入到批
  189. Echo.      处理脚本中,并自动设计解包程序。此程序支持VBS技术,能更快的完成操作。
  190. Echo.
  191. Echo.  ·Hope(R) Any to Bat 更新日志
  192. Echo.      ·Version 1.0.0000 09/08/2021
  193. Echo.
  194. Echo.      ·Version 1.0.0001[未发布] 19/08/2021
  195. Echo.        首次尝试VBS内核,兼容性极差
  196. Echo.
  197. Echo.      ·Version 1.0.0002 05/06/2022
  198. Echo.        重新设计VBS内核,速度增强,
  199. Echo.        更改了界面。
  200. Echo.        未解决兼容性问题,打包程序目前只在 Windows 10 测试正常。
  201. Pause > Nul
  202. @Goto :Eof
复制代码
1

评分人数

    • what: 360无痕永远滴神技术 + 1
Why join the navy, if you can be a pirate? - Steve Jobs

TOP

本帖最后由 HOPE2021 于 2022-6-5 15:15 编辑

1.0.0002上半部分
  1. @Mode Con: Cols=80 Lines=25 & @Color 3F & @Chcp 936 > Nul & Title Hope Any to Bat Version 1.0.0002 & @Echo Off
  2. @Goto :Begin
  3. :Begin
  4. Cd /D "%~dp0"
  5. @Call :LoadFunctions
  6. @Goto :Main
  7. :Main
  8. Cd /D "%~dp0"
  9. @Call :UserInteraction
  10. @Goto :Main
  11. :UserInteraction
  12. @Call :PrintMenu
  13. @Call :Choice
  14. If "%ascKey%"=="1" Set /P Str=#1]<Nul & @Goto :NewProject
  15. If "%ascKey%"=="2" Set /P Str=#2]<Nul & @Call :ReadHelp
  16. If "%ascKey%"=="3" Set /P Str=#3]<Nul & @Exit 0
  17. If 0 Equ 0 @Goto :Eof %= 防止因特殊字符而出错 =%
  18. @Goto :Eof
  19. :PrintMenu
  20. @Cls
  21. For /L %%I in (0,1,1) Do Echo.
  22. Echo.    欢迎使用 Hope(R) Any2Bat 实用程序
  23. Set /P Str=#    <Nul
  24. For /L %%I in (0,1,71) Do Set /P Str=#=<Nul
  25. Echo.
  26. For /L %%I in (0,1,2) Do Echo.
  27. Echo.    1) 新建工程
  28. Echo.
  29. Echo.    2) 阅读帮助文档
  30. Echo.
  31. Echo.    3) 退出 Hope(R) Any2Bat
  32. Echo.
  33. Set /P Str=#    请选择:[ ]<Nul
  34. @Goto :Eof
  35. :Choice
  36. %_Getch:#ascCode#=ascKey%
  37. @Goto :Eof
  38. :LoadFunctions
  39. Set _Getch=Set "#ascCode#=" ^& ( For /F "Usebackq Delims=" %%_ in (`XCopy /L /W "%~f0" "%~f0" 2^^^>Nul`) Do If Not Defined #ascCode# ( Set "#ascCode#=%%_") ) ^& Call Set "#ascCode#=%%#ascCode#:~-1%%"
  40. @Goto :Eof
  41. :NewProject
  42. @Call :PrintWizardTitle
  43. Set FileName=//
  44. Set /P FileName=#    请将需要打包的文件拖入此窗体:
  45. Set FileName=%FileName:"=%
  46. Set FileName="%FileName%"
  47. If Exist %FileName% @Goto :NewProject1
  48. If Not Exist %FileName% (
  49. Echo.
  50. Echo.
  51. Echo.    无此文件!
  52. Pause > Nul
  53. @Goto :NewProject
  54. )
  55. @Goto :NewProject
  56. :NewProject1
  57. @Call :PrintWizardTitle
  58. Set IsCompress=//
  59. Set jFileName=//
  60. For /F "Delims=" %%I in ('Dir /A-D /B %FileName%') Do (
  61. %= 仅文件名 =%
  62. Set jFileName=%%~nI
  63. Set jstFileName=%%~nI
  64. %= 仅文件拓展名 =%
  65. Set jExtension=%%~xI
  66. )
  67. Set jFileName=%jFileName: =%
  68. Echo.    需要将源文件压缩吗?
  69. Echo.
  70. Echo.    假如您的源文件体积较大,那么压缩后可以减小包的大小,增加解包的效率;如果
  71. Echo.    您的源文件体积较小,那么压缩后可能会适得其反。
  72. Echo.
  73. Echo.
  74. Set /P Str=#    需要压缩吗?[Y/N]:[ ]<Nul
  75. @Call :Choice
  76. If /I "%ascKey%"=="Y" (
  77. Set /P Str=#Y]<Nul
  78. Set IsCompress=True
  79. @Goto :NewProject2
  80. )
  81. If /I "%ascKey%"=="N" (
  82. Set /P Str=#N]<Nul
  83. Set IsCompress=False
  84. @Goto :NewProject2
  85. )
  86. If 0 Equ 0 @Goto :NewProject1 %= 防止因特殊字符而出错 =%
  87. @Goto :NewProject1
  88. :NewProject2
  89. @Cls
  90. Echo.
  91. Echo.  ^>^> 正在创建工程目录
  92. FOR /F "TOKENS=2 DELIMS==" %%I IN ('WMIC PATH WIN32_OPERATINGSYSTEM GET LOCALDATETIME /VALUE ^| FINDSTR "="') DO (
  93. SET "STRDATE=%%I"
  94. )
  95. SET "TODAY=%STRDATE:~0,4%%STRDATE:~4,2%%STRDATE:~6,2%"
  96. SET "NOW=%STRDATE:~0,4%-%STRDATE:~4,2%-%STRDATE:~6,2% %STRDATE:~8,2%#%STRDATE:~10,2%#%STRDATE:~12,2%"
  97. Md "Project_%NOW%" > Nul 2> Nul
  98. Cd /D "Project_%NOW%"
  99. Md "Temp" > Nul 2> Nul
  100. Cd Temp
  101. If /I "%IsCompress%"=="False" (
  102. Copy %FileName% "%Cd%\Source.Src" > Nul 2> Nul
  103. For /F "Delims=" %%I in ('Dir /B Source.Src') Do Set jFileSize=%%~zI
  104. Set hFileName=Source.Src
  105. Set FName=%jstFileName%%jExtension%
  106. )
  107. If /I "%IsCompress%"=="True" (
  108. Copy %FileName% "%Cd%\Source.$" > Nul 2> Nul
  109. Echo.
  110. Echo.  ^>^> 正在压缩
  111. For /F "Delims=" %%I in ('Dir /B Source.$') Do Set jFileSize=%%~zI
  112. MakeCAB /D CompressionType=lzx /D CompressionMemory=21 /D maxdisksize=%jFileSize% %FileName% "%Cd%\%jFileName%.Cab" > Nul 2> Nul
  113. For /F %%I in ('Dir /B "%jFileName%.Cab"') Do Set jFileSize=%%~zI
  114. Set hFileName=%jFileName%.Cab
  115. Set FName=%jFileName%.Cab
  116. )
  117. @Call :GetHex
  118. Cd..
  119. Md "Release" > Nul 2> Nul
  120. Copy "Temp\Hex.Tmp" "Release\Hex.Tmp" > Nul 2> Nul
  121. Cd /D "Release"
  122. @Call :MakeBatch
  123. @Goto :NewProject3
  124. :NewProject3
  125. Echo.
  126. Echo.  ^>^> 已完成打包任务,是否进行查看和调试?
  127. Echo.
  128. Echo.
  129. Set /P Str=#    需要调试和查看吗?[Y/N]:[ ]<Nul
  130. @Call :Choice
  131. If /I "%ascKey%"=="Y" (
  132. Set /P Str=#Y]<Nul
  133. Start Mk.Bat
  134. Start Explorer "%Cd%"
  135. @Goto :Main
  136. )
  137. If /I "%ascKey%"=="N" (
  138. @Goto :Main
  139. )
  140. If 0 Equ 0 @Goto :NewProject1 %= 防止因特殊字符而出错 =%
  141. @Goto :NewProject3
复制代码
Why join the navy, if you can be a pirate? - Steve Jobs

TOP

1.0.0000版本
  1. @echo off
  2. Rem Exe-Com2Bat生成程序
  3. cls
  4. chcp 936 > nul
  5. Mode Con: Cols=80 Lines=25
  6. color 3f
  7. @goto :Start
  8. :Start
  9. if exist Exe-Com2Bat.Exe-Com2Bat del Exe-Com2Bat.Exe-Com2Bat
  10. set "File=/"
  11. cls
  12. echo.
  13. echo.
  14. echo.    Exe-Com2Bat 加密生成程序
  15. echo.
  16. echo.    By HOPE2021
  17. echo.
  18. echo.    此计算机程序用于将其他程序的生成程序嵌入至Bat中,即点即生成,稍加改动
  19. echo.    即可将第三方嵌入至Bat文件中,十分方便。
  20. echo.    本程序会将资源打包成Bat形式的安装包,存在当前目录下,命名为Exe-Com2Ba
  21. echo.    t.bat,请及时查收。
  22. echo.    Exe-Com2Bat.bat中的代码请勿随意编辑,否则很有可能生成木马。
  23. echo.
  24. echo.    注意:
  25. echo.    调用的系统资源有限,不建议您加密大小大于 1 Mb 的程序。
  26. echo.    无法为您加密 .dll 或 .db 文件,这些应用程序拓展您只能以其他程序加密。
  27. echo.    只能够加密 .exe 或 .com 文件
  28. echo.   
  29. echo.    兼容性声明:
  30. echo.    Windows 7 x64
  31. echo.    Windows 8.x x64
  32. echo.    Windows 10.x x64
  33. echo.
  34. set /p File=    ^>^> 请将要转换的Exe或Com文件拖入这里:
  35. set "File=%File:"=%"
  36. set File="%File%"
  37. if not exist %File% (
  38. echo.
  39. echo.    ^>^> 没有此文件...
  40. echo.
  41. echo.    ^>^> 请按回车键继续...
  42. pause > nul
  43. @goto :Start
  44. )
  45. set /p Filea=    ^>^> 请输入程序的名称(带有文件拓展名):
  46. set "Filea=%Filea:"=%"
  47. set Filea="%Filea%"
  48. echo.
  49. echo.    ^>^> 正在进行 Certutil 编码...
  50. Certutil -encode %File% "%cd%\Exe-Com2Bat.Exe-Com2Bat" > nul
  51. find /i "(" Exe-Com2Bat.Exe-Com2Bat > nul
  52. if not errorlevel 1 goto :Start_1
  53. find /i ")" Exe-Com2Bat.Exe-Com2Bat > nul
  54. if not errorlevel 1 goto :Start_1
  55. echo.@echo off > Exe-Com2Bat.bat
  56. echo.( >> Exe-Com2Bat.bat
  57. for /f "delims=" %%i in (Exe-Com2Bat.Exe-Com2Bat) do (
  58. echo.echo.%%i >> Exe-Com2Bat.bat
  59. )
  60. echo.) ^> %Filea% >> Exe-Com2Bat.bat
  61. echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
  62. echo.Certutil -decode -f %Filea% %Filea% ^> nul >> Exe-Com2Bat.bat
  63. echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
  64. echo.exit >> Exe-Com2Bat.bat
  65. start explorer "%cd%"
  66. %0
  67. :Start_1
  68. echo.@echo off > Exe-Com2Bat.bat
  69. echo.cd.^> %Filea% >> Exe-Com2Bat.bat
  70. for /f "delims=" %%i in (Exe-Com2Bat.Exe-Com2Bat) do (
  71. echo.echo.%%i ^>^> %Filea% >> Exe-Com2Bat.bat
  72. )
  73. echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
  74. echo.Certutil -decode -f %Filea% %Filea% ^> nul >> Exe-Com2Bat.bat
  75. echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
  76. echo.exit >> Exe-Com2Bat.bat
  77. start explorer "%cd%"
  78. %0
复制代码
Why join the navy, if you can be a pirate? - Steve Jobs

TOP

回复 7# HOPE2021


    所以你是氵怪!   <---刚从mcbbs矿工茶馆过来的
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 3# HOPE2021


    删除VBScript Script
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

返回列表