让我们说我们将其作为Command1
Dim Command1 = "whoami.exe >> C:\Hello.Txt"
程序将从文本文件中读取用户列表,然后对每个用户执行操作。如果用户不存在,或者他们是受密码保护的计算机的一部分,我希望在我的打印输出中看到。
我有这个,但我不确定如何编写If Then Statement(如果这是ebst路线)
For Each strUserName as String in strLines
Shell("cmd.exe /c" & Command1)
If Command1 = fail??
Then msgbox("Oops") ???
答案 0 :(得分:2)
如果要将'whoami.exe'的输出重定向到您自己的控制台,您可以执行以下操作:
Dim startInfo As New ProcessStartInfo()
startInfo.Arguments = "c:\Hello.txt"
startInfo.FileName = "c:\whoami.exe"
startInfo.RedirectStandardOutput = True
startInfo.UseShellExecute = False
Using process As Process = Process.Start(startInfo)
Using stream As StreamReader = process.StandardOutput
Console.Write(stream.ReadToEnd())
End Using
End Using
您需要导入System.Diagnostics名称空间。如果'whoami.exe'返回您可以使用的退出代码,您还可以使用Process类通过调用来检查它:
process.WaitForExit()
Dim code As Integer = process.ExitCode
If code = 1 Then
' success
Else
' other
End If
希望这有帮助。
答案 1 :(得分:0)
您需要将If Then
语句写在以End If
If Command1 = fail Then msgbox("Oops")
或
If Command1 = fail Then
msgbox("Oops")
End If
以下是if statement的msdn文档。