WScript.Shell对象提供了run和exec两个方法,最近项目中需要在vbscript脚本中用pscp从linux服务器上copy文件。本来使用了exec方法,以下代码 Set exeRs = objws.Exec("pscp -r -scp -pw " & password & " " & loginid & "@" & host & ":" & data_path & fileName & " " & windows_path) 这两个方法的声明如下 Function Run(ByVal Command As String, [ByVal WindowStyle], [ByVal WaitOnReturn]) As Integer 可以看出几点区别: 1,run的返回值是一个整数,就是0或1成功和失败两个状态,而exec方法的返回值是一个对象,从返回对象中可以获得控制台输出信息和控制台错误信息,即StdOut和StdErr属性等。例如: Set exeRs = objws.Exec("pscp -r -scp -pw 。。。。" errMsg = exeRs.StdErr.ReadAll() stdMsg = oExec.StdOut.ReadAll() 可以取道控制台错误和控制台信息。 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 |
|
来自: clhon > 《VBScript》