标题: [文本处理] [已解决]批处理如何在win7 x64下更改指定行的内容? [打印本页]
作者: zhanghdong 时间: 2011-4-4 14:26 标题: [已解决]批处理如何在win7 x64下更改指定行的内容?
本帖最后由 zhanghdong 于 2011-4-4 19:05 编辑
本来想用sed实现此功能,但是发现sed在win7 x64下无法运行,白发贴提问了,谢谢zm900612在上一贴的回答了。
特此再提问一下,如何在win7 x64位系统下用自带的命令或者类似sed功能的其它软件实现此批处理。- <?xml version="1.0" encoding="UTF-16"?>
- <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
- <RegistrationInfo>
- <Source>$(@%systemroot%\system32\defragsvc.dll,-800)</Source>
- <Author>$(@%systemroot%\system32\defragsvc.dll,-801)</Author>
- <Description>$(@%systemroot%\system32\defragsvc.dll,-802)</Description>
- <URI>Microsoft\Windows\Defrag\ScheduledDefrag</URI>
- </RegistrationInfo>
- <Triggers>
- <CalendarTrigger id="DefragWeeklyTrigger">
- <StartBoundary>2011-04-04T01:00:00</StartBoundary>
- <Enabled>true</Enabled>
- <ScheduleByWeek>
- <AllowStartOnDemand>true</AllowStartOnDemand>
- <Enabled>true</Enabled>
- <Hidden>false</Hidden>
复制代码
- 在不改动15行的情况下把12行的代码
- <Enabled>true</Enabled>
- 改为
- <Enabled>false</Enabled>
复制代码
- 在不改动12行的情况下把15行的代码
- <Enabled>true</Enabled>
- 改为
- <Enabled>false</Enabled>
复制代码
作者: CrLf 时间: 2011-4-4 14:47
本帖最后由 zm900612 于 2011-4-4 14:49 编辑
- @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^<%%d^>false^<%%f
- ) else echo %%b
- )
- pause
复制代码
作者: zhanghdong 时间: 2011-4-4 15:00
@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
大侠好厉害。。代码测试有效,如何输出更改文件呢??
作者: CrLf 时间: 2011-4-4 16:48
- @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^<%%d^>false^<%%f
- ) else echo %%b
- ))>tmp
- move tmp test
- pause
复制代码
作者: Batcher 时间: 2011-4-4 18:10
3# zhanghdong
以后提问的时候最好能把自己的系统环境、问题背景等都说清楚
作者: zhanghdong 时间: 2011-4-4 19:06
@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
十分感谢。学习了。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |