|
  
- UID
- 1
- 帖子
- 738
- 精华
- 28
- 积分
- 14323
- 金币
- 2447
- 威望
- 1647
- 贡献
- 1395
|
昨天下载并且安装了Updater Application Block后,需要执行一个Deploy.vbs的文件,鄙人才疏学浅,这个小问题竟然也花费了我不少心机。
7 h* c* X$ V5 R/ {# Z" P( T n2 Q; O& I现在把结论共享一下。/ D! V3 w2 z* Z
. A6 o) @- ]: @
首先,我的vbs文件关联已经被“豪杰”夺取了。我双击Deploy.vbs就会打开豪杰,比较郁闷。但是我用了打开方式,试了浏览器、cmd,都无济于事。
) ^* M% t; u$ a/ A1 L+ x; B
# A+ I4 G* u& C0 ^1 g% `' O今天,我想到这个问题后,就有想法去Microsoft的News Group上去问一问。然后又去了CSDN的全文检索。果然很争气,我的关键字只是vbs,执行,就找到了一大堆我想要的东东。了解到用wscript.exe来执行这个文件。
6 ` N L w; L% W" ^4 W. u
; E1 K$ n4 G) }0 Z1 [2 w0 k1 u0 t在cmd里敲了wscript.exe Deploy.vbs,但是返回错误是 There is no script engine for fileextension '.vbs'。这个时候我想到了google。果然搜到了不少有用的信息,其中第一条里我就找到了解决办法。原因是我的vbs关联已经丢失了,必须显示指定。
. i# |! Y2 ]3 L& v7 n4 [" P" d
) `/ a) T6 G' E3 dcmd中敲入 wscript.exe //e:vbscript Deploy.vbs。果然成功!!!- I: _0 u5 G( ^: J6 }
9 G# Y" b% {2 U% `' j) s% A2 G& F6 E: _ $ L: ^+ M1 s8 N9 L. {% t
5 N% s( q* H5 z2 d: Q' ?5 }总结:用wscript.exe 执行类似vbs这类的脚本文件。如果文件关联丢失。可以用//e:vbscript.
7 n# |. V, d+ I! r
; R3 D% p1 p! J
8 P+ X3 g1 A M' `& w! [1 O/ u
. ]7 n/ }: G6 s8 D6 \. S附上我找到的很有帮助的文章。0 y x$ F$ a$ X
$ }$ _& E4 A7 M0 {6 F; l9 s
6 |. {' c5 X& D" Q8 s5 w6 u, [" c8 `1 [' | Z5 @
一、什么是WSH?
! G& ?' |8 ?( v- T/ f% |. u
) s6 ^6 o ^( w! l WSH是Windows Scripting Host(Windows脚本主机)的缩略形式。WSH这个概念最早出现于Windows98操作系统,是一个基于32 位 Windows 平台、并独立于语言的脚本运行环境。比如:你自己编写了一个脚本文件,如后缀为 .vbs 或.js 的文件,然后在 Windows 下双击 并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是Windows Scripting Host,程序执行文件名为 Wscript.exe (若是在DOS命令提示符下,则为Cscript.exe)。
8 t5 s) H0 u" t) Z; C% I% `5 ^3 T/ m+ e' W+ y. b D h5 h1 R
5 S. o9 h: J7 Y# Y6 A0 q6 Z4 `8 w4 w# T' A
想知道自己的机器上有没有WSH吗?查看一下你的机器里有没有“Wscipt.exe”或者“Cscript.exe”这两个文件就可以了。如果找到,恭 喜你!你已经安装了WSH。否则,自己手动安装吧:
6 v q7 ] O" ]' a: d& D) [; V: `; G5 Y2 X
在Windows98环境下,WSH是作为操作系统的一个组件自动安装的,如果不慎丢失了这个组件,可以从依次打开“控制面板-->添加/删除程序--〉Windows安装程序--〉附件”,然后将“Windows ScriptingHost”前的划上“√”,再确定即可完成WSH组件的安装。 " w; r! l; ]7 j' y3 J
, k q* T1 @& z/ s
, q# v! R) B" R5 [3 H4 _' Z
& w x6 |9 ~* s: K( p 二、脚本语言与WSH的关系
! X% f6 H u6 [& c) @5 {4 z2 a7 ]$ B/ |, p! Y3 K
大家知道,脚本语言(包括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]在这些被植于网页的脚本语言中,绝大多数是与网络安全无关的。但也有少数别有用心的好事者,把一些严重危及网络安全的代码(我们常常称之为“恶意代码”,他们通常都要通过修改注册表达到“恶意”的目的!),混放在正常的脚本之中,常常让我们防不胜防。但是,如果我们了解一点关于脚本语言的知识,这些“伎俩”都是非常容易识破的。还是让我们从几个简单 的实例开始吧……
. a( E/ ]) ~4 F m' e% j" F; p
) A) R3 b& [& M* r9 _- o: h
. T* m* o* Z' x: N+ X
2 M: ]( n9 R" ~4 n, l% m, Q6 `; @ 三、WSH应用举例 8 \, U; w- [5 E4 }: Q
8 k1 @( T7 A' u9 [5 Z# K* x( G WSH可以处理脚本程序,怎样阅读和编写WSH的脚本源文件呢?只要你有一点Basic(会VB的编程更好,呵呵)语言的基础,学会看懂WSH脚本语言的程序并不是一件难事。去C:WINDOWSSAMPLESWSH目录以下将看看吧!里面提供了几类经典的脚本例子,而且分别提供了VBScript和 javascript两个版本,我们只要用记事本打开它们并仔细研究就不难学到一些基本的WSH应用。 / F: {! j; e* N! k/ X" |9 b
) ~9 h; k3 ~$ f5 V {' |
& A% k+ P, k8 C/ f
# Y2 p; d7 E. O 你只需在记事本中依次输入以下每个实例中的代码,并保存为相应的“*.vbs”文件,双击这个文件,你就可以看到相应的效果了。3 |; J' |" X/ X2 ]8 p8 Y1 C
3 _+ \# m7 B5 k. T7 e- ~2 ` r
) T$ @( Y$ _+ m4 a: Z
% |1 \2 _5 f) V% v ?. n5 z
" c- X5 A M4 Q8 ]- l+ T
$ e* s0 ?# \; H' a% E+ p6 |5 a/ m 5 k8 z& X' O( k' n! k* j
' p7 S2 y7 T j" _Q: How do I open script files? Trying the above solution makes Windows XP throw an error?2 E3 y" i$ J& D, L+ H
9 Z8 L( ?% q/ E& i T" n4 ~8 ~# bA: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.1 H, m* F7 l" O4 O8 L c
! M1 P+ ?* D2 S& Z9 E" }, {
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.( |$ P5 [! |. y
' ]. D$ x9 h1 j& Y7 m' M6 y
The solution to this problem is to run the script as:
* N) N% e m$ r$ ]
# I3 R% l9 f3 J+ uwscript //e:vbscript c:\path\to cript.vbs# y2 j6 |. t! _% K) e
9 g1 ?; P5 x$ y4 S+ A* c
The "//e:vbscript" tells wscript to use the vbscript engine to parse the script. It will then run correctly.
5 t- O M, y. l. Q' @0 H! s7 @2 A, r7 @1 G% h: j8 f9 S
A few alternative solutions, perhaps easier are:" h0 S0 V' m0 _
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...
: l0 `# v7 A7 X, V: J( [% R1 N- X9 ]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. |
|