2011-05-23 28 views
0

讓我們只說我們有這個作爲COMMAND1If,Then語句讓用戶知道命令可能無法執行?

Dim Command1 = "whoami.exe >> C:\Hello.Txt" 

程序會從一個文本文件中讀取用戶的列表,然後在他們每個人的執行操作。如果用戶不存在,或者他們是受密碼保護的計算機的一部分,我希望在我的打印輸出中看到。

我有這個,但我不能確定如何。如果你想「whoami.exe」的輸出重定向到自己寫的。如果隨後的聲明(如果是這樣的EBST路線採取)

For Each strUserName as String in strLines 
Shell("cmd.exe /c" & Command1) 
If Command1 = fail?? 
Then msgbox("Oops") ??? 

回答

2

控制檯,您可以執行以下操作:

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 

希望這有助於。

0

你需要寫If Then語句要麼是一行或多行與End If

If Command1 = fail Then msgbox("Oops") 

If Command1 = fail Then 
    msgbox("Oops") 
End If 

這裏結束是爲if statement的MSDN文檔。