2016-05-25 13 views
0

Ich hatte gehofft, jemand könnte mir bei der folgenden Ausgabe bitte Hilfe anbieten? Ich habe eine Textdatei, die einige Datenzeilen enthält, was ich versuche, ein Skript auszuführen, das alle Zeilen löscht, die "Deaktivieren: ja" enthalten. Das habe ich soweit, aber ich möchte auch die Zeile über dieser Zeile löschen? Hoffentlich macht das Sinn. Bisher entfernen Sie die Zeile ich folgendes haben: -Löschen bestimmte und vorherige Zeile aus Textdatei mit Batch-Datei?

for %%t in (E:\test\test.txt) do (
    ren "%%~ft" "%%~nxt.txt" 
    findstr /v /r /c:"^[ Deactivate:    yes]*$" "%%~ft.txt" > "%%~ft" 
) 

Jede Hilfe sehr geschätzt wird, dank

Antwort

0
@echo off 
setlocal EnableDelayedExpansion 
for /f "tokens=*" %%A in (test.txt) do (
    set "_line=%%A" 
    rem *** Test if current line contains "Deactivate:" substring 
    if "!_line!"=="!_line:Deactivate:=!" (
     rem *** if does not contain, output previous line, and save current line 
     if defined _prev echo !_prev! 
     set "_prev=!_line!" 
    ) else (
     rem *** if contain, skip previous and current lines 
     set "_prev=" 
    ) 
) 
if defined _prev echo %_prev% 
endlocal 
Verwandte Themen