2016-04-03 9 views
0

Ich brauche eine Zeichenfolge in einer input.txt Datei mitwie Textstring mit variabler Länge zum Suchen und Ersetzen mit einem festen String Text

Current Playback Device ID=2A99FA92-E624-4650-A032-DA719D9B03D5 

und ersetzen Sie es zu finden:

Current Playback Device ID=721D0FD1-DD46-11d0-8AAC-00A0C91D299F 

aber bedenken, dass der Ersatz muss auch in dem Fall sein, dass der ursprüngliche String - in diesem Fall Current Playback Device ID=2A99FA92-E624-4650-A032-DA719D9B03D5 - verschiedene Chatter enthält

Für Exampl e

Current Playback Device ID=AAAAAAAA-E624-AAAA-A032-AAAAAAAAAAAA 

oder

Current Playback Device ID=AAA2AAAAAAAAAAA 

der String "Current Playback Device ID=" ist festgelegt, sondern der Wert nach der "=" kann

In all dem Fall unterschiedlich sein das Endergebnis sein, um

Current Playback Device ID=721D0FD1-DD46-11d0-8AAC-00A0C91D299F 

Wie kann ich tun?

+0

werden alle diese'Aktueller Geräte-ID-Wiedergabe = 'am Anfang einer Zeile und die Zeile enthält nur'Aktueller Device ID Wiedergabe = ... was auch immer ... '? – Magoo

+2

Was hast du bisher selbst versucht? bitte Ihren Code teilen, indem sie die Frage der Bearbeitung und beschreiben genau das, was Sie haben Probleme mit ... – aschipfl

+0

ja ja was auch immer, und mit einem Leerzeichen enden „“ –

Antwort

0
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
SET "destdir=U:\destdir" 
SET "filename1=%sourcedir%\q36387900.txt" 
SET "outfile=%destdir%\outfile.txt" 
SET "replacementstring=721D0FD1-DD46-11d0-8AAC-00A0C91D299F" 
(
FOR /f "usebackqtokens=1*delims=" %%a IN ("%filename1%") DO (
FOR /f "delims==" %%x IN ("%%~a") DO (
    IF "%%x"=="Current Playback Device ID" (
    ECHO(%%x=%replacementstring% 
) ELSE (ECHO(%%a 
) 
) 
) 
)>"%outfile%" 

GOTO :EOF 

Sie müssten die Einstellungen von sourcedir und destdir ändern, um Ihre Umstände anzupassen.

verwendete ich eine Datei mit dem Namen q36387900.txt einige Dummy-Daten für meine Tests enthält.

Erzeugt die Datei als% definiert outfile%

Werden leere Zeilen entfernen.

Lesen Sie jede Zeile. Tokenise der Zeile vor =-%%x beliebige Zeichenfolge lesen und zuordnen. Wenn diese Zeichenkette mit der Zielzeichenfolge übereinstimmt, schreibe die Zeichenkette "starget + replacement" aus; Ansonsten regurgitate einfach die Zeile lesen.

Verwandte Themen