|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14443
- 金币
- 2507
- 威望
- 1647
- 贡献
- 1455
|
昨天下载并且安装了Updater Application Block后,需要执行一个Deploy.vbs的文件,鄙人才疏学浅,这个小问题竟然也花费了我不少心机。( b, m: U* K6 H+ h0 w) n
现在把结论共享一下。
0 Q7 ?2 x/ ?; ~* ?9 Y' R1 A- b/ d" X2 w, d& G
首先,我的vbs文件关联已经被“豪杰”夺取了。我双击Deploy.vbs就会打开豪杰,比较郁闷。但是我用了打开方式,试了浏览器、cmd,都无济于事。
3 z& U- E. H; r% i$ }* c; x" Z$ {: S1 O
% j$ E: W" O+ E b今天,我想到这个问题后,就有想法去Microsoft的News Group上去问一问。然后又去了CSDN的全文检索。果然很争气,我的关键字只是vbs,执行,就找到了一大堆我想要的东东。了解到用wscript.exe来执行这个文件。4 x0 p6 r0 m6 b
8 r | D& r: R ~+ _在cmd里敲了wscript.exe Deploy.vbs,但是返回错误是 There is no script engine for fileextension '.vbs'。这个时候我想到了google。果然搜到了不少有用的信息,其中第一条里我就找到了解决办法。原因是我的vbs关联已经丢失了,必须显示指定。
+ K1 }9 j( y' X
* L" p* A3 K! f1 a6 Wcmd中敲入 wscript.exe //e:vbscript Deploy.vbs。果然成功!!!
3 p0 `. i' R9 ]4 ?* v8 q$ C1 _
" w$ l" x' ~2 N: V! V9 s5 \ 3 Y% G: O9 U( q- F( ?
; [4 Y# J3 R+ X) O# j2 j" C0 u4 ?总结:用wscript.exe 执行类似vbs这类的脚本文件。如果文件关联丢失。可以用//e:vbscript.
9 P# U1 J5 K* A' P3 i
( O( O4 n: y9 K; j8 M9 g
+ e; S+ V' ~/ p! o3 l5 Y3 C/ W5 ~5 M4 @7 L) s7 U3 ~& Y
附上我找到的很有帮助的文章。+ C! f3 a$ p) T
4 X. w, r0 e! Z# @8 K: a& a4 j" g' G: U: @% u% L
$ v2 h" L- U- f5 |一、什么是WSH?
. f" }+ [( ]1 K: w5 {( T1 C
$ K9 K' B- i) _9 F: Y7 d WSH是Windows Scripting Host(Windows脚本主机)的缩略形式。WSH这个概念最早出现于Windows98操作系统,是一个基于32 位 Windows 平台、并独立于语言的脚本运行环境。比如:你自己编写了一个脚本文件,如后缀为 .vbs 或.js 的文件,然后在 Windows 下双击 并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是Windows Scripting Host,程序执行文件名为 Wscript.exe (若是在DOS命令提示符下,则为Cscript.exe)。
# q, p! i# r% ]4 V9 S" T
& v& w& _" z1 g) f: a" c 0 f0 g- u- ?: I* Q' N4 w" E! k# d
8 R' O/ r* J+ Y/ U# F
想知道自己的机器上有没有WSH吗?查看一下你的机器里有没有“Wscipt.exe”或者“Cscript.exe”这两个文件就可以了。如果找到,恭 喜你!你已经安装了WSH。否则,自己手动安装吧:
D9 Y8 h. r; o, W; U% x: c' m4 [
8 d$ Q/ R2 Y; @% G 在Windows98环境下,WSH是作为操作系统的一个组件自动安装的,如果不慎丢失了这个组件,可以从依次打开“控制面板-->添加/删除程序--〉Windows安装程序--〉附件”,然后将“Windows ScriptingHost”前的划上“√”,再确定即可完成WSH组件的安装。 1 t7 K* `3 x! t6 K2 K* [' d
# ^# j; d0 T J& Q/ X
; D/ h* y6 p7 i0 D
; \5 d8 @- A/ c5 _
二、脚本语言与WSH的关系
, N% t7 k% f+ Y
) Q( w. s/ @% L9 Q8 ^3 M1 o 大家知道,脚本语言(包括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]在这些被植于网页的脚本语言中,绝大多数是与网络安全无关的。但也有少数别有用心的好事者,把一些严重危及网络安全的代码(我们常常称之为“恶意代码”,他们通常都要通过修改注册表达到“恶意”的目的!),混放在正常的脚本之中,常常让我们防不胜防。但是,如果我们了解一点关于脚本语言的知识,这些“伎俩”都是非常容易识破的。还是让我们从几个简单 的实例开始吧……/ S3 j9 o3 O* J6 O0 w* a
$ { r2 g/ z4 Z& w1 e
. F$ j- Y: L# p+ R8 r% h0 q$ c6 O
& v2 x4 g% y& W* s9 ^+ @ 三、WSH应用举例 ) a; V4 b; q! }. e$ i0 u" ^
; r! P5 {. }( Y) i
WSH可以处理脚本程序,怎样阅读和编写WSH的脚本源文件呢?只要你有一点Basic(会VB的编程更好,呵呵)语言的基础,学会看懂WSH脚本语言的程序并不是一件难事。去C:WINDOWSSAMPLESWSH目录以下将看看吧!里面提供了几类经典的脚本例子,而且分别提供了VBScript和 javascript两个版本,我们只要用记事本打开它们并仔细研究就不难学到一些基本的WSH应用。 9 P, a$ ~" S* [2 |0 y* O9 y: v* W! ^
! G: R [5 X; n0 K- Q% ]5 E
. v6 u U/ @& Q1 {. A, _$ V6 Q
5 u# w) j( Y }7 x" d$ l# j% o" U$ H
你只需在记事本中依次输入以下每个实例中的代码,并保存为相应的“*.vbs”文件,双击这个文件,你就可以看到相应的效果了。2 \0 U' @6 W9 h* I1 ~
4 R* u! n7 |! J! r7 q8 Z* I. \9 u
5 q) J# p" w6 P$ D7 L1 S/ y" G- s
2 R; W6 Q! A* @# Y
7 x( S! W, ]5 u4 [, y% L2 k
/ `# n, z+ b" C+ B8 A" ^ \# V; A& E) i0 Y0 E
Q: How do I open script files? Trying the above solution makes Windows XP throw an error?! O* U& q, a( {, t7 R
- Y" E( _( i5 G3 G7 B; x& |
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.
$ t' _( l: v$ M* ]7 R
% j- V$ X) ]0 uSo, 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. V' i: o$ S9 _1 T
9 o* o5 t; L. z% g! w8 fThe solution to this problem is to run the script as:0 w( g' O3 q- x h H
$ V- D& o* Z9 a4 m& W
wscript //e:vbscript c:\path\to cript.vbs T7 c+ B; c& h- R/ Q+ h$ H% q7 h
8 [; @% f+ G/ s0 [! x: C8 AThe "//e:vbscript" tells wscript to use the vbscript engine to parse the script. It will then run correctly.; I# i8 L0 K' O
. Y- X5 n& Y7 J0 pA few alternative solutions, perhaps easier are:
" h" Q) P) h5 ?2 e( uRenameit .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... 6 S1 P) y- h$ U! ^& B1 M
This 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. |
|