![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 21:46 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 在另外一个程序中将脚本以变量传给cscript执行? |
| 可打印版本 898 / 4 |
| 第1楼 youtube2046 | 发表于 2009-12-19 11:46 |
| 新手上路 发帖 9 积分 15 来自 Beijing | |
|
在另外一个程序中将脚本以变量传给cscript执行? 我们通过Cscript执行vbs时一般要用如下格式:
如果这个执行是从另外一个程序中调用的, 那么就必须把内容先写到test.vbs中。然后再执行上述代码。这样就引出一个问题:如果不希望别人看到test.vbs中的内容,那该怎么办? 假设写入test.vbs中的内容为Content. 可不可以在调用程序中以下面这种方式调用呢? 或者类似的方法。这样就可以保守Content中的密码了:-) 我试了不行啊。希望大家能帮我想想办法。;) |
|
| 第2楼 qinchun36 | 发表于 2009-12-19 14:09 |
| 高级用户 发帖 400 积分 609 | |
|
cscript和wscript都只能执行一个文件,要执行一段脚本可以用mshta
|
|
| 第3楼 youtube2046 | 发表于 2009-12-20 10:37 |
| 新手上路 发帖 9 积分 15 来自 Beijing | |
|
我记得mshta是执行hta格式文件的啊。既然它可以完成我说的功能,可否给出实际的实现方法。或举个例子啊?
|
|
| 第4楼 yishanju | 发表于 2009-12-21 07:59 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
哎,自己搜索啊,真有这么难啊?
|
|
| 第5楼 qinchun36 | 发表于 2009-12-21 11:24 |
| 高级用户 发帖 400 积分 609 | |
|
可以用如下的格式调用一句VBS脚本:
mshta vbscript:ONE_VBS_METHOD 因为 mshta 是执行 .hta 文件的,而 HTA 文件的本质就是 html 文档,因此能调用 html 文件中能够使用的脚本,但有些东西是被限制的,下面是一个在命令行窗口中执行的例子。 比如下面的一个脚本: 由于命令行只能是一行,所以需要把它搞成一行的格式,冒号在VBS中做分行功能: 又因为 mshta 被作为一个命令执行,我们的脚本只是作为参数,并且 ONE_VBS_METHOD 就直接是运行的脚本,不能用引号,但是 mshta 又只接受冒号后面的第一个参数,即 ONE_VBS_METHOD 必须是一个没有分隔的语句,为了解决这个问题用 execute 或者 eval 包装一下,注意变成字符串后一个引号要换成两个: 上面的都是合法的VBScript脚本,可以保存为 .vbs 文件直接运行的。 于是得到下面一行命令,在CMD命令行界面执行: 但是运行之后发现残留一个 HTA 的窗口不自动关闭,因此一般再加上一个HTML中关闭窗口的代码,变成: 多余的话: 第一句,这个其实是运行在HTML中的脚本形式,因此还可以使用其他一些浏览器中的方法,实现脚本本身不具备的功能 第二句,关于VBScript中的引号是个很纠结的问题,如果用JScript或者JavaScript就没这么麻烦了,因为 ' 和 " 效果相同,避免了转换时搞引号的问题,但是少了WScript、MsgBox等方便的东西 (不建议新手或者对大小写不敏感者使用JScript或者JavaScript!) |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |