Daten aus Textdatein per Kommandozeile extrahieren und anzeigen

Mitglied: ceng.de

ceng.de (Level 1) - Jetzt verbinden

01.09.2011, aktualisiert 09:32 Uhr, 3622 Aufrufe, 9 Kommentare

Hi,
nach meinem letzten Eintrag (Logdateien per Kommandozeile auswerten (For-If, Find etc.) - Wer kann noch DOS?) habe ich geglaubt, ich habe die Funktionsweise der FOR Schleife gerafft...

Vielleicht kann mir jemand sagen, was an meiner Schleife falsch ist.

Zur Erklärung:
Ein PC schreibt beim LOGIN in ein Verzeichnis eine Datei mit seinem Hostname. In der steht z.B. der Benutzername drinnen.

Die einzelnen Dateien schreibe ich mir in eine Datei (%temp%\rechner.txt und möchte sie Zeile für Zeile auswerten und je Rechnereintrag in der %temp%\rechner.txt eine Zeile in einer HTML Datei zufügen...

NUR... Ich kriegs nicht hin und verstehe auch nicht, warum?

Vielen Dank für Eure Ideen
Kommentar vom Moderator Biber am 01.09.2011 um 09:32:34 Uhr
Link korrigiert und Beitrg verschoben nach "Batch &Shell"
Mitglied: 60730
60730 (Level 5)
01.09.2011 um 09:48 Uhr
moin,

nur mal als allerersten Ansatz..

nimm das vermaledeite @ Echo off raus, solange du "testest"


und wenn du dich jetzt frägen tutest, wtf - schau dir deine Zeile 4 & 5 an....

Gruß
Bitte warten ..
Mitglied: ceng.de
01.09.2011 um 10:03 Uhr

und wenn du dich jetzt frägen tutest, wtf - schau dir deine Zeile 4 & 5 an....

Uuups... Der Wald und die Bäume... :-) face-smile

-> ändert aber nichts am nichtfunktionieren der For Schleife... leider...
Bitte warten ..
Mitglied: Skyemugen
01.09.2011 um 10:20 Uhr
Aloha,

gucke ich mir eventuell noch einmal an aber erst einmal als Effizienz-Tipp folgendes:
Bei deinem Echofluss reduziert das deutlich die Zugriffe auf die Datei (auf, schreiben, zu, auf, schreiben, zu ...)

Und es erspart den evtl. fehleranfälligen Anblick von
bei
fließt überflüssigerweise noch ein Leerzeichen mit ein, auch das wird mit einer Voranstellung verhindert

Desweiteren empfiehlt sich (gerade hier), die Subarbeitung innerhalb der Schleife(n) nachgestellt zu setzen (sprich: TAB), um die Funktionsansicht besser darzustellen.

Noch etwas
verstehe ich nicht, wenn du sowieso mit %%a weiterarbeitest, warum dann nicht auch im echo für die Datei?
genauso mit benutzername etc ... mit einem übersichtlicheren Aufbau der Struktur wäre das auch viel eindeutiger zu erkennen, zumal du teilweise schon im echo die Schleifenvariablen direkt einsetzt ...

Dann erspart man sich auch das von Biber genannte enabledelayedexpansion (was ich gerade bei HTML etc. sowieso vermeiden und lieber Unterprozesse ackern lassen würde)

greetz André
Bitte warten ..
Mitglied: Biber
01.09.2011 um 10:20 Uhr
Moin ceng.de,

eine "FOR...IN.. DO ( )" Anweisung ist für den CMD-Interpreter EINE auszuführende Zeile, auch wenn diese "Programmzeile sich in dem Schnipsel z.b. von Zeile 44 bis 74 zieht.
Bedeutet, dass alle dort verwendeten Variablen (z.B. %benutzername%) genau EINMAL aufgelöst werden - quasi "bei Betreten" der Zeile 44 (die in in Zeile 74 endet).

Wenn du Variablen innerhalb der FOR-Anweisung neu setzt und den neu gesetzten Wert verwenden willst, dann musst du
a) ganz oben aus "setlocal" ein "setlocal EnableDelayedExpansion" machen
b) die innerhalb der FOR-Anweisung neu gesetzten Variablen nach dem Setzen nicht als %benutzername%, sondern in der Schreibweise !benutzername! anfassen.

Eine Forumssuche nach "EnableDelayedExpansion" oder "verzögerter Variablenauflösung" könnte helfen.

Grüße
Biber
Bitte warten ..
Mitglied: 60730
60730 (Level 5)
01.09.2011 um 10:24 Uhr
Zitat von @ceng.de:
>
> und wenn du dich jetzt frägen tutest, wtf - schau dir deine Zeile 4 & 5 an....

Uuups... Der Wald und die Bäume... :-) face-smile

eben und wenn mir beim groben durchlesen schon in Zeile 1,4&5 sowas auffällt, dann fällt sich bei mir die Entscheidung, das ich den Rest der Bäume garnicht ansehen möchte.


nimm das vermaledeite @ Echo off raus, solange du "testest"


Oder erwartest du allen ernstes, einer von uns baut sich deine Struktur zusammen - wir sind doch keine Arschitekten
Bitte warten ..
Mitglied: ceng.de
01.09.2011 um 10:33 Uhr

das verstehe ich noch nicht, wie kann ich etwas in eine Datei umleiten, wenn der Umleitungsinhalt erst nach der Klammer kommt. -> Aber da das ehr Effizienzsteigerung ist, werde ich das mit meinen begrenzten Neuronenkapazitäten später versuchen zu verstehen.
Bitte warten ..
Mitglied: ceng.de
01.09.2011 um 10:42 Uhr
Wenn du variablen innerhalb der FOR-Anweisung neu setzt und den neu gesetzten Wert verwenden willst, dann musst du
a) ganz oben aus "setlocal" ein "setlocal EnableDelayedExpansion" machen
b) die innerhalb der FOR-Anweisung neu gesetzten Variablen nach dem Setzen nicht als %benutzername%, sondern in der Schreibweise
!benutzername! anfassen.

-> Nachdem ich die beiden Einträge gemacht habe (EnableDel... und !benutze...) kommen die richtigen Aussagen.

JETZT MUSS ICH NUR NOCH VERSTEHEN, WARUM DAS SO IST...

Aber zunächst einmal Danke für Eure Hilfe
Bitte warten ..
Mitglied: Skyemugen
01.09.2011 um 10:47 Uhr
Aloha,

>>%datei% echo Inhalt und echo Inhalt>>%datei% sind beide ein Kommando, auf einer Zeile, daher tun sie genau dasselbe, nur das ersteres keine Leerzeichenproblematik (wie schon oft vorgekommen) hervorruft.
Meinen Tipp könntest du also auch so ansehen:
Finde ich aber inzwischen bei längeren Blöcken (in Klammern natürlich, sonst wäre es kein Block mehr) unschön erst am Ende nachvollziehen zu können, wo es hingeschrieben wird. Von der Ansicht optimaler wäre wohl sowieso
greetz André
Bitte warten ..
Mitglied: Biber
01.09.2011 um 14:51 Uhr
Moin ceng.de

Zitat von @ceng.de:
-> Nachdem ich die beiden Einträge gemacht habe (EnableDel... und !benutze...) kommen die richtigen Aussagen.
Dann könntest du doch zumindest schon ein ganz, ganz blasses oikalyptusfarbenes Erledigt-Häkchen oben andeuten....

JETZT MUSS ICH NUR NOCH VERSTEHEN, WARUM DAS SO IST...

Eventuell mal Hilfe da suchen, wo sie die hinterhältigen RedmonderInnen gemeinerweise gut versteckt haben - in der Hilfe.
Grüße
Biber
Bitte warten ..
Heiß diskutierte Inhalte
Exchange Server
Exchange Zero Day Hack - Wie entfernen?
gelöst mtaiitVor 1 TagFrageExchange Server80 Kommentare

Hallo, bei mir hat es einige Kundenserver getroffen Weiß einer wie ich diese WebShells wieder loswerde? Das löschen der betroffenen .aspx Dateien wird wohl ...

Exchange Server
Wie grundsätzlich verfahren mit Exchange Zero-Day-Exploit?
StefanKittelVor 19 StundenFrageExchange Server14 Kommentare

Hallo, ich habe auf einem Server mit den Tool von Microsoft Zugriffsversuche am 26. und 27.02.21 gefunden. Das führt mich zu der Vermutung, dass ...

Exchange Server
Exchange-Hack (2021-03) war Angriff erfolgreich? Was dann?
FrM222Vor 7 StundenFrageExchange Server17 Kommentare

Hallo Zusammen, ich bin ganz neu hier im Forum, daher entschuldige ich mich schon mal im Voraus, falls ich beim Einstellen etwas falsch gemacht ...

E-Mail
Kann man mit SPF Mails für eine Domäne vollständig verbieten?
gelöst StefanKittelVor 1 TagFrageE-Mail17 Kommentare

Hallo, viele Firmen haben ja zusätzliche Domänen. Als Web- und oder Mail-weiterleitung. Es werden also niemals Emails damit gesendet werden. kann man mit einem ...

Ausbildung
Projektantrag abgelehnt (IHK)
StrowayerVor 8 StundenFrageAusbildung10 Kommentare

Guten Tag, mein Projektantrag für die IHK wurde leider abgelehnt mit der Begründung: "Bitte überarbeiten Sie Ihren Zeitplan. Die Projektdokumentation sollte nicht 25% der ...

Python
Könnt ihr bugs finden ?
adriaanVor 22 StundenAllgemeinPython10 Kommentare

Guten Tag liebe Forenmitglieder, Ich schreibe heute diesen Beitrag, weil ich einen Python Zähler entwickelt habe. Diesen würde ich gerne härten und entsprechend gerne ...

Off Topic
So funktioniert das Internet! - Danke, Maus
em-pieVor 1 TagInformationOff Topic2 Kommentare

Anlässlich des Geburtstages unserer orangenen Freundin: So funktioniert das Internet: Alles Gute, liebe Maus :-)

Netzwerke
Cisco IOS: grep?
gelöst PeterGygerVor 1 TagFrageNetzwerke11 Kommentare

Hallo Falls jemand die Antwort aus dem Ärmel schütteln kann , danke ich im Voraus. In einem Vortrag wurde die Cisco IOS (Catalyst / ...