一个替换文件内容的bat,怎么保留被替换文件内容的空格,换行等特性。 80
ps:脚本内容cd路径copyA.txtB.txt@echooffsetlocalenabledelayedexpansionsetfn=A.txt(for/f"toke...
ps:脚本内容
cd 路径
copy A.txt B.txt
@echo off
setlocal enabledelayedexpansion
set fn=A.txt
(for /f "tokens=*" %%i in (%fn%) do (
set s=%%i
set s=!s:$$1=wwwww!
echo !s!))>temp1126.txt
move /y temp1126.txt "%fn%" 展开
cd 路径
copy A.txt B.txt
@echo off
setlocal enabledelayedexpansion
set fn=A.txt
(for /f "tokens=*" %%i in (%fn%) do (
set s=%%i
set s=!s:$$1=wwwww!
echo !s!))>temp1126.txt
move /y temp1126.txt "%fn%" 展开
2个回答
展开全部
bat不太好处理这种空行特性的。但空格和换行,可以正常保留啊(除非第一个字符就是空格)!如果要保留空行,建议您用VBS代码进行替换吧!以下脚本已集成VBS代码。完美保留您要的特性内容
@echo off & title 替换文件内容 By 依梦琴瑶
::设置路径
set DirPath=D:\Test
::设置源文件
set File=A.txt
::设置备份文件名
set Bak=B.txt
::设置替换前的字符
set Str=$$1
::设置替换后的字符
set Var=wwwww
cd /d "%DirPath%"
copy "%File%" "%Bak%"
call :Replace "%File%" "%Str%" "%Var%"
pause
call :ToMe
exit
:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit
:Replace
(echo Set FSO=Wscript.CreateObject("Scripting.FileSystemObject"^)
echo Set F=FSO.OpenTextFile("%~1"^)
echo S=Replace(F.ReadAll,"%~2", "%~3"^)
echo F.Close
echo Set R=FSO.OpenTextFile("%~1",2,True^)
echo R.Write S
echo Wscript.Quit)>Replace.vbs
Replace.vbs
del /f /q Replace.vbs
goto :eof
追问
非常感谢,试了一下确实可以。
请问一下,这个可以指定不同路径、不同文本、不同的替换内容吗。最好能直接覆盖源文件,万分感谢。
上面说的好像有点乱。(简单点说就是指定多个路径,多个文本,和多个替换内容)
展开全部
@echo off
set @=q&set/an=0x53b7e0b4
set "fn=A.txt"
(for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%fn%"') do (
set "s=%%j"
setlocal enabledelayedexpansion
if defined s (echo;!s:$$1=wwwww!) else echo;
endlocal
))>tmp.txt
move /y tmp.txt "%fn%"
echo;Any question +%@%%@% %n%
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询