可以将Bat转换位VBS文件的VBS脚本

下面代码稍有修改,原结构是脚本与释放的bat同步执行并等待bat执行完毕后删除bat,本意是不遗留临时文件。后来想想通用性不好,比如释放执行的bat文件是个常驻进程的监视类型那VBS也会无休止的等待而无法退出,所以还是改为异步执行,脚本调用bat后自行退出。考虑到还原原文件的完整性末尾添加自删除也打消了想法。压缩包暂未更新。


代码如下:

'bat2vbs.vbs by baomaboy
Dim WshSHell,FSO
On Error Resume Next
Set WshSHell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WinVer = WshSHell.Environment("Process")
Set Args = WScript.Arguments
CloseTime = 5
FileName = WScript.ScriptName
FileFullName = WScript.ScriptFullName
FilePath = FSO.GetParentFolderName(FileFullName)
InsPath = FSO.GetSpecialFolder(1)
InsFullName = FSO.BuildPath(InsPath ,FileName)
LnkPathNT = WshSHell.SpecialFolders(2)
LnkPath9X = WshSHell.SpecialFolders(14)
LnkPathAll = WshSHell.SpecialFolders("SendTo")
OtherFileName="Manage_New.txt"
OtherFilePath=FSO.GetSpecialFolder(2)
TemFileName="无标题"
TemFilePath=FSO.GetSpecialFolder(2)
Copyright="玲珑科技"
QQ="QQ:25926183"
Email="Email:fty1995@163.com"
InsTitle="Bat2Vbs by baomaboy"
InsAnswer="Bat2Vbs by baomaboy"
RegPath1="HKEY_CLASSES_ROOT\batfile\shell\BatToVbs\"
RegValue1="BAT转VBS脚本文件"
RegForm1="REG_SZ"
RegPath2="HKEY_CLASSES_ROOT\batfile\shell\BatToVbs\command\"
RegValue2="wscript.exe " & chr(34) & InsFullName & chr(34) & " " & chr(34) & "%L" & chr(34)
RegForm2="REG_SZ"
IF FileFullName <> InsFullName then
intAnswer = MsgBox("【是】将“"+ InsAnswer +"”加入到右键菜单,"&Chr(10)&Chr(10)&"【否】将“"+ InsAnswer +"”从右键菜单删除。 ", vbQuestion + vbYesNoCancel, "安装 - "+ InsTitle +" - "+ Copyright)
    If intAnswer = vbYes Then
WshSHell.RegWrite RegPath1,RegValue1,RegForm1
WshSHell.RegWrite RegPath2,RegValue2,RegForm2
FSO.GetFile(FileFullName).Copy(InsFullName)
WshSHell.popup _
"添加脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"添加注册表项:"+chr(10)+chr(34)+ RegPath1 +chr(34)+chr(10)+ _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C)  " + Copyright +"   " & QQ &"   " + Email _
, CloseTime, "安装成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
        If intAnswer = vbNo Then
WshSHell.RegDelete RegPath2
WshSHell.RegDelete RegPath1
FSO.DeleteFile InsFullName
WshSHell.popup _
"删除脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
"删除注册表项:"+chr(10)+chr(34)+ RegPath1 +chr(34)+chr(10)+ _
chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
chr(10) & "Copyright(C)  " + Copyright +"   " & QQ &"   " + Email _
, CloseTime, "卸载成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
end if
        If intAnswer = vbCancel Then
end if
ELSE
if Args.count=0 then wscript.quit
Set ReadFile = FSO.OpenTextFile(Args(0), 1)
ReadAllText = ReadFile.ReadAll
ReadFile.Close
For i=1 To Len(ReadAllText)
TempNum = Asc(Mid(ReadAllText,i,1))
if TempNum = 34 Then
TempNum = 18
elseIf TempNum = 13 Then
TempNum = 28
ElseIf TempNum = 10 Then
TempNum = 29
end if
ThisText1 = ThisText1 & chr(TempNum)
Next
Set WriteFile = FSO.OpenTextFile(Args(0)&".VBS",2,True)
WriteFile.WriteLine("On Error Resume Next:Dim WshSHell,FSO,Bat2Vbs:Set WshSHell = WScript.CreateObject(""WScript.Shell""):Set FSO = CreateObject(""Scripting.FileSystemObject""):Bat2Vbs="""& ThisText1 &"""")
WriteFile.WriteLine("Execute(""For i=1 To Len(Bat2Vbs)""&vbCrLf&""TempNum = Asc(Mid(Bat2Vbs,i,1))""&vbCrLf&""If TempNum = 28 Then""&vbCrLf&""TempNum = 13""&vbCrLf&""ElseIf TempNum = 29 Then""&vbCrLf&""TempNum = 10""&vbCrLf&""elseif TempNum=18 Then""&vbCrLf&""TempNum = 34""&vbCrLf&""End If""&vbCrLf&""ThisText2 = ThisText2 & chr(TempNum)""&vbCrLf&""Next"")")
WriteFile.WriteLine("Set BatFile = FSO.OpenTextFile(FSO.BuildPath(FSO.GetSpecialFolder(2),""Temp.bat""),2,True):BatFile.WriteLine(ThisText2):BatFile.Close:WshSHell.Run ""%Comspec% /C ""&FSO.BuildPath(FSO.GetSpecialFolder(2),""Temp.bat""),1,false")
WriteFile.Close
end if
Set WshSHell = Nothing
Set FSO = Nothing
Set Args = Nothing
WScript.Quit(0)

(0)

相关推荐

  • vbs后台运行bat删除自身的代码

    知道真实路径的情况下 复制代码 代码如下: set fso=wscript.createobject("scripting.filesystemobject") fso.deletefile "c:\windows\system32\run.cmd" fso.deletefile "c:\windows\system32\run.vbs" 不知道具体的路径情况下,可以用如下代码: 复制代码 代码如下: Set fso =CreateObject(

  • 用VBS来代替BAT或CMD文件进行命令第1/2页

    自动导入注册表的,带检测: On Error Resume Next dim msg,fso,shell Set fso = Wscript.createobject("scripting.filesystemobject") set wshshell = wscript.CreateObject("wscript.shell") set shell = wscript.createobject("wscript.shell") IF (fso.

  • VBS脚本和BAT批处理删除自身的方法

    VBS脚本和BAT批处理自身删除的方法(自杀) 删除自身之:VBS 把下面的脚本保存为selfkill.vbs或selfkill.vbe: 复制代码 代码如下: Set fso = CreateObject("Scripting.FileSystemObject") f = fso.DeleteFile(WScript.ScriptName) WScript.Echo( WScript.ScriptName) 然后运行它,是不是发现selfkill.vbs神奇的消失啦?而后面的对话框却

  • vbs与bat混编修改虚拟盘符的卷标

    我想改变我用subst创建的虚拟盘符的卷标 已知下面的命令无法改变由subst创建的盘符 @echo off subst X: c:\personalfiles wmic logicaldisk where "deviceid='X:'" set volumename="Development" pause 但是可以用这个vbs脚本来改变 Set oShell = WScript.CreateObject("Shell.Application")

  • vbs 批量修改文件,bat 批处理文件调用执行vbs,并在cmd窗口打印返回值(vbs运行结果)

    示例代码(t.vbs)如下: 复制代码 代码如下: Set fso=Wscript.CreateObject("Scripting.FileSystemObject") flrName="D:\Workspace\src\" 'dir that you need deal with count=0 'get the count of modified files function Traversal(dir) set flr=fso.getfolder(dir) s

  • VBS和bat批处理逐行读取文件实例

    首先是批处理的,很简单,每隔两秒钟读取一行. 复制代码 代码如下: @echo off for /f "tokens=*" %%i in (lrbf.ini) do (echo %%i & ping -n 2 127.1>nul) pause 更直观的: 复制代码 代码如下: FOR /F "delims=" %i IN (file.txt) DO echo %i 当然如果你想做更多其他的事 do 后面是你发挥的地方 VBS的两个版本 第一种方式,逐行

  • BAT批处理、VBScript批量安装字体脚本分享

    根据新系统要求,经常要部署一些原来系统里没有的字体,原先我为了图省事经常会要求用户手动安装字体文件,虽然Windows的易用性做得相当不错,但是仍然要照顾一些不会安装字体的人,其实把这些字体打包进安装包更为方便,不过我觉得总不能每有新字体都要搞个安装包那么麻烦吧.更重要的是仍然有人会问我字体怎么安装,以前清一色的Windows XP系统,我倒也方便,直接告知打开控制面板找到字体文件夹,把要安装的字体拖进去即可:现在有Windows 7还是Windows 8等各种版本Windows系统,对于安装字

  • 进程监控实现代码[vbs+bat]

    运行后会在%windir%\system32\目录下生成jk.vbs, 并且自动添加注册表启动项,另外在D:\会生成一个隐藏属性的JK.VBS, 3秒间隔监控进程,如果进程中有QQ.exe.iexplore.exe.client.exe.game.exe进程则会自动结束进程. 复制代码 代码如下: @echo off attrib -s -h -a -r d:\jk.bat 1>nul 2>nul if exist d:\jk.bat del d:\jk.bat /q copy %0 d:\j

  • EXE2BAT(EXE转BAT)的vbs脚本

    exe2bat的脚本 复制代码 代码如下: fp=wscript.arguments(0) fn=right(fp,len(fp)-instrrev(fp,"")) with createobject("adodb.stream") .type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str) end with sll=sl mod 65536:slh=sl65536 with createobject("sc

  • 可以将Bat转换位VBS文件的VBS脚本

    下面代码稍有修改,原结构是脚本与释放的bat同步执行并等待bat执行完毕后删除bat,本意是不遗留临时文件.后来想想通用性不好,比如释放执行的bat文件是个常驻进程的监视类型那VBS也会无休止的等待而无法退出,所以还是改为异步执行,脚本调用bat后自行退出.考虑到还原原文件的完整性末尾添加自删除也打消了想法.压缩包暂未更新. 复制代码 代码如下: 'bat2vbs.vbs by baomaboy Dim WshSHell,FSO On Error Resume Next Set WshSHell

  • bat文件与Vbs文件之间的常用操作(获取用户输入,执行VBS文件)

    bat文件 set /P StrInput="输入数字:" echo 输入的数字为%StrInput% set /P Flg="是否执行(y/n):" IF "%Flg%" equ "y" ( echo 执行命令 cscript abc.vbs "%StrInput%" ) 注意: 等于号(=)之间不能有空格,不然会出错. 判断值大小最好使用equ之类. 条件判断后的括号的有空格. VBS文件 获取外部参数

  • 黑客必须要知道的几个vbs文件代码

    1. door.vbs '***************  'door.vbs by 黑嘿黑 '*************** dim wsh,FA,FSO set fso=CreateObject("Scripting.FileSystemObject")  Set FA= FSO.GetFile(WScript.scriptFullName) FA.Attributes =34 set wsh=CreateObject("WScript.Shell") wsh.

  • 在一个vbs中包含其他vbs文件的方法

    asp中   include file   包含其他文件vbs中 复制代码 代码如下: Option Explicit  On Error Resume Next Sub include(vbs)  Dim fso : Set fso = CreateObject("scripting.FileSystemObject")  Dim p : p   = Split(Wscript.ScriptFullName,"\")  p(UBound(p))  = vbs  p

  • 自动复制U盘文件的VBS脚本

    以下为演示: 一.设置 右键单击,选择编辑 oStr = "txt|jpg|doc" '你要窃取的文件类型,可以自行添加,用"|"隔开 oDistPath = "C:\\windows\\system\\" '保存路径 oFolderName = "Task" '保存文件夹名称 oType = 0 '将保存的文件夹进行伪装 1为task文件夹,2为recycler文件夹,0为不伪装 oOut = 1 '1复制完毕后退出,0复制

  • reg2vbs.vbs 将Reg文件转换为VBS文件保存 脚本之家修正版本

    复制代码 代码如下: '***************************************************************************** ' FileName: Reg2Vbs.VBS ' Author: baomaboy ' Abstract: 将Reg文件转换为VBS文件保存 '***************************************************************************** Dim WshSh

  • bat根据当前日期创建文件夹的方法

    为了不等路也能复制copy,所以编辑博客的时候这个没有放到代码块里,也黏贴下:: 设置CMD显示的编码格式为UTF-8(防止中文乱码)chcp 65001 :: @echo off 表示不回显执行的命令@echo off ::一定要看下当前日期的格式,不同的windows系统,打印的当前时间格式可能不一样(这样的年月日截取的开始位置就不一样),防止被坑set ORIGINAL_DATE=%date%echo %ORIGINAL_DATE% :: 日期截取遵从格式 %date:~x,y%,表示从第

  • 最新恶意复制型病毒autorun.inf,stNP.VBS,NP.VBS代码简单解析和解决方法

    最新恶意复制型病毒autorun.inf,stNP.VBS,NP.VBS 及代码分析与病毒处理两种方法 方法一:来自于指间轻舞 此病毒最大的特点在于中毒后,自动感染你的硬盘根目录,并复制病毒文件.无论你是采用双击,还是右键选择打开,或者运行资源管理器都会自动运行其代码(病毒),所以中此病毒后,新手往往打不开盘符,导致数据无法读取. 下面是病毒的代码分析 文件总共有三个 都很简单,已经加上了注解. 文件名:autorun.inf 复制代码 代码如下: [autorun]  open=  shell

  • CS1.5,cs1.6中使用包含文件夹的脚本的图文教程

    我们继续教大家如何使用含有文件夹的脚本比如你下载的是这样的脚本文件 或者 一,自动安装脚本文件 我们网站制作了一个.exe安装文件的脚本 你打开后 如图: 你点接受 出来一个安装文件,点浏缆 我这的CS放在了D:\CS1.5\CS1.5中文硬盘版 找到了CS文件后, 就可以安装了 二,含有cstrike等文件夹的脚本使用 如果不是自动安装的脚本文件,下载解压后一般的有,cstrike,logos等文件夹时候. 如图: 要把下载的cstrike等文件夹覆盖掉原来CS中的同名文件就可以 在覆盖的时候

随机推荐