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

[文本处理] 批处理如何修改带空行的文本文件中内容,该行中存在引号空格?

急等解决方案

有一个文件prefs.js的内容是这样的

  Quote:
# Mozilla User Preferences

/* Do not edit this file.
*
* If you make changes
*
* To make a manual change to preferences, you can visit the URL about:config

*/

user_pref("capability.principal.codebase.p0.granted", "UniversalXPConnect");
user_pref("capability.principal.codebase.p0.id", "http://www.crsky.com");
user_pref("capability.principal.codebase.p0.subjectName", "");
user_pref("capability.principal.codebase.p1.granted", "UniversalXPConnect");
user_pref("capability.principal.codebase.p1.id", "http://www.wmzhe.com");
user_pref("capability.principal.codebase.p1.subjectName", "");
user_pref("cleanhide.settings.first-time", false);
user_pref("cleanhide.settings.last-version", "1.09");
user_pref("comicview.mplayer", "D:\\Program Files\\mplayer\\mplayer.exe");
user_pref("comicview.totem", "");
user_pref("compact.menu.itemlist", "file-menu,tools-menu,edit-menu,view-menu,history-menu,helpMenu");
user_pref("compact.menu.lastVersion", "4.2.0");
user_pref("compact.menu.toolbarCollapsed", true);
user_pref("config.trim_on_minimize", true);
……

我想通过批处理 判断其中 为user_pref("comicview.mplayer", "");的行,然后将该行修改为user_pref("comicview.mplayer", "D:\\ProgramFiles\\mplayer\\mplayer.exe");  文件只改掉这个其余的不便


看了一些论坛上讲解的 但是还不能解决我的问题 ,我的里面 涉及 空行,要保留(我的代码输出的是 “ECHO 处于关闭状态。”)

我的判断语句 怎么写都不对,希望有好心人帮帮忙,并给个解释,让我好好学习一下,谢谢了!

我的脚步只能输出 但是还是 空行问题依旧
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=* delims=" %%a in (prefs.js) do (
  3. set "var=%%a"
  4. if !var!.==. echo.>>tmp.txt
  5. if not !var!.==. echo !var!>>tmp.txt
  6. )
  7. pause
复制代码

因为for默认是忽略空行的,要想保留空行,就要用到findstr /n:
  1. @echo off
  2. cd.>temp.txt
  3. for /f "tokens=1* delims=:" %%a in ('findstr /n .* prefs.js') do (
  4.      if "%%b" equ "user_pref("comicview.mplayer", "");" (
  5.         echo user_pref^("comicview.mplayer", "D:\\ProgramFiles\\mplayer\\mplayer.exe"^);  >>temp.txt
  6.         ) else (
  7.         echo.%%b>>temp.txt
  8.      )
  9. )
  10. start temp.txt
复制代码

[ 本帖最后由 batman 于 2009-11-7 08:36 编辑 ]
***共同提高***

TOP

原帖由 batman 于 2009-11-7 08:25 发表
因为for默认是忽略空行的,要想保留空行,就要用到findstr /n:
@echo off
cd.>temp.txt
for /f "tokens=1* delims=:" %%a in ('findstr /n .* prefs.js') do (
     if "%%b" equ "user_pref("comicview.mplayer ...

赞,真的可行,我的好好学习一下findstr 非常不熟悉啊!
谢谢了!

TOP

返回列表