VBS+bat后强大的功能

VBS+bat后强大的功能

ID:37907587

大小:19.50 KB

页数:4页

时间:2019-06-02

VBS+bat后强大的功能_第1页
VBS+bat后强大的功能_第2页
VBS+bat后强大的功能_第3页
VBS+bat后强大的功能_第4页
资源描述:

《VBS+bat后强大的功能》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、各有千秋但总的说来BAT的描述能力不及VBS比如说:延时运行某个程序vbs代码:wscript.sleep12000setws=createobject("wscript.shell")ws.run"D:adminsystemmonitor.vbs"这只是个例子:运行文件的绝对路径运行指定文件后程序本身自动退出批处理代码:@echooffping-n20127.1>nulD:adminsystemmonitor.vbs这只是个例子:运行文件的绝对路径goto:eof这时在任务管理器中你会看到两个进程ping.exe和cmd.exe批处理本身没有延时函数而是通过p

2、ing.exe实现并且此时批处理的劣势就凸现出来:程序本身运行时会产生一个黑色的dos框非常不爽并且要等monitor.vbs运行完后程序本身才能退出(多么的消耗系统资源!!)此时VBS的优势非常明显从很多方面来说批处理不及VBS。二者结合先说vbs,vbs功能不是一般的强大,但有点严谨,虽然比起其它的语言还不是非常严谨,但与bat却没有可比性。比如,在vbs中,要执行复制文件的命令,只用vbs就很容易出错,但是用bat却不怕出错,出错了也没有关系,setwshshell=createobject("script.shell")wshshell.run"cmd.exe/c[

3、dos命令]",0,true这是在vbs中执行dos命令,第一个0代表隐藏运行,相当有用的一个参数第二个true代表执行完dos命令后再执行下一条vbs代码.比如移动,删除文件,复制文件夹,修改注册表什么的,最好用dos命令.再说说bat中用vbs.首先用bat生成一个vbs文件,vbs文件中如果有:setwshnamed=wscript.arguments.namedva=wshnamed.item("c")bat调用vbs时,如果用:*.vbs/c:%a%就表示将bat变量a传递给了vbs变量va,这可是一个相当牛的东西哦!vbs和bat还都能生成临时文件供对方调用,用

4、完了谁都可以就删,vbs和bat结合好了,前途一片光明这个想法我思考了很久。巧妙利用bat和vbs的语法特征,让同一个文件,被cmd.exe识别成批处理,让wscrpt.exe识别成vbs,并且同时符合两者的语法,并且保证都没有错误,保证两者的高度兼容。经过一个通宵的努力,我实现了这种bat/vbs复合编程。一个批处理.vbs文件,在前面加一段代码(头),就变成了.bat批处理,注意,没有生成临时文件,不用修改任何原有代码。例子:保存下列代码为test.bat,注意是批处理,但是这个批处理却成功的被wsh解析执行了!复制内容到剪贴板代码::OnErrorResumeNext

5、:Subbatechooff&clsechoBatching_codez_here_following_vbs_rules&pause>nulecho'>nul&start""wscript//e:vbscript"%~f0"%*ExitSub:EndSubMsgBox"Thisisvbs"foreachiinwscript.argumentswscript.echoinext保存代码为test.bat,可以看到echo出来的东西和msgbox出来的消息,呵呵以上代码只是一个示例,同时执行了一段批处理和vbs,没有生成临时文件。用了大量的hack技巧下面粗略解释下代码:On

6、ErrorResumeNextcmd.exe识别成一段注释wscript.exe这样识别,:在vbs语法里代表分行,然后OnErrorResumeNext,也就是让WSH忽略一些错误echo'>nul&start""wscript//e:vbscript"%~f0"%*cmd.exe识别成:echo一个'到空设备,也就是什么都不显示。&的意思是同时执行,那么同时执行了start""wscript//e:vbscript"%~f0"%*,也就是启动WSH,用VBS语法解析自身。这段代码的核心思想已经介绍完毕了。下面,为了让批处理以vbs调用其自身后,马上退出,我们需要exit

7、或者goto:eof,但是gotocallexit在vbs又是一个关键词,所以我们只能用符合vbs语法的exitsub,所以我们在第二句加一个:subbat,作为注释cmd.exe跳过。然后在6句加一个exitsub:endsub,让批处理结束,exit无论接什么参数都会使批处理退出的,同时又符合vbs的语法地借宿了一个sub那个echooff&cls,批处理的意思就是相当于@echooff,但是vbs不认@符号,所以改成echooff&cls,vbs可以解析为,调用一个叫echo()的函数,参数为off&cls,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。