2016-07-15 10 views
3

Ich habe eine Textdatei, die unter anderem Zeilen enthält, die mit 'Passwort:' beginnen. Ich möchte einen Befehlszeilenbefehl ausführen (wenn möglich), um die .txt-Datei zu analysieren, um alle Begriffe zu extrahieren, die auf 'Passwort:' folgen, und sie in eine neue Textdatei einzufügen, die nur die Passwörter auflistet. Die Anzahl der Leerzeichen zwischen dem Wort "Passwort" und dem tatsächlichen Passwort variiert in den Einträgen.Windows-Befehlszeile zum Analysieren von Informationen aus einer Textdatei

Ich habe bisher verwendet:

FINDSTR /L "Password: " input_file.txt > output_file.txt 

Das funktioniert gut, aber extrahiert die ‚Passwort:‘ Begriff auch. Von den Recherchen, die ich ausgeführt habe, glaube ich nicht, dass die Befehlszeile eine integrierte Funktion zum Entfernen von Zeichenfolgen aus .txt-Dateien enthält, da ich denke, dass der obige Befehl gefolgt von etwas Ähnlichem wie folgt ausgeführt wird:

Offensichtlich habe ich die "DELSTR" erfunden, aber wie gesagt, ich brauche etwas, um die Zeichenfolge "Passwort:" aus jeder Zeile zu entfernen.

Irgendwelche Vorschläge? Danke

+1

1) Schreiben von Code 2) Code ausführen 3) Debug-Code. Wir helfen mit # 3, wir machen nicht # 1-2. Das ist dein Job. –

+0

@MarcB Entschuldigung. Weitere Informationen hinzugefügt – thefragileomen

+0

Ja, es gibt String-Funktionen in cmd.exe integriert: http://superuser.com/questions/228794/how-to-extract-part-of-a-string-in-windows-batch-file –

Antwort

3

tatsächlich gibt es einige (sehr begrenzte) eingebaute Funktionen für die String-Manipulation. Details siehe set /?.
Keine Notwendigkeit, mit temporären Dateien zu arbeiten, können Sie die Zeichenfolge direkt in eine Variable analysieren:

(Code bearbeitet alle Passwörter zu drucken, wenn es mehr als eine gibt)

setlocal enabledelayedexpansion 
for /f "delims=" %%a in ('findstr /b /c:"Password: " input_file.txt') do (
    set pwd=%%a 
    set "pwd=!pwd:Password: =!" 
    echo !pwd!>>final_file.txt 
) 
+0

vielen dank dafür. Es scheint nur den letzten Passworteintrag zu schreiben, der auf die Datei final_file.txt und nicht auf alle Passwörter trifft. Irgendwelche Vorschläge? – thefragileomen

+0

einfach: nur die Schleife erweitern. Siehe meine Bearbeitung. – Stephan

+0

Perfekt. Vielen Dank – thefragileomen