标题: 求助:怎样用批命令自动更新文本文档?
[打印本页]
作者: jolog
时间: 2008-3-14 19:30
标题: 求助:怎样用批命令自动更新文本文档?
例如有文本文档:历史纪录.txt内容为:
(#####)
便民商店 s=1164.58元
(###########)
又有新建文本文档:20080311.txt内容为:
(*****)
便民商店 s=1236.73元
(***********)
目的是在保留20080311.txt不变的情况下
使得历史纪录.txt内容为:
(#####)
便民商店 s=1236.73元
(###########)
其中(*****)(***********)与(#####)(###########)
格式相同内容不同,代表很多其他内容!
我是新手
所以说起来很罗索
希望各位高手多见谅!
作者: HAT
时间: 2008-3-14 20:06
@echo off
set SrcFile=C:\test\20080311.txt
set DstFile=C:\test\历史纪录.txt
for /f "tokens=*" %%a in ('findstr "便民商店" "%SrcFile%"') do set change=%%a
for /f "usebackq delims= " %%a in ("%DstFile%") do (
if "%%a" neq "便民商店" (
>>"%DstFile%.txt" echo %%a
) else (
>>"%DstFile%.txt" echo %change%
)
)
del /q "%DstFile%"
ren "%DstFile%".txt "历史纪录.txt"
作者: jolog
时间: 2008-3-14 20:27
谢谢2楼的!!!
真快啊!
不过我还是需要再问一下
可能是我说的不恰当让您误会了
我在一楼说的只是个个别的例子
我是想问:有什么方法能用文本2中
便民商店 与 元之间的内容
替换文本1中
便民商店 与 元之间的内容
您能帮我么?
谢谢了!!!
作者: lxmxn
时间: 2008-3-14 21:02
@Echo off & SetLocal EnableDelayedExpansion
set dstfile=历史纪录.txt
set srcfile=20080311.txt
for /f "tokens=2 delims==元" %%i in (%srcfile%) do set count=%%i
for /f "delims=" %%a in (%dstfile%) do (
set string=%%a
if "!string:~0,4!"=="便民商店" (
>>_temp.txt echo.便民商店 s=%count%元
) else (
>>_temp.txt echo.!string!
)
)
type _temp.txt > %dstfile%
del _temp.txt & start %dstfile%
作者: jolog
时间: 2008-3-15 09:47
嗯!
好用!
谢谢了,~~!
作者: terse
时间: 2008-3-15 15:32
给个 一次性替换多个的
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1* delims==" %%i in (历史纪录.txt) do (
for /f "tokens=1* delims==" %%a in (20080311.txt) do (
if "%%i"=="%%a" set "%%i=%%i=%%b"
if not defined %%i set "%%i=%%i=%%j"
)
>>tmp_a.txt echo !%%i!
)
move /y tmp_a.txt 历史纪录.txt
pause
作者: bailang3106
时间: 2008-5-8 14:05
找的真不容易 谢谢 学习了.