我正在尝试存储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
答案 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