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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Batch- Ausgabe in .txt fehlerhaft

Mitglied: Florence

Florence (Level 1) - Jetzt verbinden

09.07.2020, aktualisiert 01:30 Uhr, 348 Aufrufe, 7 Kommentare

Hallo!
Nachdem ich nun schon einige Zeit stiller Mitleser bin und sehr von dem geballten Sachverstand hier profitiert habe, eine Frage, bei der ich nicht mehr weiterkomme und zu der ich hoffe, dass Ihr Tipps habt.

Ich habe ein Makro in VBA geschrieben, das Werte aus diversen Excel-Files ausliest und eine .bat aufruft, der diese Werte übergeben werden und die damit Berechnungen (u.a. Hashwerte) durchführt. Der .bat Aufruf erfolgt mehrfach über eine Schleife. Mit nachfolgendem Code überwache ich, dass die Schleife in VBA, die den mehrfachen Aufruf durchführt, erst weiterläuft, wenn die .bat abgeschlossen ist.

Die Ergebnisse der .bat werden in eine .txt geschrieben. Und hier kommt das Problem: Die Ausgabe in der .txt erfolgt immer wieder fehlerhaft und bei jedem Durchlauf anders fehlerhaft. Es wirkt also, als ob die .bat "stolpern" würde, und die ein oder andere Zeile nicht in die .txt schreiben würde obwohl das echo aufgerufen wird. Auf meinem PC funktioniert es o.W., rufe ich das Makro jedoch über einen remote-Zugriff (und eine langsamere Verbindung) auf, kommt es immer wieder zu diesen Problemen mit der Ausgabe.

Der Code für die Ausgabe im .txt sieht so aus:

Dieser Kopf wird beim ersten Aufruf geschrieben:
Dann wird bei den weiteren Aufrufen immer eine Ausgabe für die jeweiligen Berechnungen (nach dem gleichen Muster, Zeile für Zeile wird in die .txt geschrieben) angefügt.

Lasse ich das Programm mehrfach laufen, ist die Ausgabe manchmal korrekt und manchmal falsch, immer wieder unterschiedlich (also fehlt z.B. einmal die Zeile 2 "lieber Herr xxx", dann fehlt wieder die Zeile "Datum, Unterschrift" etc.).

Ich nehme an, nachdem der Fehler nur in schlechter Verbindung auftaucht, dass es schlichtweg ein Verbindungsproblem ist. Gibt es eine Möglichkeit, den Text vllt. nur mit einem echo in die Ausgabedatei zu schreiben und anderweitig zu formatieren, dass Zeilenumbrüche etc. angezeigt werden statt Zeile für Zeile vorzugehen, wie ich das bisher mache?

Oder aber bin ich auf dem Holzweg und der Fehler steckt woanders?

Ich bin wirklich für jede Hilfestellung dankbar, weil ich langsam am Ende mit meinem Latein bin und mich wundere, warum ein Programm auf dem einen Rechner einwandfrei funktioniert und auf dem anderen nicht?

Ich danke Euch bereits ganz herzlich im Voraus!

Viele liebe Grüße

Florence
Mitglied: Pjordorf
09.07.2020 um 02:10 Uhr
Hallo,

Zitat von Florence:
Auf meinem PC funktioniert es o.W., rufe ich das Makro jedoch über einen remote-Zugriff (und eine langsamere Verbindung) auf, kommt es immer wieder zu diesen Problemen mit der Ausgabe.
W0 liegt denn diese TXT Datei deine %ausgabedatei% aus sicht vom RemoteClient Lokal, Server, NAS, VPN? Lass doch auf den RemoteClient schreiben, ist es dann besser?

Oder aber bin ich auf dem Holzweg und der Fehler steckt woanders?
Da wir hier nur ein Bruchstück sehen ist es schwer zu sagen oder einfach nur geraten.

Ich bin wirklich für jede Hilfestellung dankbar, weil ich langsam am Ende mit meinem Latein bin und mich wundere, warum ein Programm auf dem einen Rechner einwandfrei funktioniert und auf dem anderen nicht?
Meistens weil nicht jeder Rechner gleich ist.

Gruß,
Peter
Bitte warten ..
Mitglied: eisbein
LÖSUNG 09.07.2020 um 07:38 Uhr
Hallo,

Auf meinem PC funktioniert es o.W., rufe ich das Makro jedoch über einen remote-Zugriff (und eine langsamere Verbindung) auf, kommt es immer wieder zu diesen Problemen mit der Ausgabe.

Versuche mal deinen Text, den du mit echo ausgibst, zuerst vollständig als Variable zu generieren und dann mit nur einer echo-Anweisung auszugeben. Dadurch hast du nur 1 Schreibzugriff und langsame Verbindungen sollten keine Probleme machen.

Gruß
eisbein
Bitte warten ..
Mitglied: Fennek11
09.07.2020 um 08:20 Uhr
Hallo,

warum diese Konstruktion mit Shell? VBA kann direkt Text-Dateien schreiben.

mfg
Bitte warten ..
Mitglied: Florence
09.07.2020 um 09:24 Uhr
Hallo,

zunächst einmal ganz vielen lieben Dank für Eure Tipps und Hilfe! Ihr seid echt großartig

Zitat von Fennek11:

Hallo,

warum diese Konstruktion mit Shell? VBA kann direkt Text-Dateien schreiben.

mfg

Das ist leider den Vorgaben geschuldet, für die ich dieses Makro geschrieben habe. Es gibt einen Projektvertrag in dem drinsteht, dass Certutil für die Hashwertberechnung genutzt werden soll.

Versuche mal deinen Text, den du mit echo
ausgibst, zuerst vollständig als Variable zu
generieren und dann mit nur einer echo-
Anweisung auszugeben. Dadurch hast du nur
1 Schreibzugriff und langsame Verbindungen
sollten keine Probleme machen.

Genau so etwas schwebt mir vor, ich gestehe aber, dass ich an dem Problem Zeilenumbruch/Absätze scheitere. Dh. Wie bekomme ich es hin, dass ich nicht einen langen Text übergebe, sondern schön mit Absätzen? Ich bin da noch nicht so versiert mir den .bats, weiß nur, dass die Formatierungsmöglichkeiten sehr begrenzt sind und mit dem Einbauen von \n \r In den String bin ich nicht wirklich weitergekommen (wird einfach als Text ausgegeben).

Ich versuche nachher noch den ganzen Code zu posten, schreibe nur gerade vom Handy. Beide Dateien liegen remote im gleichen Verzeichnis, was aber nicht immer so war - ich habe auch den Eindruck, dass „gleiches Verzeichnis“ das Problem verringert.

Heute funktioniert es übrigens wieder stabil 😆 aber ich würde es eben auch gerne stabil haben wenn das System laggt, damit das Programm wirklich bequem für den (nicht-IT-affinen) Anwender ist.

Viele liebe Grüße

Florence
Bitte warten ..
Mitglied: eisbein
09.07.2020, aktualisiert um 11:51 Uhr
Hallo,

Genau so etwas schwebt mir vor, ich gestehe aber, dass ich an dem Problem Zeilenumbruch/Absätze scheitere. Dh. Wie bekomme ich es hin, dass ich nicht einen langen Text übergebe, sondern schön mit Absätzen? Ich bin da noch nicht so versiert mir den .bats, weiß nur, dass die Formatierungsmöglichkeiten sehr begrenzt sind und mit dem Einbauen von \n \r In den String bin ich nicht wirklich weitergekommen (wird einfach als Text ausgegeben).

Genau das geht eben mit echo nicht ....
Powershell ist keine Alternative?

Ich habe hier einen Thread gefunden, hier klappt es bei der Display-Ausgabe. Vielleicht hilft dir der Ansatz:
https://administrator.de/forum/batch-variable-zeilenumbruch-56198.html

Edit: basiert aber wierder auf mehrfachen echos...

Gruß
eisbein
Bitte warten ..
Mitglied: 144705
LÖSUNG 09.07.2020, aktualisiert um 12:45 Uhr
So geht das auch
Damit wir nur einmalig ein Schreibvorgang vorgenommen.

Aber wie schon vorgeschlagen wurde, einfach alles in die Powershell tüten, dann ist auch certutil für Hash-Berechnung überflüssig, da alle NET Klassen dafür zur Verfügung stehen ...
Bitte warten ..
Mitglied: Florence
09.07.2020 um 23:28 Uhr
Zitat von 144705:

So geht das auch
Damit wir nur einmalig ein Schreibvorgang vorgenommen.

Aber wie schon vorgeschlagen wurde, einfach alles in die Powershell tüten, dann ist auch certutil für Hash-Berechnung überflüssig, da alle NET Klassen dafür zur Verfügung stehen ...


Du bist großartig, vielen Dank!! Da sieht man mal wieder, wo man hinkommt, wenn man sich nur schnell in .bat einliest Habe die batch so umgebaut und siehe da, sie springt wie ein junges Reh. Habe es gerade eben mit der langsamsten remote-Verbindung, die ich hinbekommen kann getestet und es läuft jetzt völlig unproblematisch.

Fazit: Es dürften tatsächlich fehlgehende Schreibzugriffe gewesen sein und jetzt läuft es alles schön stabil und die Bosses sind happy

PowerShell geht wie gesagt nicht wegen der recht detaillierten Ausführungsvorgaben in unserem ProjektVT (die Sinnhaftigkeit des Ganzen steht auf einem anderen Blatt... ).



Ich habe hier einen Thread gefunden, hier klappt es bei der Display-Ausgabe. Vielleicht hilft dir der Ansatz:
https://administrator.de/forum/batch-variable-zeilenumbruch-56198.html

Das habe ich (in einer etwas sehr viel einfacheren Variante - Code s.u., habe das jetzt aber aus dem Gedächtnis aufgeschrieben, d.h. kann sein dass iwo ein Fehler drin steckt) auch probiert - funktioniert auch wunderbar in der Konsolenausgabe per echo, leider aber nicht, wenn es in eine .txt ausgegeben wird.

ergibt in der Konsole:
Erste Zeile Text
Zweite Zeile Text

Mein Problem dürfte somit gelöst sein, vielen lieben Dank Euch allen!

Florence
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch mittels Aufgabenplanung auslösen - fehlerhaft

gelöst Frage von intaneBatch & Shell4 Kommentare

Hallo, wie der Titel schon verrät habe ich Probleme meine Batch Datei mittels Aufgabenplanung korrekt auszulösen. Nach dem Ausführen ...

Batch & Shell

Batch : TXT-Datei auslesen

gelöst Frage von Newplay123Batch & Shell20 Kommentare

Hallo, ich habe eine Textdatei mit dem Inhalt " "Test" ". Also die zweiten Anführungszeichen sind auch mit in ...

Batch & Shell

Batch - .csv to .txt

gelöst Frage von freshman2017Batch & Shell11 Kommentare

Hallo Ihr, ich habe da nochmal eine leichte kurze Frage, vielleicht hat da jemand ein Code für mich. Folgende ...

Batch & Shell

Batch - .txt Zeilen zusammenführen

Frage von freshman2017Batch & Shell3 Kommentare

Liebe Gemeinde, ich habe eine .txt Adressdatei, in der bis zu 10 Datensätze, wie im nachfolgenden Format, vorhanden sind: ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Liste ungeschützter Pulse-VPN-Server veröffentlicht

Information von Visucius vor 1 TagErkennung und -Abwehr

bzw. Der tiefe Blick in die Profi-Administratoren-Welt ;-)

Windows 10

Windows Defender verhindert Telemetrieblocking via hosts-Datei

Information von BirdyB vor 1 TagWindows 102 Kommentare

Für diejenigen, die keine Daten an MS senden wollten, war die hosts-Datei manchmal eine Option.

Monitoring

Unabhängiger Ansatz - IoT (frei von Cloud- oder Appzwang) - Hier mit Schaltsteckdosen

Anleitung von beidermachtvongreyscull vor 4 TagenMonitoring2 Kommentare

Tach Kollegen, ich erzähle Euch mal von meiner Ausgangslage und den/m Problem(chen) Ich benutze ein NAS zur Lagerung meiner ...

Microsoft
Microsoft Advanced Threat Protection for Linux
Information von Dani vor 6 TagenMicrosoft

Microsoft Defender Advanced Threat Protection (MD ATP) support for Linux with kernel version 3.10.0-327 or later, including the following ...

Heiß diskutierte Inhalte
Windows 10
Windows "Home" Version im Unternehmen legal?
gelöst Frage von BosnigelWindows 1027 Kommentare

Hallo, ich habe hier einen Kleinstunternehmer der überall sparen muss. Die Frage: Ist Windows 10 (also nicht Pro) für ...

Off Topic
Arbeitsangebot
gelöst Frage von CoffeeJunkieOff Topic26 Kommentare

Da meine Firma massiv Stellen abbaut, bin ich auf der Suche nach einem neuen Job Basis Fakten: Abschuß Fisi ...

Exchange Server
Exchange Emailadresse deaktivieren oder löschen
Frage von imebroExchange Server15 Kommentare

Hallo, wir arbeiten mit einem Windows Server 2016 und Exchange 2016. Ein Mitarbeiter ist im März 2020 ausgeschieden und ...

Server
Verbindung zum Linux Server nicht möglich
gelöst Frage von it-fraggleServer13 Kommentare

Hallo zusammen, habe gerade ein sonderbares Problem auf dessen Lösung ich gerade nicht komme. Wir haben hier seit einigen ...

Weniger Werbung?
Administrator Magazin
07 | 2020 In der Juli-Ausgabe beleuchtet das IT-Administrator Magazin den Themenschwerpunkt "Monitoring & Support". Darin zeigt die Redaktion unter anderem, wie Sie die Leistung von Terminalservern im Blick behalten und welche Neuerungen das Ticketsystem OTRS 8 mitbringt. Auch die Überwachung von USV-Anlagen darf nicht fehlen. In ...