komoran12
Goto Top

Grafische Darstellung - Fortschrittsanzeige VBS Skript

Hallo Ihr,

ich brauche mal wieder eure Hilfe. Ich für mit nachfolgendem VBS Skript (hier im Forum gefunden)
mehrere Batch und Power-Shell Befehle aus:

Dim WshShell  : set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : set FSO = CreateObject("Scripting.FileSystemObject")  

'	Temporäre Batch-Datein erzeugen  
Dim prog1 : prog1 = FSO.GetTempName & ".vbs"  
Dim prog2 : prog2 = FSO.GetTempName & ".cmd"  
Dim prog3 : prog3 = FSO.GetTempName & ".cmd"  

With FSO.CreateTextFile(prog1, True)
.WriteLine "..."  
.WriteLine "..."  
.Close
End With

'	temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run prog1, 1, True
WshShell.Run prog2, 1, True
WshShell.Run prog3, 1, True

'	temporäre Batch-Datei löschen  
FSO.DeleteFile prog1, True
FSO.DeleteFile prog2, True
FSO.DeleteFile prog3, True

Habt Ihr vielleicht einen Tipp für mich, wie ich das Grafisch ggfs. mit einer VBA Fortschrittsanzeige und einer Restdauer darstellen kann?

Mit den besten Grüßen,
Komoran12

Content-ID: 340348

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

Ausgedruckt am: 23.11.2024 um 16:11 Uhr

132934
132934 11.06.2017 aktualisiert um 22:16:05 Uhr
Goto Top
Hier eine Idee wie man eine ProgressBar in VBS grafisch realisieren könnte: http://www.northatlantawebdesign.com/index.php/2009/07/16/simple-vbscri ...

Wenn dir grafisch in der Konsole reicht, findest du hier einen Ansatz:
https://stackoverflow.com/questions/18216027/vbscript-script-progress-no ...

Das mit der Restdauer wird wohl nichts werden, da du nicht sicher ermitteln kannst, wann die Einzelschritte und damit das gesamte Skript sicher terminiert.
Komoran12
Komoran12 12.06.2017 um 07:05:04 Uhr
Goto Top
Zitat von @132934:

Hier eine Idee wie man eine ProgressBar in VBS grafisch realisieren könnte: http://www.northatlantawebdesign.com/index.php/2009/07/16/simple-vbscri ...


Super vielen Dank, ich verstehe gerade bloß nicht, wo ich dann mein VBS einbauen müsste?
133417
133417 12.06.2017 um 09:33:00 Uhr
Goto Top
VBS ist nichts für Oberflächen.
Nimm die Powershell, die kann sämtliche Windows Forms und WPF Controls nutzen wie c#/VB.Net &Co.

Gruß
Komoran12
Komoran12 13.06.2017 um 19:54:26 Uhr
Goto Top
Gubt es vielleicht was einfaches mit "Ladebalken"?
133417
Lösung 133417 13.06.2017 aktualisiert um 20:08:50 Uhr
Goto Top
Write-Progress
Powershell progressbar AND multitask

Kleines Beispiel:
$commands = @(
    @{Command='cmd.exe';Arguments='/c ping 8.8.8.8'}  
    @{Command='cmd.exe';Arguments='/c ping 8.8.4.4'}  
    @{Command='cmd.exe';Arguments='/c ping localhost'}  
)
$num = 0
$commands | %{
    Write-Progress -Activity "Batch of commands running" -Status "Running Command Nr. $($num+1) of $($commands.Count)" -PercentComplete (($num / $commands.Count)*100)  
    Start $_.Command -ArgumentList $_.Arguments -Wait -WindowStyle Hidden
    $num++
}
Komoran12
Komoran12 13.06.2017 um 20:28:22 Uhr
Goto Top
Hi,

Kannstdu mir einen Tipp geben,wie ich das mit meinem Skript anpassen müsste?

Dim WshShell  : set WshShell = CreateObject("Wscript.Shell")  
Dim FSO : set FSO = CreateObject("Scripting.FileSystemObject")  

'	Temporäre Batch-Datein erzeugen  
Dim prog1 : prog1 = FSO.GetTempName & ".vbs"  
Dim prog2 : prog2 = FSO.GetTempName & ".cmd"  
Dim prog3 : prog3 = FSO.GetTempName & ".cmd"  

With FSO.CreateTextFile(prog1, True)
.WriteLine "..."  
.WriteLine "..."  
.Close
End With

'	temporäre Batch-Datei ausführen, auf Ende warten  
WshShell.Run prog1, 1, True
WshShell.Run prog2, 1, True
WshShell.Run prog3, 1, True

'	temporäre Batch-Datei löschen  
FSO.DeleteFile prog1, True
FSO.DeleteFile prog2, True
FSO.DeleteFile prog3, True
133417
133417 13.06.2017 aktualisiert um 20:51:49 Uhr
Goto Top
s. Code-Beispiel oben.

Dir jetzt Powershell bei zu bringen tu ich mir aber jetzt nicht an. Dazu gibt es ja bereits unzählige Tutorials die du dir erst mal durchlesen solltest. Copy n' paste bringt dich ja zukünftig nicht weiter.