获得本站免费赞助空间请点这里
返回列表 发帖

vbs脚本文件执行

昨天下载并且安装了Updater Application Block后,需要执行一个Deploy.vbs的文件,鄙人才疏学浅,这个小问题竟然也花费了我不少心机。
7 s; H: H6 o* ?1 V现在把结论共享一下。
, H* E" }" S- i, A# p. R: ~/ }& h7 _9 ^: P& }& |  _
首先,我的vbs文件关联已经被“豪杰”夺取了。我双击Deploy.vbs就会打开豪杰,比较郁闷。但是我用了打开方式,试了浏览器、cmd,都无济于事。
2 I6 u# A  {. N! }5 ]4 e/ F' Z
, |6 {  G6 y& A! d( \" _  Y/ J今天,我想到这个问题后,就有想法去Microsoft的News Group上去问一问。然后又去了CSDN的全文检索。果然很争气,我的关键字只是vbs,执行,就找到了一大堆我想要的东东。了解到用wscript.exe来执行这个文件。! H# ^' v9 L+ L# A1 [; i! O6 L
# ?$ g$ c. D0 b: T& y+ e! G
在cmd里敲了wscript.exe Deploy.vbs,但是返回错误是  There is no script engine for fileextension '.vbs'。这个时候我想到了google。果然搜到了不少有用的信息,其中第一条里我就找到了解决办法。原因是我的vbs关联已经丢失了,必须显示指定。! L* _' I5 N! k6 j& T
/ T1 O6 S& K5 ?/ g- X
cmd中敲入 wscript.exe  //e:vbscript  Deploy.vbs。果然成功!!!
+ o" Y; W( u8 S6 d9 C0 ]) j; D1 f6 z0 Z+ p& I0 Q+ _- c; |5 K' p

: I: h1 b9 ~+ k6 A# p8 }
0 Y" r- L9 R5 t总结:用wscript.exe 执行类似vbs这类的脚本文件。如果文件关联丢失。可以用//e:vbscript.
' b. k. I  j! W( }4 q' A- e" }( `* E  \: h

7 _* r* M4 M/ N7 B/ ?4 q' Z! z/ c4 y8 s  A5 M1 a
附上我找到的很有帮助的文章。. D* B+ q. w7 N
+ E8 h9 D- e' R! o

+ W1 G) F6 {, P2 [3 Q) \& C6 p8 Y2 i* x. Y9 z
一、什么是WSH?
9 ?- x! d) P9 v0 J$ j1 i
9 S; K1 h9 _6 t+ r; I* n  WSH是Windows Scripting Host(Windows脚本主机)的缩略形式。WSH这个概念最早出现于Windows98操作系统,是一个基于32 位  Windows 平台、并独立于语言的脚本运行环境。比如:你自己编写了一个脚本文件,如后缀为 .vbs 或.js 的文件,然后在 Windows 下双击 并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是Windows Scripting Host,程序执行文件名为  Wscript.exe (若是在DOS命令提示符下,则为Cscript.exe)。 4 h' g- S' Q+ d& P4 T

+ p$ u4 i, G8 ?6 ]3 f; s2 b0 C   7 r" S0 P2 O/ v  j- e8 Q

$ [* c2 Y* K9 C7 M7 ~  想知道自己的机器上有没有WSH吗?查看一下你的机器里有没有“Wscipt.exe”或者“Cscript.exe”这两个文件就可以了。如果找到,恭 喜你!你已经安装了WSH。否则,自己手动安装吧:
1 l. O7 Z& Q: m; V" b6 m1 ]  i8 K  Z( E( ?" V( G7 T
  在Windows98环境下,WSH是作为操作系统的一个组件自动安装的,如果不慎丢失了这个组件,可以从依次打开“控制面板-->添加/删除程序--〉Windows安装程序--〉附件”,然后将“Windows ScriptingHost”前的划上“√”,再确定即可完成WSH组件的安装。
# ?* L, e7 }+ `. R
& {" {* Y+ w8 j2 l5 N  
4 ^( A& c, A; W3 x1 d+ v( F8 y4 ]& j9 Y( w5 e
  二、脚本语言与WSH的关系
, T4 b. r' ?1 h
6 {- M, z$ I* ]" ^. y- A/ [( x) o( r  大家知道,脚本语言(包括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]在这些被植于网页的脚本语言中,绝大多数是与网络安全无关的。但也有少数别有用心的好事者,把一些严重危及网络安全的代码(我们常常称之为“恶意代码”,他们通常都要通过修改注册表达到“恶意”的目的!),混放在正常的脚本之中,常常让我们防不胜防。但是,如果我们了解一点关于脚本语言的知识,这些“伎俩”都是非常容易识破的。还是让我们从几个简单 的实例开始吧……! k6 @3 X0 e3 f" i7 p

( S" e4 n0 V* W/ A! @, R- E' ]   2 ^. }3 k0 r0 f! Q2 {
, ^" |4 L8 M/ D( `* R
  三、WSH应用举例
* ^8 }- F. `. Q
4 Y6 }/ p. Q3 J9 K: [  WSH可以处理脚本程序,怎样阅读和编写WSH的脚本源文件呢?只要你有一点Basic(会VB的编程更好,呵呵)语言的基础,学会看懂WSH脚本语言的程序并不是一件难事。去C:WINDOWSSAMPLESWSH目录以下将看看吧!里面提供了几类经典的脚本例子,而且分别提供了VBScript和 javascript两个版本,我们只要用记事本打开它们并仔细研究就不难学到一些基本的WSH应用。
# p' T3 B+ S. s' d% c6 t  u1 q4 Y' i$ S& t; S  `9 f1 ~% o
   + n( |" z$ E5 J7 D. z- K: R

; d8 M/ T! @8 G  你只需在记事本中依次输入以下每个实例中的代码,并保存为相应的“*.vbs”文件,双击这个文件,你就可以看到相应的效果了。
6 m% _6 {* G5 L& Q1 N, a% Z6 y% U" R, ^  T
# R2 E! A5 ?) k* @' i9 p9 O  g
$ L; M9 V" k* c1 ~
* A/ U' n+ ^  w$ m  P2 N

! ~# K+ m4 M8 E0 `/ g2 E% I% _
- X  G; k5 W) P. z& V* d6 @
; Y' ]8 f7 _4 n* l$ F7 N* \Q: How do I open script files? Trying the above solution makes Windows XP throw an error?
8 k7 N/ m1 P8 F2 D
9 {0 {. \9 }8 e2 d; Z. kA: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.
. @, c6 U! ~. j/ D0 V/ T, W+ V7 U  C
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.- a1 w( X" M3 G" R$ t
! a, W2 t) A& Q- }
The solution to this problem is to run the script as:
3 B: k" J/ V5 ^" e# y7 p7 w8 L% U/ x2 V; K! I" `7 h
wscript //e:vbscript c:\path\to cript.vbs
* G5 l6 H! U0 t" @% j. j3 u; n$ G' i: J: A' ~+ L, a
The "//e:vbscript" tells wscript to use the vbscript engine to parse the script. It will then run correctly.
' V( O3 x% Z8 g1 C1 p
4 q+ b1 P1 Y& DA few alternative solutions, perhaps easier are:' M- ?1 b$ x4 v7 t( ]% x
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... ) K4 W4 A) }3 ?
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.

返回列表
【捌玖网络】已经运行: