Wscript 和 Cscript 运行脚本的区别详解

所属分类: 脚本专栏 / vbs 阅读数: 2017
收藏 0 赞 0 分享

WSCRIPT与CScript区别

窗口中运行,WSCRIPT;命令行中运行,CScrip;
    cscript因为把输出放进了控制台 所以可以对它重定向 方便程序调用
    wscript直接用窗口输出 适合调试程序和编写小工具 在windows下不用cmd的话cscript的输出会一闪而过 大多数情况下,列在下表中的选项适用于 WScript.exe 和 CScript.exe。例外情况会加以注释。

参数                      说明
//B                       批处理模式;隐藏用户提示和脚本错误在命令行中的显示。默认模式是交互模式。
//D                       打开调试程序。
//E:engine                用指定的脚本引擎执行脚本。
//H:CScript或 //H:Wscript 将 CScript.exe 或 WScript.exe 注册为运行脚本的默认应用程序。如果未指定,则将 WScript.exe 假设为默认应用程序。
//I                       默认。交互模式;允许显示用户提示和脚本错误。与批处理模式相反。
//Job:<JobID>             从 .wsf 文件运行指定的 JobID。
//logo                    默认。显示标题。与 nologo 相反。
//nologo                  防止在运行时显示执行标题。默认设置是 logo。
//S                       保存该用户的当前命令行选项。
//T:nn                    启用超时:脚本可以运行的最大秒数。默认设置是无限制。//T 参数通过设置定时器来防止脚本执行过度。当执行时间超过指定值时,CScript 用 IActiveScript::InterruptThread 方法中断脚本引擎,并终止过程。
//U                       用于 Windows NT 和 Windows 2000,强制命令行以 Unicode 格式输出。CScript 无法决定以 Unicode 还是以 ANSI 输出;默认设置为 ANSI。
//X                       在调试程序中启动该程序。
//?    

微软的解释:

Script Hosts
The script host initiates and coordinates the running of your script; it reads your script file and interacts with components of the WSH environment and any COM objects required by the script. It is also the responsibility of the script host to determine which language engine to use when running the script. For example, if the script has a .vbs extension, the script host will load the VBScript language engine and begin working with that engine to execute the code.

The WSH environment includes two script hosts: the console-based CScript and the GUI-based WScript. The two script hosts provide nearly identical capabilities, and in most cases, it does not matter which of the script hosts you use to run your scripts.

The two exceptions lie in how you interact with a script; that is, how you get information into a script (input) and how the script displays information it has retrieved (output). In general, CScript receives input from the command prompt and displays output in a command window. WScript, by contrast, receives input through a graphical dialog box and displays output in a graphical message box.

Otherwise, the two script hosts are largely identical: If you have a script that does not require user interaction, you can run that script under either CScript or WScript. For example, the following script maps a network drive. Because it neither requires input nor displays output, it runs exactly the same under either script host:

Set objNetwork = Wscript.CreateObject("WScript.Network")objNetwork.MapNetworkDrive "g:", "\\atl-fs-01\Sales"
On the other hand, the following script which displays a series of messages runs much differently under CScript (where the messages are displayed as individual lines within a command window) and WScript (where the messages are displayed as a series of message boxes). If you are interested in seeing the difference for yourself, copy the script into Notepad, save it with a .vbs file extension, and then run it under both CScript and WScript. (For more information about running scripts under a script host, see "Running WSH Scripts" later in this chapter.)

复制代码 代码如下:

Wscript.Echo "Line 1."
Wscript.Echo "Line 2."
Wscript.Echo "Line 3."
Wscript.Echo "Line 4."

更多精彩内容其他人还在看

一个用vbs查找硬盘所有分区中的指定程序的代码

用vbs实现可以查找指定扩展名的文件,方便大家搜索
收藏 0 赞 0 分享

用vbs操作注册表实例代码

自己最近没事研究注册表,下面我想将自己找到的一些实用的VBS脚本送给大家
收藏 0 赞 0 分享

用VBS来代替BAT或CMD文件进行命令第1/2页

忽然想到要用VBS来代替BAT或CMD文件进行命令集成,于是开始下苦工学习了一番!在网上找了好久终于找到东西。
收藏 0 赞 0 分享

禁止QQ上网的vbs脚本代码

用vbs查找系统进程,发现qq的进程则杀掉就是这段代码的原理
收藏 0 赞 0 分享

用vbs实现注册表开关的脚本

注册表开关[以下代码保存为.vbs]
收藏 0 赞 0 分享

用vbs实现解除注册表CMD、Regedit、Taskmgr限制的脚本代码

vbs解除CMD、Regedit、Taskmgr限制的代码
收藏 0 赞 0 分享

自己写的一个定时关机或重启的vbs脚本

'以下代码是定时关机或重启的脚本,在windows 2000下通过
收藏 0 赞 0 分享

关于phpwind克隆用户的方法

用vbs实现编码转换
收藏 0 赞 0 分享

vbs中的LoadPicture函数示例

vbscript LoadPicture函数可以查看本地图片的一些信息,不过有些漏洞,纯交流可以,不建议使用
收藏 0 赞 0 分享

vbs循环产生的参数的传递问题

用vbs实现循环产生参数的传递问题,建议大家测试学习
收藏 0 赞 0 分享
查看更多