goodbytes
Goto Top

Vbs - Variable als Parameter an externes Programm übergeben und Rückgabewert in Variable schreiben

Hallo,
ich habe ein vbs-Script, welches alle Dateien eines Verzeichnisse in ein Array schreibt. Mittels eines kleinen Tools kann ich Exif-Daten einer Datei auslesen.
Ich gebe also den interessierenden Wert als Parameter mit und dazu den Dateinamen als String:
exiftool.exe -SuchParameter [Dateiname]
Danach schreib ich den Dateinamen und den ermittelten Exif-String in das Array.

Wie übergebe ich also an das externe Tool und wie schreibe ich den zurückgegebenen String in eine Variable?

Gruß
Torsten

Content-Key: 270600

Url: https://administrator.de/contentid/270600

Ausgedruckt am: 28.03.2024 um 21:03 Uhr

Mitglied: colinardo
Lösung colinardo 29.04.2015 aktualisiert um 12:06:54 Uhr
Goto Top
Hallo Torsten,
hier ein kleines Beipspiel wie man den StdOut eines Konsolentools auslesen kann:
Dim objShell, oExec, out
Set objShell = CreateObject("Wscript.Shell")  

'Befehl ausführen  
Set oExec = objShell.Exec("cmd /c ping -n 1 localhost")  

'Warte darauf das der Befehl beendet wurde  
Do While oExec.Status = 0
     WScript.Sleep 100
Loop

' StdOut auslesen  
out = ""  
Do While Not oExec.StdOut.AtEndOfStream
   out = out & oExec.StdOut.ReadAll
Loop

' Zum Test: Ausgabe anzeigen lassen:  
msgbox out
Grüße Uwe
Mitglied: goodbytes
goodbytes 29.04.2015 um 11:50:19 Uhr
Goto Top
Hallo Uwe,
das ging ja superschnell und funktioniert perfekt, danke !!! face-smile
Eine Frage noch, Als Rückgabe erhalte ich da mehrere Strings in einer Zeile. Wie kann ich von der Rückgabe nur den String nach dem ersten Doppelpunkt nutzen?

Gruß
Torsten
Mitglied: colinardo
Lösung colinardo 29.04.2015 aktualisiert um 12:05:37 Uhr
Goto Top
Wenn es in der ersten Zeile der Ausgabe steht und die Ausgabe mehrere Zeilen hat ...
Kommt halt drauf an wie die Zeile aussieht ... Du machst es uns einfacher indem du uns einfach die exakte Ausgabe deines Befehls hier postest face-wink
'..... wie oben  

arrLines = Split(out,vbNewLine)
var = Trim(Split(arrLines(0),":",2,1)(1))  
MsgBox var
Mitglied: goodbytes
goodbytes 29.04.2015 um 12:06:36 Uhr
Goto Top
Perfekt!
Vielen Dank und einen schönen Tag noch! face-smile

Gruß
Torsten