我一直在尝试制作一个批处理文件,在不改变输入文件的现有布局、语法或格式的情况下,在给定文件中查找子字符串。我设法让这个脚本替换我定义的字符串,但它完全地改变了我的文档的原始布局:
@echo off
setlocal enableextensions
set "search=Test incomplete..."
set "replace=Test successfully completed!"
set "textFile=Testing document.txt"
for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
>>"%textFile%" echo(!line:%search%=%replace%!
endlocal
)
本质上,我想要实现的是一个可以修补用户定义的基于文本的文件的单个部分的脚本。
答案1
看起来你需要使用一个类似于的工具,或者是,sed
要求你使用
赛格威或者Unx工具类或者操作系统或者UNIX 的 Windows 服务(已停止,但如果仍在运行...)或者可能是适用于 Linux 的 Windows 子系统
或者直接使用 PowerShell,它具有类似 sed 的功能:
get-content file.txt | %{$_ -replace "find","replace"}
[来源问答]