经验:
写入for的run,不能设置第三个参数,否则for将不起作用
第二个参数就是用来控制运行窗口模式 有0-9模式 其中0是隐藏后台运行,6是最小化运行
SW_HIDE 0 Hides the window and activates another window. SW_MINIMIZE 6 Minimizes the specified window and activates the next top-level window in the Z order. SW_RESTORE 9 Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window.
第三个参数将允许我们防止相关程序以并发方式运行。您可将第三个参数赋值为True,以便指示脚本停留在使用Run方法的代码行并保持等待状态,直到已被激活的程序运行完毕。我们已经知道了因未设定该参数所产生的后果,该参数在缺省状态下被设定为False,而这种设置必将导致两个程序同时运行。也就是说TRUE值时必须等待这个脚本完成才运行其他程序,而false时可能还未运行完又执行另外一个脚本
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 参数 object WshShell 对象。 strCommand 表示要运行的命令行的字符串值。必须包括要传递到可执行文件的所有参数。 intWindowStyle 可选。表示程序窗口外观的整数值。请注意,并非所有程序都使用此信息。 bWaitOnReturn 可选。布尔值,表示在继续执行脚本中的下一条语句之前,脚本是否等待执行完程序。如果设为 true,则在执行完程序后才执行脚本,Run 方法返回由程序返回的任何错误代码。如果设为 false(默认值),则 Run 方法将自动在启动程序后立即返回 0(不是错误代码)。 说明 Run 方法返回一个整数。Run 方法启动在新 Windows 进程中运行的程序。可以让脚本等到程序执行完后再继续执行。这允许您同步运行脚本和程序。
intWindowStyle 说明
0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。
VBS中run和exec的区别
都可以用来运行程序,且可以带参数。 都可以在程序路径中使用环境变量。 都不能为程序指定工作目录、不能设置优先级。start命令可以。 要指定工作目录,只能通过改变脚本宿主(WScript.exe/CScript.exe)的当前工作目录:ws.CurrentDirectory = "工作目录" (常识:工作目录有何意义:1、有些程序需要相应目录下的dll等相关文件支持 2、相对路径问题)
4、exec运行的程序路径中即使含有空格,也可以不加引号(参数如需引号,它的引号不能省略)。 run、start没有这个本领。
5、最大的区别是: run着重于启动控制(设置窗口形式)。(start听名字知道是为了启动,也可以简单设置窗口最大化、最小化。) exec着重于后续控制,并着重于控制命令行程序。 run可以设置程序运行时的运行模式(前台后台:是否隐藏窗口)、窗口大小、激活状态(是否获取“焦点”),具体参数请参考手册《Windows 脚本技术》(Script56.chm)中关于run方法的说明。 exec在启动程序后还能对其进行控制:获取运行状态、获取PID、强行中止进程。如果运行的是命令行程序,还能提供对 StdIn/StdOut/StdErr 流的访问:写入执行命令、获取命令输出等。运行命令行程序后只能通过StdIn写入命令,控制台窗口不再接受用户输入。
注意,手册上明确指出,run不能约束所有程序都按它指定的窗口形式运行,有些程序不听它的话,比如iexplore、calc等。运行ieplore时,它会夺取焦点成为活动窗口。run无法以最小化运行calc。