Если, тогда оператор, позволяющий пользователю знать команду, не может быть выполнен? - PullRequest
0 голосов
/ 23 мая 2011

Давайте просто скажем, что мы имеем это как Command1

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

Программа прочитает список пользователей из текстового файла и затем выполнит действие с каждым из них.Если пользователь не существует или является частью компьютера, защищенного паролем, я хотел бы видеть это в моей распечатке.

У меня есть это, но я не уверен, как написать оператор If Then (Если этосамый быстрый маршрут)

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

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

Если вы хотите перенаправить вывод «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

Надеюсь, это поможет.

0 голосов
/ 23 мая 2011

Вам нужно написать оператор If Then в одну или несколько строк, заканчивающихся End If

If Command1 = fail Then msgbox("Oops")

или

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

Вот документация msdn дляоператор if .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...