`
izuoyan
  • 浏览: 9222241 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

vbScript中WScript.Shell对象的run和exec使用心得

阅读更多
<!--[endif]-->

http://blog.csdn.net/zmxj/archive/2009/02/25/3937372.aspx

WScript.Shell象提供了runexec两个方法,最近目中需要在vbscript脚本中用pscplinux器上copy文件。本来使用了exec方法,以下代

Set exeRs = objws.Exec("pscp -r -scp -pw " & password & " " & loginid & "@" & host & ":" & data_path & fileName & " " & windows_path)
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

但在测试候,当拷的文件比大,拷贝时间较长候就出cmd窗口死在那里不了的情况,直接在cmd窗口中运行pscp相同的文件就可以正常 束。也找不到是什原因,于是改成run方法一下,run方法是可以正常束的,但是原来的代中有需要取得cmd的控制台出信息,而run却 不方便取得控制台信息,最后只能先把控制台信息重定向到文件中,然后程序在取。最后一下runexec两个方法的区的一些理解:

两个方法的声明如下
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

Function Exec(ByVal Command As String) As WshExec

Function Run(ByVal Command As String, [ByVal WindowStyle], [ByVal WaitOnReturn]) As Integer

可以看出几点区

1run的返回是一个整数,就是01成功和失两个状,而exec方法的返回是一个象,从返回象中可以得控制台出信息和控制台错误信息,即StdOutStdErr属性等。例如:

Set exeRs = objws.Exec("pscp -r -scp -pw 。。。。"

errMsg = exeRs.StdErr.ReadAll()

stdMsg = oExec.StdOut.ReadAll()
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

可以取道控制台错误和控制台信息。
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

2Run 的后两个参数,一个是cmd窗口的格,一个是是否等待行完成。最后一个参数很有用,如果你希望等待本次cmd行的程序束后,在 objws.Exec后面的句的,只要个参数true就可以了,否后面的句将不等待cmd窗口完成,直接运行(我们项目就有这个需求,从服务器上拷贝一个文件到本地后,马上要打开这个文件操作,如果文件没有拷贝完就去操作就会出错的。)。另外,如果你使用exec 方法的候,如果希望等待cmd中程序行完后,在行后面的句,也可以通下面的方法:

oExec.StdErr.ReadAll()或者oExec.StdOut.ReadAll(),道理上也应该好理解,要得到出的信息,肯定要cmd行完后才会有出的。

参数的详细信息可以参考msdn

http://msdn.microsoft.com/zh-cn/library/ateytk4a(en-us,VS.85).aspx

http://msdn.microsoft.com/zh-cn/library/d5fk67ky(en-us,VS.85).aspx

分享到:
评论

相关推荐

    vbScript中WScript.Shell对象的run和exec使用心得分享

    在VBScript中,WScript.Shell对象是用于与操作系统交互的重要工具,它提供了两种执行命令的方法:`Run`和`Exec`。这两种方法各有特点,适用于不同的场景。 首先,让我们详细了解一下`Run`方法。`Run`方法的主要作用...

    VB SHELL等待

    VBScript中的`WScript.Shell`对象提供了这样的功能,它允许我们调用操作系统命令,例如执行可执行文件、批处理文件等。`Shell`对象有一个方法叫做`Run`,它可以用来启动一个程序,并且接受一个参数来控制程序是否在...

    VBS中Run和Exec的区别

    首先,WScript.Shell对象的Run方法和Exec方法都可以用来运行程序,它们可以带参数并在程序路径中使用环境变量。但它们之间存在一些重要区别: 1. Run可以直接运行文件,包括那些没有关联的文件,它会启动与文件关联...

    jincheng.rar_vbs

    在VBScript中,我们可以通过`WScript.Shell`的`Exec`或`Run`方法来调用它。 ```vb Dim processList Set processList = wscript.Exec("wmic process get name, CommandLine, ProcessId") ``` 3. **处理输出**:`...

    使用WSH和VBScript获取用户信息

    总之,使用WSH和VBScript获取用户信息是IT管理中的常见操作,这不仅可以帮助你更好地理解用户环境,还能在自动化任务和系统集成中发挥重要作用。通过熟悉这些对象和方法,你可以编写出高效且实用的脚本来满足各种...

    vbs监控脚本

    在Windows中,我们可以使用WScript.Shell对象来执行命令行操作,如启动、停止或检查进程状态。以下是一个简单的示例: ```vbscript Option Explicit Dim WshShell, oExec Set WshShell = WScript.CreateObject(...

    vbs 实例 自已做的一个小游戏

    在VBScript中调用批处理文件通常通过`WScript.Shell`对象的`Run`方法实现,例如:** ```vbscript Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "cmd /c myBatchFile.bat", 1, False ``` **这...

    windows脚本编成中的对象介绍(重要).doc

    以上示例首先创建了一个`WScript.Shell`对象,然后使用`SpecialFolders`属性获取桌面的路径。接下来,使用`CreateShortcut`方法创建了一个指向当前脚本的快捷方式,并设置了快捷方式的各种属性,最后调用`Save`方法...

    取DOS命令返回结果

    4. **VBScript**:在VBScript中,`WScript.Shell`对象的`Run`和`StdOut`属性可以用来执行命令和获取输出: ```vbscript Set shell = WScript.CreateObject("WScript.Shell") command = "dir /w" Set process = ...

    VBS生成文件MD5

    3. **执行命令**:接着,使用`objShell`对象的`Run`方法执行命令,并获取输出。 ```vbscript Set objExec = objShell.Exec(command) ``` 4. **读取输出**:`objExec`对象有一个`StdOut`属性,我们可以从这里读取`...

    windows下tomcat自动启动vbs脚本

    在上面的脚本中,`CreateObject("WScript.Shell")` 创建了一个WScript Shell对象,它可以执行系统命令。`Exec` 方法用于运行`startup.bat`批处理文件。`WScript.Sleep 100` 是为了让脚本稍作等待,防止在Tomcat完全...

    asp图片按比例缩放,不会变形的,好用

    Set oImage = Server.CreateObject("WScript.Shell").Exec("C:\Program Files\GIMP 2\bin\gimp-2.0\gimp-console.exe -i -b '(gimp-file-load RUN-NONINTERACTIVE """ & oServer.MapPath("original.jpg") & """ """ ...

    wmi手册(英文)

    在VBScript中,使用`WScript.Shell`对象的`Exec`或`Run`方法可以执行命令行操作,而`WMI`对象则用于查询和管理WMI信息。以下是一个简单的示例,展示了如何使用VBScript查询操作系统信息: ```vbscript Set ...

    CMD自动运行Python,自动改名,自动执行,自动输入,自动回车

    标题中的“CMD自动运行Python,自动改名,自动执行,自动输入,自动回车”指的是在Windows命令行(CMD)环境中,通过特定的脚本技术(如VBScript和批处理)来实现自动化操作,包括运行Python程序、更改文件名、执行...

    启动暂停系统服务(VB,BAT,VBS含源码 )

    通过WScript.Shell对象,我们可以调用外部命令来管理服务。以下是VBS脚本启动和暂停服务的例子: ```vbscript Option Explicit Dim WshShell, ServiceName, Status ServiceName = "ServiceName" Set WshShell = ...

    windows环境下,使用vbs脚本,配置java,jar包自启动的方法

    在Windows环境中,使用VBScript(Visual Basic Script)配置Java环境并实现JAR包自启动是一项常见的自动化任务,尤其适用于需要定期或系统启动时自动运行Java应用程序的场景。下面将详细介绍这个过程,包括VBScript...

    php打印实现

    在PHP中,可以调用shell_exec()或exec()函数执行VBScript脚本来实现打印功能。例如,编写一个VBScript文件(如`print.vbs`),设置打印机和打印参数,然后在PHP中执行这个脚本。 3. 实现流程: - 在PHP中,首先...

    cdrom.rar_cdrom

    通过WScript.Shell对象的Exec或Run方法,可以调用系统命令控制光驱。 3. **硬件交互API**:更深入的话,可能会涉及到Windows API(应用程序编程接口)中的函数,比如SendInput函数模拟按键操作来控制光驱。 4. **...

    mssql高手注入.txt

    EXEC sp_oacreate 'wscript.shell', @shell OUTPUT; EXEC sp_oamethod @shell, 'run', NULL, 'cmd.exe /c dir c:\ &gt; c:\temp.txt', '0', 'true'; -- 使用文件系统对象读取文件内容 EXEC sp_oacreate 'scripting....

Global site tag (gtag.js) - Google Analytics