标题: [其他] Hope Any to Bat,将任何文件插入至Bat中 [打印本页]
作者: HOPE2021 时间: 2021-8-9 16:29 标题: 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 测试正常。
作者: slimay 时间: 2021-8-9 17:48
好样的, 没了Certutil, 看你怎么办,关键时刻还得用bse,不仅仅是嵌入exe, 可压缩嵌入各种文件
作者: HOPE2021 时间: 2021-8-9 17:57
本帖最后由 HOPE2021 于 2021-8-9 18:01 编辑
回复 2# slimay
请看兼容性声明:
echo. 兼容性声明:
echo. Windows 7 x64
echo. Windows 8.x x64
echo. Windows 10.x x64
不过,谢谢您的提醒,我正在查阅关于使用vbs进行base64加密的方法。
作者: cmd1152 时间: 2021-8-10 14:41
我也有Bat转Exe程序,可以嵌入文件夹等任何文件
作者: HOPE2021 时间: 2021-8-10 16:32
是的,我从您这里下载了bat转exe程序。谢谢。
作者: locoman 时间: 2021-8-21 16:17
回复 1# HOPE2021
谢谢楼主的无私分享,收藏学习!
好东西需要作者详解其功能和用法及其示例,方能不辜负作者初心!!
想向楼主进一步请教详解,对您这个东东我的理解是不是对的:
比如:
我有一个abc.exe文件,拖入其中之后,确实自动生成了一个Exe-Com2Bat.bat文件和我定义的test001.bat文件。
1. 原先那个abc.exe文件可以不用了,直接删除了也可以吗??
2. Exe-Com2Bat.bat文件和我定义的test001.bat文件,究竟哪个才是我最终需要的文件呢??(我把Exe-Com2Bat.bat文件也删除了,直接使用test001.bat文件也可以看见原先abc.exe的执行结果)。
3. 如果,原先的那个abc.exe文件是可以用命令行执行并且可以带参数执行的,那么,我用您这个时,最终就需要abc.exe /stext abclist.txt这样自动执行,怎么办呢??更进一步,将来abclist.txt这个文件名需要动态更换,又怎么办呢??
谢谢您详解,祝福您更上一层楼!有更多的成果更多的收获!!
作者: HOPE2021 时间: 2021-8-21 16:49
本帖最后由 HOPE2021 于 2021-8-21 17:10 编辑
回复 6# locoman
1.Exe-Com2Bat.Bat只是一个安装程序,如果您想删除abc.exe,请新建一个空文件夹,在此空文件夹里运行Exe-Com2Bat.Bat,再验证释放出来的abc.exe是否能正常运行,如果可以正常运行,那么abc.exe就可以删除.
2.因为Exe-Com2Bat.Bat是安装程序,如果它运行成功,那么您可以把它稍作改进,把%0改为goto,以达到内嵌abc.exe的目的.
3.除非是某些特殊文件格式(目前已知.Zip,.Dll,.Db),Exe-Com2Bat是不会损伤文件的,您可以将Exe-Com2Bat.BAt中的代码内嵌至批处理文件中,如果您要动态替换文件名,您可以:- Set /p FileName=
- abc.exe /stext "%FileName%"
复制代码
所以,您可以使用类似以下的格式进行内嵌式第三方程序的使用:- @echo off
- @Goto :Begin
-
- :Begin
- Call :abc_Installs
- Set /p FileName=
- abc.exe /stext "%FileName%"
- [您的代码]
-
- :abc_Installs
- (
- echo.[Base64码]
- ) > abc.exe
- if exist abc.exe @Goto :eof
- if not exist abc.exe @Call :abc_Installs
- @Call :abc_Installs
复制代码
参考程序:
http://www.bathome.net/thread-59538-1-1.html
http://www.bathome.net/thread-59481-1-1.html[1.0.0038以前的版本]
谢谢
作者: cmd1152 时间: 2022-6-4 15:53
我以前的文件工程也有这个功能,但是因为有一个输出所有文件的BUG导致文件工程停止支持...
现在打开下载链接会有个警告
作者: HOPE2021 时间: 2022-6-4 15:59
回复 8# cmd1152
新版本将会更新为Any2Bat
而且内核更换为VBS,目前有一个小Bug为解决,ForFiles.Exe的嵌入包已经可以正常使用
Hope2021
作者: cmd1152 时间: 2022-6-4 16:25
回复 9# HOPE2021
刚刚在写FCOEC(和你这个应该差不多),刚刚打错了,是因为文件工程有一个会删除当前目录所有文件的BUG
作者: cmd1152 时间: 2022-6-4 17:27
回复 3# HOPE2021
删除VBScript Script
作者: cmd1152 时间: 2022-6-4 17:28
回复 7# HOPE2021
所以你是氵怪! <---刚从mcbbs矿工茶馆过来的
作者: HOPE2021 时间: 2022-6-5 14:14
1.0.0000版本- @echo off
- Rem Exe-Com2Bat生成程序
- cls
- chcp 936 > nul
- Mode Con: Cols=80 Lines=25
- color 3f
- @goto :Start
-
- :Start
- if exist Exe-Com2Bat.Exe-Com2Bat del Exe-Com2Bat.Exe-Com2Bat
- set "File=/"
- cls
- echo.
- echo.
- echo. Exe-Com2Bat 加密生成程序
- echo.
- echo. By HOPE2021
- echo.
- echo. 此计算机程序用于将其他程序的生成程序嵌入至Bat中,即点即生成,稍加改动
- echo. 即可将第三方嵌入至Bat文件中,十分方便。
- echo. 本程序会将资源打包成Bat形式的安装包,存在当前目录下,命名为Exe-Com2Ba
- echo. t.bat,请及时查收。
- echo. Exe-Com2Bat.bat中的代码请勿随意编辑,否则很有可能生成木马。
- echo.
- echo. 注意:
- echo. 调用的系统资源有限,不建议您加密大小大于 1 Mb 的程序。
- echo. 无法为您加密 .dll 或 .db 文件,这些应用程序拓展您只能以其他程序加密。
- echo. 只能够加密 .exe 或 .com 文件
- echo.
- echo. 兼容性声明:
- echo. Windows 7 x64
- echo. Windows 8.x x64
- echo. Windows 10.x x64
- echo.
- set /p File= ^>^> 请将要转换的Exe或Com文件拖入这里:
- set "File=%File:"=%"
- set File="%File%"
- if not exist %File% (
- echo.
- echo. ^>^> 没有此文件...
- echo.
- echo. ^>^> 请按回车键继续...
- pause > nul
- @goto :Start
- )
- set /p Filea= ^>^> 请输入程序的名称(带有文件拓展名):
- set "Filea=%Filea:"=%"
- set Filea="%Filea%"
- echo.
- echo. ^>^> 正在进行 Certutil 编码...
- Certutil -encode %File% "%cd%\Exe-Com2Bat.Exe-Com2Bat" > nul
- find /i "(" Exe-Com2Bat.Exe-Com2Bat > nul
- if not errorlevel 1 goto :Start_1
- find /i ")" Exe-Com2Bat.Exe-Com2Bat > nul
- if not errorlevel 1 goto :Start_1
- echo.@echo off > Exe-Com2Bat.bat
- echo.( >> Exe-Com2Bat.bat
- for /f "delims=" %%i in (Exe-Com2Bat.Exe-Com2Bat) do (
- echo.echo.%%i >> Exe-Com2Bat.bat
- )
- echo.) ^> %Filea% >> Exe-Com2Bat.bat
- echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
- echo.Certutil -decode -f %Filea% %Filea% ^> nul >> Exe-Com2Bat.bat
- echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
- echo.exit >> Exe-Com2Bat.bat
- start explorer "%cd%"
- %0
-
- :Start_1
- echo.@echo off > Exe-Com2Bat.bat
- echo.cd.^> %Filea% >> Exe-Com2Bat.bat
- for /f "delims=" %%i in (Exe-Com2Bat.Exe-Com2Bat) do (
- echo.echo.%%i ^>^> %Filea% >> Exe-Com2Bat.bat
- )
- echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
- echo.Certutil -decode -f %Filea% %Filea% ^> nul >> Exe-Com2Bat.bat
- echo.if not exist %Filea% %%0 >> Exe-Com2Bat.bat
- echo.exit >> Exe-Com2Bat.bat
- start explorer "%cd%"
- %0
复制代码
作者: HOPE2021 时间: 2022-6-5 14:14
本帖最后由 HOPE2021 于 2022-6-5 15:15 编辑
1.0.0002上半部分- @Mode Con: Cols=80 Lines=25 & @Color 3F & @Chcp 936 > Nul & Title Hope Any to Bat Version 1.0.0002 & @Echo Off
- @Goto :Begin
-
- :Begin
- Cd /D "%~dp0"
- @Call :LoadFunctions
- @Goto :Main
-
- :Main
- Cd /D "%~dp0"
- @Call :UserInteraction
- @Goto :Main
-
- :UserInteraction
- @Call :PrintMenu
- @Call :Choice
- If "%ascKey%"=="1" Set /P Str=#1]<Nul & @Goto :NewProject
- If "%ascKey%"=="2" Set /P Str=#2]<Nul & @Call :ReadHelp
- If "%ascKey%"=="3" Set /P Str=#3]<Nul & @Exit 0
- If 0 Equ 0 @Goto :Eof %= 防止因特殊字符而出错 =%
- @Goto :Eof
-
- :PrintMenu
- @Cls
- For /L %%I in (0,1,1) Do Echo.
- Echo. 欢迎使用 Hope(R) Any2Bat 实用程序
- Set /P Str=# <Nul
- For /L %%I in (0,1,71) Do Set /P Str=#=<Nul
- Echo.
- For /L %%I in (0,1,2) Do Echo.
- Echo. 1) 新建工程
- Echo.
- Echo. 2) 阅读帮助文档
- Echo.
- Echo. 3) 退出 Hope(R) Any2Bat
- Echo.
- Set /P Str=# 请选择:[ ]<Nul
- @Goto :Eof
-
- :Choice
- %_Getch:#ascCode#=ascKey%
- @Goto :Eof
-
- :LoadFunctions
- 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%%"
- @Goto :Eof
-
- :NewProject
- @Call :PrintWizardTitle
- Set FileName=//
- Set /P FileName=# 请将需要打包的文件拖入此窗体:
- Set FileName=%FileName:"=%
- Set FileName="%FileName%"
- If Exist %FileName% @Goto :NewProject1
- If Not Exist %FileName% (
- Echo.
- Echo.
- Echo. 无此文件!
- Pause > Nul
- @Goto :NewProject
- )
- @Goto :NewProject
-
- :NewProject1
- @Call :PrintWizardTitle
- Set IsCompress=//
- Set jFileName=//
- For /F "Delims=" %%I in ('Dir /A-D /B %FileName%') Do (
- %= 仅文件名 =%
- Set jFileName=%%~nI
- Set jstFileName=%%~nI
- %= 仅文件拓展名 =%
- Set jExtension=%%~xI
- )
- Set jFileName=%jFileName: =%
- Echo. 需要将源文件压缩吗?
- Echo.
- Echo. 假如您的源文件体积较大,那么压缩后可以减小包的大小,增加解包的效率;如果
- Echo. 您的源文件体积较小,那么压缩后可能会适得其反。
- Echo.
- Echo.
- Set /P Str=# 需要压缩吗?[Y/N]:[ ]<Nul
- @Call :Choice
- If /I "%ascKey%"=="Y" (
- Set /P Str=#Y]<Nul
- Set IsCompress=True
- @Goto :NewProject2
- )
- If /I "%ascKey%"=="N" (
- Set /P Str=#N]<Nul
- Set IsCompress=False
- @Goto :NewProject2
- )
- If 0 Equ 0 @Goto :NewProject1 %= 防止因特殊字符而出错 =%
- @Goto :NewProject1
-
- :NewProject2
- @Cls
- Echo.
- Echo. ^>^> 正在创建工程目录
- FOR /F "TOKENS=2 DELIMS==" %%I IN ('WMIC PATH WIN32_OPERATINGSYSTEM GET LOCALDATETIME /VALUE ^| FINDSTR "="') DO (
- SET "STRDATE=%%I"
- )
- SET "TODAY=%STRDATE:~0,4%%STRDATE:~4,2%%STRDATE:~6,2%"
- SET "NOW=%STRDATE:~0,4%-%STRDATE:~4,2%-%STRDATE:~6,2% %STRDATE:~8,2%#%STRDATE:~10,2%#%STRDATE:~12,2%"
- Md "Project_%NOW%" > Nul 2> Nul
- Cd /D "Project_%NOW%"
- Md "Temp" > Nul 2> Nul
- Cd Temp
- If /I "%IsCompress%"=="False" (
- Copy %FileName% "%Cd%\Source.Src" > Nul 2> Nul
- For /F "Delims=" %%I in ('Dir /B Source.Src') Do Set jFileSize=%%~zI
- Set hFileName=Source.Src
- Set FName=%jstFileName%%jExtension%
- )
- If /I "%IsCompress%"=="True" (
- Copy %FileName% "%Cd%\Source.$" > Nul 2> Nul
- Echo.
- Echo. ^>^> 正在压缩
- For /F "Delims=" %%I in ('Dir /B Source.$') Do Set jFileSize=%%~zI
- MakeCAB /D CompressionType=lzx /D CompressionMemory=21 /D maxdisksize=%jFileSize% %FileName% "%Cd%\%jFileName%.Cab" > Nul 2> Nul
- For /F %%I in ('Dir /B "%jFileName%.Cab"') Do Set jFileSize=%%~zI
- Set hFileName=%jFileName%.Cab
- Set FName=%jFileName%.Cab
- )
- @Call :GetHex
- Cd..
- Md "Release" > Nul 2> Nul
- Copy "Temp\Hex.Tmp" "Release\Hex.Tmp" > Nul 2> Nul
- Cd /D "Release"
- @Call :MakeBatch
- @Goto :NewProject3
-
- :NewProject3
- Echo.
- Echo. ^>^> 已完成打包任务,是否进行查看和调试?
- Echo.
- Echo.
- Set /P Str=# 需要调试和查看吗?[Y/N]:[ ]<Nul
- @Call :Choice
- If /I "%ascKey%"=="Y" (
- Set /P Str=#Y]<Nul
- Start Mk.Bat
- Start Explorer "%Cd%"
- @Goto :Main
- )
- If /I "%ascKey%"=="N" (
- @Goto :Main
- )
- If 0 Equ 0 @Goto :NewProject1 %= 防止因特殊字符而出错 =%
- @Goto :NewProject3
复制代码
作者: HOPE2021 时间: 2022-6-5 14:15
本帖最后由 HOPE2021 于 2022-6-5 15:15 编辑
1.0.0002下半部分- :GetHex
- Echo.
- Echo. ^>^> 正在获取文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
- Fsutil File CreateNew 1.$ %jFileSize% > Nul 2> Nul
- FC /B "%hFileName%" 1.$ > 2.$
- @Call :WriteVBS 1 2.$ 3.$
- Echo.
- Echo. ^>^> 正在整理文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
- Cscript //Nologo WriteBin.VBS
- @Call :WriteVBS 2 %jFileSize%
- Echo.
- Echo. ^>^> 正在找回文件遗漏的十六进制信息,此步骤将耗费较多时间,请耐心等待……
- Cscript //Nologo WriteBn2.VBS
- FC /B "%hFileName%" 2.Tmp > 4.$
- @Call :WriteVBS 1 4.$ 5.$
- Echo.
- Echo. ^>^> 正在重新整理文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
- Cscript //Nologo WriteBin.VBS
- Type 3.$ > tHexS.$
- Type 5.$ >> tHexS.$
- Echo.
- Echo. ^>^> 正在生成文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
- Sort /Unique tHexS.$ /O tHex.Tmp
- Echo.
- Echo. ^>^> 正在生成文件十六进制码,此步骤将耗费较多时间,请耐心等待……
- @Call :WriteVBS 3 tHex.Tmp Hex.Tmp
- Cscript //Nologo WriteBn3.VBS
- @Goto :Eof
-
- :MakeBatch
- Echo.
- Echo. ^>^> 正在生成批处理脚本,此步骤将耗费较多时间,请耐心等待……
- (
- Echo.Dim objFSO, objFile, strLine
- Echo.Dim objOpFSO, objOpFile, strOpLine
- Echo.Dim i
- Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objOpFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objFile = objFSO.OpenTextFile^("Hex.Tmp", 1^)
- Echo.Set objOpFile = objOpFSO.CreateTextFile^("Mk.Bat"^)
- 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
- Echo.i = 0
- Echo.Do Until objFile.atendofstream
- Echo. If i = 0 Then objOpFile.Write "(" ^& vbCrLf
- Echo. If ^(i + 1^) Mod 256 = 0 Then objOpFile.Write ") >> Mk.$" ^& vbCrLf ^& "(" ^& vbCrLf
- Echo. strLine = objFile.ReadLine
- Echo. objOpFile.WriteLine "Echo." ^& strLine
- Echo. i = i + 1
- Echo.Loop
- Echo.If i Mod 256 ^<^> 0 Then objOpFile.Write ") >> Mk.$" ^& vbCrLf
- Echo.If i Mod 256 = 0 Then objOpFile.Write "Cd.) >> Mk.$" ^& vbCrLf
- Echo.objFile.Close
- Echo.objOpFile.Close
- Echo.Set objFSO = Nothing
- Echo.Set objOpFSO = Nothing
- ) > $Make.VBS
- Cscript //Nologo $Make.VBS
- (
- Echo.^(
- Echo.Echo.Dim objFSO, objFile, strLine
- Echo.Echo.Dim objOpFSO, objOpFile, strOpLine
- Echo.Echo.Dim i
- Echo.Echo.Set objFSO = CreateObject^^^("Scripting.FileSystemObject"^^^)
- Echo.Echo.Set objOpFSO = CreateObject^^^("Scripting.FileSystemObject"^^^)
- Echo.Echo.Set objFile = objFSO.OpenTextFile^^^("Mk.$", 1^^^)
- Echo.Echo.Set objOpFile = objOpFSO.CreateTextFile^^^("Mk_.VBS"^^^)
- Echo.Echo.objOpFile.Write "Dim Bin_" ^^^& vbCrLf ^^^& "Bin_ = Array("
- Echo.Echo.Do Until objFile.AtEndOfStream
- Echo.Echo. strLine = objFile.ReadLine
- Echo.Echo. For i = 1 To Len^^^(strLine^^^) Step 2
- Echo.Echo. objOpFile.Write "&H" ^^^& Mid^^^(strLine, i, 2^^^) ^^^& ", "
- Echo.Echo. Next
- Echo.Echo. objOpFile.Write "_ " ^^^& vbCrLf
- Echo.Echo.Loop
- Echo.Echo.objOpFile.Write "-1)" ^^^& vbCrLf ^^^& vbCrLf
- Echo.Echo.objOpFile.WriteLine "Call WriteBinary(""%FName%"", Bin_)"
- Echo.Echo.objOpFile.Write vbCrLf
- Echo.Echo.objOpFile.WriteLine "Sub WriteBinary(FileName, Buf)"
- Echo.Echo.objOpFile.WriteLine " Dim I, aBuf, Size, bStream"
- Echo.Echo.objOpFile.WriteLine " Size = UBound(Buf) - 1: ReDim aBuf(Size \ 2)"
- Echo.Echo.objOpFile.WriteLine " For I = 0 To Size - 1 Step 2"
- Echo.Echo.objOpFile.WriteLine " aBuf(I \ 2) = ChrW(Buf(I + 1) * 256 + Buf(I))"
- Echo.Echo.objOpFile.WriteLine " Next"
- Echo.Echo.objOpFile.WriteLine " If I = Size Then aBuf(I \ 2) = ChrW(Buf(I))"
- Echo.Echo.objOpFile.WriteLine " aBuf=Join(aBuf, """")"
- Echo.Echo.objOpFile.WriteLine " Set bStream = CreateObject(""ADODB.Stream"")"
- Echo.Echo.objOpFile.WriteLine " bStream.Type = 1: bStream.Open"
- Echo.Echo.objOpFile.WriteLine " With CreateObject(""ADODB.Stream"")"
- Echo.Echo.objOpFile.WriteLine " .Type = 2 : .Open: .WriteText aBuf"
- Echo.Echo.objOpFile.WriteLine " .Position = 2: .CopyTo bStream: .Close"
- Echo.Echo.objOpFile.WriteLine " End With"
- Echo.Echo.objOpFile.WriteLine " bStream.SaveToFile FileName, 2: bStream.Close"
- Echo.Echo.objOpFile.WriteLine " Set bStream = Nothing"
- Echo.Echo.objOpFile.WriteLine "End Sub"
- Echo.Echo.objFile.Close
- Echo.Echo.objOpFile.Close
- Echo.Echo.Set objFSO = Nothing
- Echo.Echo.Set objOpFSO = Nothing
- Echo.^) ^> Mk$.VBS
- ) >> Mk.Bat
- (
- Echo.Cscript //Nologo Mk$.VBS
- Echo.Cscript //Nologo Mk_.VBS
- If /I %IsCompress%==True Echo.Expand /R "%FName%" ^> Nul 2^> Nul
- If /I %IsCompress%==True Echo.If Exist "%FName%" Del /Q "%FName%" ^> Nul 2^> Nul
- Echo.If Exist "Mk_.VBS" Del /Q "Mk_.VBS" ^> Nul 2^> Nul
- Echo.If Exist "Mk$.VBS" Del /Q "Mk$.VBS" ^> Nul 2^> Nul
- Echo.If Exist "Mk.$" Del /Q "Mk.$" ^> Nul 2^> Nul
- Echo.@Goto :Eof
- ) >> Mk.Bat
- If Exist Hex.Tmp Del /Q Hex.Tmp
- If Exist $Make.VBS Del /Q $Make.VBS
- @Goto :Eof
-
- :WriteVBS
- If %1==1 (
- (
- Echo.Dim objFSO, objFile, strLine
- Echo.Dim objOpFSO, objOpFile, strOpLine
- Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objOpFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objFile = objFSO.OpenTextFile^("%2", 1^)
- Echo.Set objOpFile = objOpFSO.CreateTextFile^("%3"^)
- Echo.objFile.SkipLine
- Echo.Do Until objFile.atendofstream
- Echo. strLine = objFile.ReadLine
- Echo. strOpLine = Split^(strLine, " "^)
- Echo. objOpFile.WriteLine strOpLine^(0^) ^& strOpLine^(1^)
- Echo.Loop
- Echo.objFile.Close
- Echo.objOpFile.Close
- Echo.Set objFSO = Nothing
- Echo.Set objOpFSO = Nothing
- ) > WriteBin.VBS
- )
- If %1==2 (
- (
- Echo.Dim objFSO, objFile, strLine, i
- Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objFile = objFSO.CreateTextFile^("2.Tmp"^)
- Echo.For i = 0 To %2 - 1
- Echo. objFile.Write Chr^(65^)
- Echo.Next
- Echo.objFile.Close
- Echo.Set objFSO=Nothing
- ) > WriteBn2.VBS
- )
- If %1==3 (
- (
- Echo.Dim objFSO, objFile, strLine
- Echo.Dim objOpFSO, objOpFile, strOp
- Echo.Dim i
- Echo.Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objOpFSO = CreateObject^("Scripting.FileSystemObject"^)
- Echo.Set objFile = objFSO.OpenTextFile^("%2", 1^)
- Echo.Set objOpFile = objOpFSO.CreateTextFile^("%3"^)
- Echo.i = 0
- Echo.Do Until objFile.atendofstream
- Echo. strLine = objFile.ReadLine
- Echo. strOp = Split^(strLine, ":"^)
- Echo. objOpFile.Write strOp^(1^)
- Echo. If ^(i + 1^) Mod 32 = 0 Then objOpFile.Write vbCrLf
- Echo. i = i + 1
- Echo.Loop
- Echo.objFile.Close
- Echo.objOpFile.Close
- Echo.Set objFSO = Nothing
- Echo.Set objOpFSO = Nothing
- ) > WriteBn3.VBS
- )
- @Goto :Eof
-
- :PrintWizardTitle
- @Cls
- For /L %%I in (0,1,1) Do Echo.
- Echo. 新建工程向导
- Set /P Str=# <Nul
- For /L %%I in (0,1,71) Do Set /P Str=#=<Nul
- Echo.
- For /L %%I in (0,1,1) Do Echo.
- @Goto :Eof
-
- :ReadHelp
- @Cls
- For /L %%I in (0,1,1) Do Echo.
- Echo. Hope(R) Any to Bat 自述文档
- Echo.
- Echo. Hope Any to Bat [Version 1.1.00002]
- Echo. (C) Copyright 2016-2022 Hope Corp.
- Echo.
- Echo. ·Hope(R) Any to Bat 是什么
- Echo. Hope(R) Any to Bat 是一款批处理嵌入包设计软件,它可以将任何文件插入到批
- Echo. 处理脚本中,并自动设计解包程序。此程序支持VBS技术,能更快的完成操作。
- Echo.
- Echo. ·Hope(R) Any to Bat 更新日志
- Echo. ·Version 1.0.0000 09/08/2021
- Echo.
- Echo. ·Version 1.0.0001[未发布] 19/08/2021
- Echo. 首次尝试VBS内核,兼容性极差
- Echo.
- Echo. ·Version 1.0.0002 05/06/2022
- Echo. 重新设计VBS内核,速度增强,
- Echo. 更改了界面。
- Echo. 未解决兼容性问题,打包程序目前只在 Windows 10 测试正常。
- Pause > Nul
- @Goto :Eof
复制代码
作者: LJY4.0 时间: 2022-6-5 17:13
win7好像没有Sort /Unique后面这个参数
作者: command1152 时间: 2022-6-6 13:15
批处理LOGO代码:- @echo off
- echo;
- echo; ■ ■
- echo; ■ ■
- echo; ■■■■
- echo; ■ ■
- echo; ■ ■
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■ ■
- echo; ■ ■ □□□
- echo; ■■■■ □ □
- echo; ■ ■ □ □
- echo; ■ ■ □□□
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■ ■ ■■■
- echo; ■ ■ □□□ ■ ■
- echo; ■■■■ □ □ ■■■
- echo; ■ ■ □ □ ■
- echo; ■ ■ □□□ ■
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■ ■ ■■■ □□
- echo; ■ ■ □□□ ■ ■ □ □
- echo; ■■■■ □ □ ■■■ □□□□
- echo; ■ ■ □ □ ■ □
- echo; ■ ■ □□□ ■ □□□
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■
- echo; ■ ■
- echo; ■■■■
- echo; ■ ■
- echo; ■ ■
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■
- echo; ■ ■
- echo; ■■■■ □□□
- echo; ■ ■ □ □
- echo; ■ ■ □ □
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■ ■ ■
- echo; ■ ■ ■ ■
- echo; ■■■■ □□□ ■■■
- echo; ■ ■ □ □ ■
- echo; ■ ■ □ □ ■■
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■■
- echo; ■
- echo; ■
- echo; ■
- echo; ■
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■■
- echo; ■ □□□
- echo; ■ □ □
- echo; ■ □ □
- echo; ■ □□□
- echo;
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■
- echo; ■ ■
- echo; ■■■
- echo; ■ ■
- echo; ■■■
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■ □□□
- echo; ■ ■ □
- echo; ■■■ □□□
- echo; ■ ■ □ □
- echo; ■■■ □□ □
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; ■■■ □□□ ■■■■
- echo; ■ ■ □ ■
- echo; ■■■ □□□ ■
- echo; ■ ■ □ □ ■
- echo; ■■■ □□ □ ■
- ping -n 1 127.1 >nul&&cls&&echo;
- echo; 欢迎使用 Hope Any tp Bat 。
- ping -n 2 127.1 >nul&&cls
- exit /b
复制代码
作者: qixiaobin0715 时间: 2022-6-6 13:23
本帖最后由 qixiaobin0715 于 2022-6-6 13:42 编辑
连这个也要给我个技术分,不妥不妥。
作者: qixiaobin0715 时间: 2022-6-6 13:27
何必呢???
作者: command1152 时间: 2022-6-6 13:29
回复 21# qixiaobin0715
按回复按钮不要钱....
作者: command1152 时间: 2022-6-6 13:48
>> 正在生成文件十六进制信息,此步骤将耗费较多时间,请耐心等待……
无效命令行开关。
出现问题了
作者: command1152 时间: 2022-6-6 17:09
回复 18# qixiaobin0715
你知道吗:删除有评分的帖子评分会撤回...
作者: command1152 时间: 2022-6-6 17:52
我用您的按键检测做了一个东西:- @echo off
- @Call :LoadFunctions
- :i
- cls
- echo;
- echo; 1.退出
- echo; 2.输入密码
- echo; F.控制台
- echo;
- Set/P=# 请选择:[ ]<Nul
- @Call :Choice
- If "%ascKey%"=="1" Set/P=#1]<Nul & exit
- If "%ascKey%"=="2" Set/P=#2]<Nul & goto :sr
- If "%ascKey%"=="f" Set/P=#F]<Nul & goto :y
- If 0 Equ 0 @Goto :i %= 防止因特殊字符而出错 =%
-
- :Choice
- %_Getch:#ascCode#=ascKey%
- @Goto :Eof
- :LoadFunctions
- 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%%"
- @Goto :Eof
- :sr
- cls
- echo;
- echo; 输入密码(.清除 [空格]确定)F调出控制台:
- Set/P=# %mm%[ ] <Nul
- @Call :Choice
- If "%ascKey%"=="f" Set/P=#F]<Nul & set "xxa= " & set "xxb=*" & set "xxc= " & set "xxd= " & goto :y
- if "%ascKey%"=="." set "mm=" & Set/P=#.]<Nul & goto :sr
- if "%ascKey%"==" " Set/P=#*]<Nul & if "%mm%"=="HOPE2021" goto :y
- Set/P=#%ascKey%]<Nul
- set mm=%mm%%ascKey%
- goto :sr
- :y
- set xxa=*
- set xxb=
- set xxc=
- set xxd=
- :yb
- cls
- echo;
- echo; 控制台
- echo; 按数字选择,[空格]确定
- echo;
- echo; [%xxa%] 1.开头
- echo; [%xxb%] 2.输入密码
- echo; [%xxc%] 3.退出
- echo; [%xxd%] 4.打开cmd
- @Call :Choice
- if "%ascKey%"==" " (
- if "%xxa%"=="*" goto :i
- if "%xxb%"=="*" goto :sr
- if "%xxc%"=="*" exit
- if "%xxd%"=="*" start "" "cmd"
- )
- if "%ascKey%"=="1" set "xxa=*" & set "xxb= " & set "xxc= " & set "xxd= "
- if "%ascKey%"=="2" set "xxa= " & set "xxb=*" & set "xxc= " & set "xxd= "
- if "%ascKey%"=="3" set "xxa= " & set "xxb= " & set "xxc=*" & set "xxd= "
- if "%ascKey%"=="4" set "xxa= " & set "xxb= " & set "xxc= " & set "xxd=*"
- goto :yb
复制代码
作者: qixiaobin0715 时间: 2022-6-7 10:25
回复 22# command1152
积分并不会与水平是线性关系,有些大佬积分不多,出手就不同凡响。我觉得虽然自己水平有限,能在熟悉的地方帮到别人也是一种幸福,其他的倒是无所谓了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |