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

[文本处理] [已解决]批处理如何在win7 x64下更改指定行的内容?

本帖最后由 zhanghdong 于 2011-4-4 19:05 编辑

本来想用sed实现此功能,但是发现sed在win7 x64下无法运行,白发贴提问了,谢谢zm900612在上一贴的回答了。
特此再提问一下,如何在win7 x64位系统下用自带的命令或者类似sed功能的其它软件实现此批处理。
  1. <?xml version="1.0" encoding="UTF-16"?>
  2. <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  3.   <RegistrationInfo>
  4.     <Source>$(@%systemroot%\system32\defragsvc.dll,-800)</Source>
  5.     <Author>$(@%systemroot%\system32\defragsvc.dll,-801)</Author>
  6.     <Description>$(@%systemroot%\system32\defragsvc.dll,-802)</Description>
  7.     <URI>Microsoft\Windows\Defrag\ScheduledDefrag</URI>
  8.   </RegistrationInfo>
  9.   <Triggers>
  10.     <CalendarTrigger id="DefragWeeklyTrigger">
  11.       <StartBoundary>2011-04-04T01:00:00</StartBoundary>
  12.       <Enabled>true</Enabled>
  13.       <ScheduleByWeek>
  14.       <AllowStartOnDemand>true</AllowStartOnDemand>
  15.       <Enabled>true</Enabled>
  16.       <Hidden>false</Hidden>
复制代码
  1. 在不改动15行的情况下把12行的代码
  2. <Enabled>true</Enabled>
  3. 改为
  4. <Enabled>false</Enabled>
复制代码
  1. 在不改动12行的情况下把15行的代码
  2. <Enabled>true</Enabled>
  3. 改为
  4. <Enabled>false</Enabled>
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 zm900612 于 2011-4-4 14:49 编辑
  1. @echo off
  2. for /f "tokens=1* delims=:^" %%a in ('findstr /n .* test') do (
  3. if %%a==12 (
  4. for /f "tokens=1-3* delims=^<^>" %%c in ("%%b") do echo %%c^<%%d^>false^<%%f
  5. ) else echo %%b
  6. )
  7. pause
复制代码

TOP

@echo off
for /f "tokens=1* delims=:^" %%a in ('findstr /n .* test') do (
if %%a==12 (
for /f "tokens=1-3* delims=^" %%c in ("%%b") do echo %%c^false^
zm900612 发表于 2011-4-4 14:47


大侠好厉害。。代码测试有效,如何输出更改文件呢??

TOP

  1. @echo off
  2. (for /f "tokens=1* delims=:^" %%a in ('findstr /n .* test') do (
  3. if %%a==12 (
  4. for /f "tokens=1-3* delims=^<^>" %%c in ("%%b") do echo %%c^<%%d^>false^<%%f
  5. ) else echo %%b
  6. ))>tmp
  7. move tmp test
  8. pause
复制代码
1

评分人数

TOP

3# zhanghdong


以后提问的时候最好能把自己的系统环境、问题背景等都说清楚
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

@echo off
(for /f "tokens=1* delims=:^" %%a in ('findstr /n .* test') do (
if %%a==12 (
for /f "tokens=1-3* delims=^" %%c in ("%%b") do echo %%c^false^tmp
move tmp test
pause
zm900612 发表于 2011-4-4 16:48


十分感谢。学习了。。

TOP

返回列表