怎样用批处理文件替换文本文件中的字符串?

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:44:18
现在有个文本文件,里面的数据有一部分都是日期 都是071101
我想做一个批处理程序,将这个文件从某个指定位置拷贝到另一个指定位置的同时,将其中的071101全部替换为071203。请问这种批处理程序可以实现么?
我用了一下jin_mz的程序。其中一部分确实可以替换,但是文本中其他一些信息却莫名其妙得消失了

回泥垢:
我文件的格式是这样的
XXXXXXXXXXXXXXXXX071101XXXX071101XXX XXXXXX071101XXXXXXX

一共有好几条这样的数据,在用程序修改之后
中间空格之后的的数据就全都没有了
很莫明其妙
(XXXX是其他内容)

回小楼_春雨:
你写的程序我试用了,非常感谢,现在的问题是
使用了你的程序,会在原来的文本文件后面新生成一段和我原来数据一样的数据,只是里面的日期已经被替换了。简单的说
如果我原来的文件内容是A,经过替换字符串之后的内容是B
那么用你的程序产生的文件内容就是
A
B
呵呵,这个东西已经让我焦头烂额了。

没挑战性,又没分,真不爱写

@echo off
::下面这行设置你要替换的文件名,这里是test.txt,改成你自己的
set file=test.txt
if exist result.txt del result.txt
for /f "tokens=*" %%i in (%file%) do call :begin ^"%%i^"
start notepad result.txt
goto :eof
:begin
set var=%~1
if defined var set var=%var:071101=071203%
if defined var echo %var% >> result.txt

这个问题应该是个非常简单的问题,可能是你描述不清,建议你帖一部分你的源文件内容,和需要更新的内容出来.

@echo off
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "a.txt"') do (
if "%%b"=="" (echo\>>b.txt) else (
setlocal enabledelayedexpansion
set "var=%%b"
set "var=!var:071101=071203!"
echo.!var!>>b.txt
endlocal
))
start b.txt

@echo off
for /f "delims=" %%i in (替换前.txt) do (
set n=%%i
call set n=%%n:071101=071203%%
call echo %%n%%>>d: