Visual Basic, захват вывода из cmd - PullRequest
0 голосов
/ 07 октября 2018

Извините, если меня спросили раньше, я обнаружил, что другие Решения слишком сложны для меня .. В любом случае, я пытаюсь найти изображение с помощью cmd в Visual Basic Code и сохранить путь к изображению в строку, но я не могу захватитьвывод из cmd справа.Любая помощь будет оценена, спасибо!.

Код:

    Dim imageLocation As String
    Dim cmd As New Process
    Dim SR As System.IO.StreamReader
    cmd.StartInfo.FileName = "cmd.exe"
    cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    cmd.StartInfo.Arguments = "/C dir /b/s Roey.png"
    cmd.Start()
    SR = cmd.StandardOutput
    imageLocation = SR.ReadLine

ОБНОВЛЕНО Итак, я обнаружил, что сохранение вывода в текстовый файл, а затем прочитать его может быть большепросто, поэтому я написал следующий код:

        Dim cmd As New Process
        cmd.StartInfo.FileName = "cmd.exe"
        cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        cmd.StartInfo.Arguments = "/C dir /b/s Roey.png > 
        C:\Users\ירין\Desktop\Roeyyy\path.txt"
        cmd.Start()
        cmd.WaitForExit()

когда я запускаю

    "dir /b/s Roey.png > 
    C:\Users\ירין\Desktop\Roeyyy\path.txt"

на CMD, он отлично работает, так почему же он не работает здесь?(

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Я нашел это :

Dim MyFilePath As String = Directory.GetFiles([SomePath], "*.png", SearchOption.AllDirectories).
     Where(Function(f) f.Contains("Roey.png")).FirstOrDefault()

Решено!

0 голосов
/ 07 октября 2018

Вы программист, поэтому вы ищете файлы.

Imports System.Runtime.InteropServices
Sub Main
'On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Dirname = InputBox("Enter Dir name")

ProcessFolder DirName

End Sub

Sub ProcessFolder(FolderPath)
    On Error Resume Next
    Set fldr = fso.GetFolder(FolderPath)

    Set Fls = fldr.files

    For Each thing in Fls
         msgbox Thing.Name & " " & Thing.path 
         'fso.copyfile thing.path, "C:\backup"
    Next

    Set fldrs = fldr.subfolders
    For Each thing in fldrs
        ProcessFolder thing.path
    Next

End Sub
...