原帖由 Batcher 于 2010-9-29 10:54 发表
正确的方法是自动判断127.0.0.1在第几行,而不是写死了它在第18行。
已经改好了,帮忙看看,有没有更简洁的写法?- @echo off
- for /f "tokens=1* delims=:" %%a in ('findstr /n "127.0.0.1" "C:\WINDOWS\system32\drivers\etc\hosts"') do set a=%%a
- for /f "tokens=1* delims=:" %%a in ('findstr /n .* "C:\WINDOWS\system32\drivers\etc\hosts"') do if %%a leq %a% echo,%%b>>c:\bak.txt
- for /f "skip=%a% tokens=* delims=#" %%s in (C:\WINDOWS\system32\drivers\etc\hosts) do (
- echo %%s>>c:\bak.txt
- )
- del C:\WINDOWS\system32\drivers\etc\hosts
- copy c:\bak.txt C:\WINDOWS\system32\drivers\etc\hosts
- del c:\bak.txt
复制代码
|