将objShell.run存储在变量中

时间:2014-02-07 14:52:15

标签: windows vbscript file-permissions

我正在尝试存储objShell.run的输出,然后将其显示出来。

On Error Resume Next 
Set objShell = CreateObject("WScript.Shell")
strPermissionsDirValue = ""
strPermissionsDirValue = objShell.run ("cacls C:\SQL2008")
WScript.Echo VBTab & strPermissionsDirValue
strPermissionsDirValue = ""

当我执行上述操作时,我得到0。

输出应该是     C:\ SQL2008 CREATOR所有者:(OI)(CI)(IO)F     NT AUTHORITY \ SYSTEM :( OI)(CI)F     BUILTIN \管理员:(OI)(CI)的F

1 个答案:

答案 0 :(得分:1)

WScript.Shell对象只会根据您启动的应用程序的退出状态返回数字。

一种方法是将输出转储到临时文件。改变这一行..

strPermissionsDirValue = objShell.run ("cacls C:\SQL2008")

对此..

objShell.run "cmd /k cacls C:\SQL2008 > temp.txt"

然后,只需读取该临时文件,在这种情况下,处理cacls输出的每一行。

Set objFSO = CreateObject("Scripting.FileSystemObject")   
Set objInputFile = objFSO.OpenTextFile("temp.txt", 1)

Do While objInputFile.AtEndOfStream = False
  strLine = objInputFile.ReadLine      
Loop