2016-05-25 14 views
0

誰かが私に次の問題で支援を提供してくれることを願っていましたか?私はいくつかの行のデータを持つテキストファイルを持っています。私がしようとしているのは、 "Deactivate:yes"を含むすべての行を削除するスクリプトを実行することです。これまで私はこれまで働いていましたが、この行の上の行も削除したいと思いますか? うまくいけばそれは理にかなっています。おかげバッチファイルを使用して特定の行と前の行をテキストファイルから削除しますか?

答えて

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 

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

すべてのヘルプは高く評価されて - :これまでのところ、私は次のようしている行を削除するには

関連する問題