Board logo

标题: [求助]如何修改一个文件中指定行的内容? [打印本页]

作者: zsldownload     时间: 2008-1-23 14:08    标题: [求助]如何修改一个文件中指定行的内容?

修改D:\startinfo.txt文件中第2行,改为当前时间,保留其他行的信息不变。

   请问如何通过批处理实现?谢谢!!!
作者: HAT     时间: 2008-1-23 15:10

@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
  )
)

作者: qianmo717     时间: 2008-1-23 16:51
楼上的朋友你好,上面用这句for /f "tokens=1* delims=" %%a in ('findstr .* "%SrcFile%"') 而不是用for /f "tokens=1* delims=" %%a in (C:\test\a.txt)这是为什么
作者: zsldownload     时间: 2008-1-25 16:48


  Quote:
Originally posted by HAT at 2008-1-23 03:10 PM:
[code]
@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.

可是怎么都是不能成功。

请教!
作者: zaa     时间: 2008-1-25 18:43
您看看降可不可以 :)
--
@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 ]
作者: zsldownload     时间: 2008-1-25 19:29
已经搞定.谢谢!

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