[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 怎样用批处理修改或删除文本文件中指定的内容?

有一个软件会修改C:\WINDOWS\win.ini文件,卸载后这些内容并不被删除。
比如下面的两行:

[aspeeder]
count=?

?是不确定的,是0到50之间任意数
要求删除上面两行,或改为
[aspeeder]
count=1

删除:
  1. @echo off
  2. sed -i ":nt; $!{N; s/\[aspeeder\]\ncount=[1-50]//; tnt}" C:\WINDOWS\win.ini
复制代码
第三方命令行工具sed.exe下载地址:
http://bbs.bathome.net/thread-1114-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

删除:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set SrcFile=C:\WINDOWS\win.ini
  4. set DstRow=[aspeeder]
  5. set NextRow=
  6. set flag=0
  7. >C:\WINDOWS\win_tmp.ini echo ; for 16-bit app support
  8. (for /f "usebackq tokens=*" %%a in ("%SrcFile%") do (
  9.   if !flag! equ 0 (
  10.     if "%%a" neq "%DstRow%" (
  11.       echo.%%a
  12.     )
  13.   )
  14.   if "%%a" equ "%DstRow%" (
  15.     set flag=1
  16.   ) else (
  17.     set flag=0
  18.   )
  19. ))>>C:\WINDOWS\win_tmp.ini
  20. move /y C:\WINDOWS\win_tmp.ini C:\WINDOWS\win.ini
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

修改:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set SrcFile=C:\WINDOWS\win.ini
  4. set DstRow=[aspeeder]
  5. set flag=0
  6. >C:\WINDOWS\win_tmp.ini echo ; for 16-bit app support
  7. (for /f "usebackq tokens=*" %%a in ("%SrcFile%") do (
  8.   if !flag! equ 0 (
  9.     echo.%%a
  10.   ) else (
  11.     echo count=1
  12.   )
  13.   if "%%a" equ "%DstRow%" (
  14.     set flag=1
  15.   ) else (
  16.     set flag=0
  17.   )
  18. ))>>C:\WINDOWS\win_tmp.ini
  19. move /y C:\WINDOWS\win_tmp.ini C:\WINDOWS\win.ini
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

怎样删除

[aspeeder]
count=?

TOP

未测试。。。
:
  1. @echo off
  2. >tem echo [aspeeder]
  3. >>tem echo count=1
  4. for /f "delims=" %%a in (c:\windows\win.ini) do >>tem echo %%a
  5. move /y tem c:\windows\win.ini
复制代码
技术问题请到论坛发帖求助!

TOP

返回列表