本帖最后由 pcl_test 于 2016-7-18 20:15 编辑
本文为原创。把这里的代码直接复制到cmd窗口运行就可以了。
mshta是用来解释hta程序的,或者叫hta程序的宿主。而hta程序其实就是html文件。所以你只要输入html标签就可以了。这是标准用法,其它的用法太乱。在cmd中输入下面的文字:-
-
- mshta vbscript:"<html style=background:buttonface><title>作者:myzam 2011-3-18</title><body>hello world<br/>hello<hr/>world<script language=vbscript>msgbox (123)</script></body></html>"
复制代码 引号中再来引号怎么办?
如
mshta vbscript:"msgbox ("hello world")"
这样用会报错。解决的办法是采用双双引号。也就是说看实例:-
- mshta vbscript:"<html ><title>test</title><body>hello world <script language='vbscript'>msgbox (""hello world"") </script></html>"
复制代码 注意这两句的细微差别。它们都能成功执行。- mshta vbscript:"<html ><title>test</title><body>hello world <script language=""vbscript"">msgbox (""hello world"") </script></html>"
复制代码 如果你不喜欢那个弹出的hta窗口,那就加一句话window.close或self.close- mshta vbscript:"<html ><title>myzam</title><body>hello world <script language=""vbscript"">msgbox (""hello world""):windwo.close </script></html>"
复制代码 如果你要注释掉脚本中的语句也好办,看代码:- mshta vbscript:"<html ><title>myzam</title><body>hello world <script language=""vbscript"">msgbox (""hello world""):'windwo.close </script></html>"
复制代码 就这么简单。
如果你怀疑这种标准用法,就在看一个脚本吧- mshta vbscript:"<script language=vbs>set myzam=createobject(""sapi.spvoice""):myzam.speak ""hello world 日本地震了啊""</script>"
复制代码 按这种标准写法,你想在cmd中写多长的脚本都可以,但是我想没人喜欢在cmd中写那种长脚本。当然以此为依据可以简化在cmd 中的输入,比如标签<html>可以不写出来等等。
如果要在bat中运行vbs我想这是一种比较自然的方法。下面给出一个bat程序- @echo off
- cmd /c mshta vbscript:"<script language='vbscript'>msgbox (""hello
-
- world""):self.close</script>"
复制代码 其实,上面的bat根本就不需要cmd /k,直接保存为bat 点击就可以运行。这与其它的
bat有这么一点细微的差别。- @echo off
- mshta vbscript:"<script language='vbscript'>msgbox (""hello
-
- world""):self.close</script>"
复制代码 最后:1#####hta文件的宿主----mshta
html的宿主-----IE
VBS的宿主----wscrit
asp的宿主----IIS
BAT的宿主---cmd
vba的宿主是---office
2#####mshta语法
vbs脚本时
mshta vbscript:"html标签"
js脚本时
mshta jscript:"html标签"
说明:第一,不要换行
第二,标签属性可以用单引号,也可以不用引号,如果要用双引号,那么 双引号请该为双双引号
第三,遇到字符串,请用双双引号。
第四,如果要从参数的角度讲的话,mshta后面的都可以叫参数。
事实上mshta后面的就是参数。
总之,玩mshta命令就是玩的是html标签。
good luck!
--------------------------------------------------
可接受环境变量-
- @echo off
- set t="<script language=vbs>msgbox 123:self.close</script>"
- mshta vbscript:%t%
复制代码 到此,在bat中使用vbs得到了完全解决。从此可以在bat和vbs间自由的航行了。 |