If,Then Statement让用户知道命令无法执行?

时间:2011-05-23 12:00:16

标签: vb.net visual-studio-2010

让我们说我们将其作为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") ???

2 个答案:

答案 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文档。