中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 10:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何修改一个文件中指定行的内容? 查看 899 回复 5
楼 主 [求助]如何修改一个文件中指定行的内容? 发表于 2008-01-23 14:08 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 6
注册 2007-12-20 13:50
18年会员
UID 106234
性别 男
状态 离线
修改D:\startinfo.txt文件中第2行,改为当前时间,保留其他行的信息不变。

请问如何通过批处理实现?谢谢!!!
2 发表于 2008-01-23 15:10 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线

@echo off
set SrcFile=C:\test\a.txt
set DstFile=C:\test\b.txt
set row=0
>"%DstFile%" type nul
setlocal enabledelayedexpansion
for /f "tokens=1* delims=" %%a in ('findstr .* "%SrcFile%"') do (
set /a row+=1
if !row! equ 2 (
>>"%DstFile%" echo %time%
) else (
>>"%DstFile%" echo %%a
)
)
3 发表于 2008-01-23 16:51 ·  中国 吉林 吉林市 联通
初级用户
积分 68
发帖 32
注册 2007-12-09 17:16
18年会员
UID 105152
性别 男
状态 离线
楼上的朋友你好,上面用这句for /f "tokens=1* delims=" %%a in ('findstr .* "%SrcFile%"') 而不是用for /f "tokens=1* delims=" %%a in (C:\test\a.txt)这是为什么
4 发表于 2008-01-25 16:48 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 6
注册 2007-12-20 13:50
18年会员
UID 106234
性别 男
状态 离线
Originally posted by HAT at 2008-1-23 03:10 PM:

@echo off
set SrcFile=C:\test\a.txt
set DstFile=C:\test\b.txt
set row=0
>"%DstFile%" type nul
setlocal enabledelayedexpansion
for /f "tokens=1* delims=" %%a in ('findstr .* "%SrcFile%"') do (
set /a row+=1
if !row! equ 2 (
>>"%DstFile%" echo %time%
) else (
>>"%DstFile%" echo %%a
)
)


如果行号通过变量设置,怎么判断?
@set _TIME_LINE=2
if !row! equ %_TIME_LINE% echo OK.

可是怎么都是不能成功。

请教!
5 发表于 2008-01-25 18:43 ·  中国 台湾 新竹市 中华电信
新手上路
积分 14
发帖 5
注册 2007-03-22 23:19
19年会员
UID 82589
性别 男
状态 离线
您看看降可不可以 :)
--
@echo off
set _TIME_LINE=2
@echo set SrcFile=C:\test\a.txt >> run.bat
@echo set DstFile=C:\test\b.txt >> run.bat
@echo set row=0 >> run.bat
@echo >"%DstFile%" type nul >> run.bat
@echo setlocal enabledelayedexpansion >> run.bat
@echo for /f "tokens=1* delims=" %%a in ('findstr .* "%SrcFile%"') do ( >> run.bat
@echo set /a row+=1 >> run.bat
@echo if !row! equ %_TIME_LINE% ( >> run.bat
@echo >>"%DstFile%" echo %time% >> run.bat
@echo ) else ( >> run.bat
@echo >>"%DstFile%" echo %%a >> run.bat
@echo ) >> run.bat
@echo ) >> run.bat

call run.bat
del run.bat

[ Last edited by zaa on 2008-1-25 at 06:47 PM ]
6 发表于 2008-01-25 19:29 ·  中国 福建 厦门 电信
新手上路
积分 18
发帖 6
注册 2007-12-20 13:50
18年会员
UID 106234
性别 男
状态 离线
已经搞定.谢谢!

[ Last edited by zsldownload on 2008-1-25 at 07:36 PM ]
论坛跳转: