Batch

批處理文件,逐行刪除

  • December 10, 2012

我有這個:set myvar = ^J | FIND /N /I "texttolookfor" %WINDIR%\system32\drivers\etc\hosts 現在我有了它對文本進行罰款的行

如何從文件中刪除這些行?

我知道我可以越界FOR但刪除部分對我來說仍然很棘手

我讀過findstr,它應該更好,但也找不到任何可以刪除的東西

現在我讀到了

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > newfile

它將文件保存到沒有找到字元串的新文件中……但添加

“——————–%WINDIR%\system32\drivers\etc\hosts”

一開始但當我嘗試

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > %WINDIR%\system32\drivers\etc\hosts

這沒用…

你的命令:

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts > newfile

添加------------------%WINDIR%\system32\drivers\etc\hosts到文件頂部,因為這是FIND. 在沒有重定向的情況下嘗試一下,看看。

FIND /V "texttolookfor" %WINDIR%\system32\drivers\etc\hosts

---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
...

TYPE可用於 cat 文件,通過 FIND重定向其輸出,並且不應顯示文件/路徑:

TYPE %WINDIR%\system32\drivers\etc\hosts | FIND /V "texttolookfor"

當然,這也可以重定向到一個新文件:

TYPE %WINDIR%\system32\drivers\etc\hosts | FIND /V "texttolookfor" > newfile

引用自:https://serverfault.com/questions/456850