|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14321
- 金币
- 2446
- 威望
- 1647
- 贡献
- 1394
|
昨天下载并且安装了Updater Application Block后,需要执行一个Deploy.vbs的文件,鄙人才疏学浅,这个小问题竟然也花费了我不少心机。
/ i5 v6 o* y' F5 D3 T w( X8 h现在把结论共享一下。2 T1 ~( h3 n% W
3 @* A A' v% m# T& ^1 V- a @$ ?
首先,我的vbs文件关联已经被“豪杰”夺取了。我双击Deploy.vbs就会打开豪杰,比较郁闷。但是我用了打开方式,试了浏览器、cmd,都无济于事。
/ k _/ n' V" J o: b3 w1 H* j, h, {1 P# r5 i9 l% Q! @: D
今天,我想到这个问题后,就有想法去Microsoft的News Group上去问一问。然后又去了CSDN的全文检索。果然很争气,我的关键字只是vbs,执行,就找到了一大堆我想要的东东。了解到用wscript.exe来执行这个文件。
9 [: P s! v7 y5 Q& S# u+ |+ Q/ u* ?3 S5 G7 x) j
在cmd里敲了wscript.exe Deploy.vbs,但是返回错误是 There is no script engine for fileextension '.vbs'。这个时候我想到了google。果然搜到了不少有用的信息,其中第一条里我就找到了解决办法。原因是我的vbs关联已经丢失了,必须显示指定。
" W1 k% w( j# F3 q1 s2 q: [& l2 @' X0 u7 s7 W
cmd中敲入 wscript.exe //e:vbscript Deploy.vbs。果然成功!!!; z5 T1 W" a* B; @; W0 T! E- R
3 M; r0 ?4 |: X, T3 Z& `# B
$ j O( ] y7 S; ^; O& N# x) C- y: p9 l7 M/ x7 ^/ i0 e6 b
总结:用wscript.exe 执行类似vbs这类的脚本文件。如果文件关联丢失。可以用//e:vbscript. s" h' _; ?9 {
4 k2 K ~* U, O3 l Z
& U. {( o2 m- ~7 g G- D* M
% o0 ~4 [. k% k9 V" J1 Q& l附上我找到的很有帮助的文章。' |% g. t& w! Q, K) u" x
" d, q( c; H" q& H9 S
. L y8 T. a. h5 q" X4 v4 k* y( T( k$ ^2 a( }
一、什么是WSH? 7 r( f$ ?- s5 H" [
+ f/ s1 N6 C! d: M- t, f3 L
WSH是Windows Scripting Host(Windows脚本主机)的缩略形式。WSH这个概念最早出现于Windows98操作系统,是一个基于32 位 Windows 平台、并独立于语言的脚本运行环境。比如:你自己编写了一个脚本文件,如后缀为 .vbs 或.js 的文件,然后在 Windows 下双击 并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是Windows Scripting Host,程序执行文件名为 Wscript.exe (若是在DOS命令提示符下,则为Cscript.exe)。 8 l# }' w4 }2 n% l% s
9 m$ j2 F) c: }( Y) b
' ~8 T1 k' r1 _, i( k# h/ @& E; a8 M; ~/ ]
想知道自己的机器上有没有WSH吗?查看一下你的机器里有没有“Wscipt.exe”或者“Cscript.exe”这两个文件就可以了。如果找到,恭 喜你!你已经安装了WSH。否则,自己手动安装吧: 8 X6 }2 W% o, N/ D/ T7 r% Z
6 c: B! o: i3 D# W! g- V
在Windows98环境下,WSH是作为操作系统的一个组件自动安装的,如果不慎丢失了这个组件,可以从依次打开“控制面板-->添加/删除程序--〉Windows安装程序--〉附件”,然后将“Windows ScriptingHost”前的划上“√”,再确定即可完成WSH组件的安装。 O8 E6 d9 y5 n% E) a! t' @
% \4 [8 m8 K0 ?$ `
2 d1 @6 o& u7 T5 | a/ I: b+ T4 @
, y; \0 K* N, |; F0 S4 M, Z! s 二、脚本语言与WSH的关系
6 Z2 ]/ H; [! L% |/ ~0 K
8 ^5 L, M+ Q& [9 i 大家知道,脚本语言(包括javascript和VBscript语言等)经常会被植入网页之中(其中包括 HTML 页面客户机端和 ASP页面服务器端) 。对于植入 HTML 页面的脚本,其所需的解析引擎会由 IE 这样的网页浏览器载入;对于植入 ASP页面的脚本,其所需的解析引擎会由 IIS( Internet Information Services)提供。而对于出现在 HTML 和ASP 页面之外的脚本(它们常以独立的文件形式存在),就需要经由 WSH 来 处理了。需要说明的是:WSH 要想正常工作,还要安装IE 3.0或更高版本的 IE,因为 WSH 在工作时会调用 IE 中的 VBScript 和 javascript 解析引擎。[未结束][iduba_page]在这些被植于网页的脚本语言中,绝大多数是与网络安全无关的。但也有少数别有用心的好事者,把一些严重危及网络安全的代码(我们常常称之为“恶意代码”,他们通常都要通过修改注册表达到“恶意”的目的!),混放在正常的脚本之中,常常让我们防不胜防。但是,如果我们了解一点关于脚本语言的知识,这些“伎俩”都是非常容易识破的。还是让我们从几个简单 的实例开始吧……
K( E$ X8 n0 {0 g! `
# O: {: ^& T: e2 _( @. [
# ^) [) K$ H9 n/ A7 x; y1 X, ^' ^( B
三、WSH应用举例 - K) O, e# ~; ^" n0 C- o
6 O1 U X9 t# W$ d( p
WSH可以处理脚本程序,怎样阅读和编写WSH的脚本源文件呢?只要你有一点Basic(会VB的编程更好,呵呵)语言的基础,学会看懂WSH脚本语言的程序并不是一件难事。去C:WINDOWSSAMPLESWSH目录以下将看看吧!里面提供了几类经典的脚本例子,而且分别提供了VBScript和 javascript两个版本,我们只要用记事本打开它们并仔细研究就不难学到一些基本的WSH应用。
5 l# f# ]/ D0 p1 l' ]( B" F
$ }% h9 w: h% d! A * E( f4 [$ p0 ?! p
7 m2 k- N5 X% _2 {
你只需在记事本中依次输入以下每个实例中的代码,并保存为相应的“*.vbs”文件,双击这个文件,你就可以看到相应的效果了。; }1 t- e6 Z+ l2 s
l8 ~" Y3 L0 L. x7 I+ I; l
/ o, h% e9 i% V, z
* o7 p/ t# i. h/ F0 o1 B; U4 e
$ P! i: L2 M) `- @: h+ h# @1 l
* r; d4 t6 S( ^& |' |# r
4 O6 F# |; _; e+ X) ?# W) }0 ?- I# \- J$ ?- o& m# M
Q: How do I open script files? Trying the above solution makes Windows XP throw an error?
8 t+ @: Z- |4 L& U) O0 a1 t8 f1 }; c$ `% H, i* X4 |
A:This is similar to the *.js association problem. Some machines seem to,for some reason, lose their *.vbs association. It's not that the filesopen with dreamweaver or whatever -- it's that the machine just doesn'tknow how to run them. If you have a scheduled task, "Could not run"will appear in the status column.
0 O9 h6 |9 w6 E( f( z+ c
+ v! ~% t& j, r& ]So, you're a smart person andread through the FAQ. You find the *.js extension problem, and you trythat fix: you run it as "wscript c:\path\to cript.vbs". But that, inturn, produces a pop-up error, this time a "Windows Scripting Host"error: "There is no script engine for file extension '.vbs'." So, forsome reason, wscript doesn't even know what to do with *.vbs files.4 ?6 ]1 C) R2 w& f2 p
& B6 e; ?0 `. j* o e% G( s
The solution to this problem is to run the script as:
& w# P% N- m! Z5 q7 a6 \& D5 G. f" U" \ @
wscript //e:vbscript c:\path\to cript.vbs0 J2 Y8 C9 t a. S( Z2 D
9 h5 q# q8 f! R% J2 i9 J
The "//e:vbscript" tells wscript to use the vbscript engine to parse the script. It will then run correctly.
) [! H2 p, ^( B. Q+ R( T6 t" J6 E. M6 B
A few alternative solutions, perhaps easier are:
) b* V: H# j# n/ g! ?' j& r! ~Renameit .vbe (VBScript Encoded Script File). Not sure if this is a bad idea,but it seemed to work for some scripts. Make a new association for VBS.Open up my computer, select Tools menu-> Folder Options, and go tothe File Types tab. There probably isn't a VBS association listed ifyou have this problem. Select New, type in VBS, and hitAdvanced>>. Then, from the pull-down menu, select "VBScriptScript File". Making this selection automatically takes care of theassociation, along with the //e:vbscript problem. This is probably the"correct" solution...
0 p X+ a; U2 u+ f0 GThis problems usually occurs only on WindowsXP machines, but the cause is not known. A Microsoft KB article on thisissue can be found here. Thanks goes to Bob_2k for writing this FAQentry. |
|