Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Unterschiedliche Darstellung von stdout in Powershell und Batch

Frage Entwicklung Batch & Shell

Mitglied: mqlmann

mqlmann (Level 1) - Jetzt verbinden

13.06.2014 um 15:34 Uhr, 1687 Aufrufe, 3 Kommentare

Hallo,

mit Powershell3 rufe ich ein Kommandozeilentool auf, dass mir auf stdout eine Fortschritts-Info in Prozenten gibt. Das Problem ist, dass die Shell mir für jede Prozentänderung eine neue Zeile ausgibt:

6fe95d826345c12f7dd893a0f7a34b15 - Klicke auf das Bild, um es zu vergrößern


Wenn ich mittels Batch das Tool mit den identischen Parametern anspreche, sehe ich die Fortschrittsanzeige nur auf einer Zeile. D. h. die Prozentzahlerneuert sich forlaufend:

435662eeb00fdf6ebd51e945bad1c4dc - Klicke auf das Bild, um es zu vergrößern


Grundsätzlich also die Frage: woran kann das liegen?
Und falls das nicht lösbar ist: Gibt es einen Weg der Shell zu sagen, dass alle Informationen auf stdout, die "%" beinhalten, auf einer Zeile dargestellt werden? Und wenn ja, kann man die sich verändernde Prozentzahl in irgendeinerweise innerhalb eine Form als Text / Label darstellen und mit einer Art TimerOnTick aktualisieren lassen, bis das Ganze die 100% erreichjt?
Oder ist es, im Idealfall möglich, möglich die Prozentangaben als Grundlage für eine Progressbar einsetzen? Als weitere Schwierigkeit kommt hinzu, dass ich die Informationen, da die das Tool nach Abschluss (100%) auf stdout bzw. stderr ausgibt, unbedingt brauche und diese durch das "Einzeiligmachen" nicht verlieren darf.

Vielen Dank im Voraus!
Mitglied: Lochkartenstanzer
13.06.2014 um 15:47 Uhr
Moin,

Leite doch einfach mal die Ausgabe in eine Textdatei um und schau, ob beidesmal dieselben Steuerzeichen generiert werden.

ich vermute daß das Programm einfach nru ein "CR" (Zeilenrücklauf) ausgibt udn die Poweshell das fgleich mit "neue Zeile" interpretiert was eigentlich ein "CRLF" (Zeilenrücklauf mit Vorschub) wäre.

Da wird man nicht viel tun können, außer die Ausgabe eventuell durch eine Filter wie z.B. sed zu leiten, der das dann zurchtbiegt.

lks
Bitte warten ..
Mitglied: netlord
13.06.2014 um 16:16 Uhr
hallo

ich mach meine fortschrittsanzeigen so:

Writeprogress -activity "Name" -status "% Fertig" -percentcomplete $1

versuchs mal ;)
Bitte warten ..
Mitglied: colinardo
13.06.2014, aktualisiert 14.06.2014
Hallo mqlman,
in Powershell kann man den Output einer Konsolenanwendung mit der folgenden Methode kontinuierlich abfragen:
(In Zeile 2 das Programm eintragen und in Zeile 3 die Parameter)
01.
$pinfo = New-Object System.Diagnostics.ProcessStartInfo 
02.
$pinfo.FileName = "ping.exe" 
03.
$pinfo.Arguments = "localhost -t" 
04.
$pinfo.UseShellExecute = $false 
05.
$pinfo.CreateNoWindow = $true 
06.
$pinfo.RedirectStandardOutput = $true 
07.
$pinfo.RedirectStandardError = $true 
08.
 
09.
$process = New-Object System.Diagnostics.Process 
10.
$process.StartInfo = $pinfo 
11.
$process.Start() | out-null 
12.
 
13.
while(!$process.HasExited){ 
14.
    [int]$percent = ([regex]"[\d\.]+").Match($process.StandardOutput.ReadLine()).Value 
15.
    Write-Progress -Activity "Programm läuft..." -CurrentOperation "$percent% abgeschlossen" -Status "Bitte warten." -PercentComplete $percent 
16.
    sleep(1) 
17.
}
In der Schleife die so lange läuft bis das Programm beendet wurde, wird dann der Raw-Output im StdOut des Programms gecaptured und über ein Regex geleitet was die Prozentzahl extrahiert. Diese kann man dann nach Wunsch weiterverarbeiten (im Beispiel wird eine Powershell-Progressbar angezeigt). Alternativ kömmte man das ganze auch mit einer WinForms-Oberfläche kombinieren wie ich es bereits hier mit einer Progressbar gezeigt habe: http://www.administrator.de/forum/powershell-gui-bleibt-w%C3%A4hrend-ei ...

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Hashtable to Übersichtliche Darstellung
gelöst Frage von MarabuntaBatch & Shell2 Kommentare

Ich frage Remote diverse Rechner ab und speichere das Ergebnis aller Rechner in $LoggedOn, die Variable liefert allerdings jeder ...

Batch & Shell
Batch und Powershell
gelöst Frage von michi-ffmBatch & Shell2 Kommentare

Hallo Zusammen, wie bekomme ich diesen Code in einer Batch datei zum laufen? Leider sind meine Fachkenntnisse in diesem ...

Batch & Shell
Batch Skript als Powershell Skript
gelöst Frage von Dpole86Batch & Shell23 Kommentare

Hallo Zusammen. Ich dachte eigentlich das die Shell auch die Batch Commands versteht. Leider ist das aber nicht der ...

Batch & Shell
WENN-DANN für eine bestehende BATCH Datei oder Powershell
gelöst Frage von Komoran12Batch & Shell5 Kommentare

Hallo, ich brauche mal wieder Eure Hilfe, ich komme irgendwie nicht weiter, vielleicht kann mir jemand von Euch helfen: ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 2 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...