• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    vbScript中WScript.Shell对象的run和exec使用心得分享

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

    两个方法的声明如下
    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()

    可以取道控制台错误和控制台信息。
    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

    您可能感兴趣的文章:
    • VBS中Run和Exec的区别
    上一篇:vbscript 读取xml格式的配置文件
    下一篇:VBS 路由重启脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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