windows - 用批处理文件查找并替换多行文本?
问题描述
我有参数文件(文本文件),它们总是用不同的值填充。大约是。1500 行。在这行之间是一组 30 行,它们总是相同的,我想用批处理文件来操作。
举个例子。
这是当前文件。
1 different value
2 different value
3 different value
4 different value
5 fixed value
6 fixed value
7 fixed value
8 different value
9 different value
但我想交换它喜欢。
1 different value
2 different value
3 different value
4 different value
5 EXCHANGED value
6 EXCHANGED value
7 EXCHANGED value
8 different value
9 different value
也许还要添加更多文本,因为它并不总是在同一个位置。交换的文本始终相同,但行中的位置可以移动一点。
--
@echo off set "replace=something" set "replaced=different"
set "source=Source.txt" set "target=Target.txt"
setlocal enableDelayedExpansion ( for /F "tokens=1* delims=:" %%a in
('findstr /N "^" %source%') do ( set "line=%%b" if defined line set
"line=!line:%replace%=%replaced%!" echo(!line!
我还发现我已经修改了一些代码,但这仅适用于单个单词。如果我尝试做更多,他只会忽略以前的那些。
我又做了一些工作。但它并没有真正做到我想要的。
源文件 ; 批处理中的文本应该在其中查找(确切) Traget_File 的文件;最后我想要的文件与交换的行。(最终) Search_For ;这是内部开始交换的一条线。Exchange_With ; 带有新行的文件。
不要为不正确的工作进度条而烦恼,我只是喜欢它:P
SET "Source_File=D:\SEARCH.para"
SET "Target_File=D:\A.para"
SET "Search_For=//______________DATA_______________"
SET "Exchange_With=D:\TARGET.para"
set i=10
(Set /P j=...Please wait) < NUL
ECHO.
(Set /P j=..............................) < NUL
:Start
call :DisplayProgressBar %i%
set /a i = i + 1
if /i %i% leq 100 goto start
ECHO.
ECHO.
IF NOT DEFINED Search_For (ECHO Failure: Variable Search_For not set!&GOTO :eof)
IF EXIST %Target_File% (DEL /f %Target_File% 1>NUL 2>NUL)
FOR /f "delims=" %%i IN ('FINDSTR . "%Source_File%"') DO (
SET Line=%%i& CALL :Exchange !Line!
)
GOTO :NEXT
:Exchange
SET Line=!Line:%Search_For%=%Exchange_With%!
IF [!Line!] EQU [] (ECHO.>>%Target_File%) ELSE (ECHO !Line!>>%Target_File%)
GOTO :eof
:NEXT
del "%Source_File%"
move /y "%Target_File%" "%Source_File%"
:DisplayProgressBar
(Set /P j=.) < NUL
title %1%% Completed
exit /b
解决方案
推荐阅读
- python - Python - 数组的真值不明确(用于面部识别的 If 语句)
- javascript - 来自自定义钩子的状态在父级而不是子级中使用减速器更新
- javascript - 如何使用 setIterval 逐个字符地缓慢显示消息?
- python - 如何读取 .rtf 文件并转换为 python3 字符串并可以存储在 python3 列表中?
- scala - 根据文件名从 DF 生成 txt
- android - 如何通过改造将数组嵌套对象 Json 解析为 Kotlin?
- node.js - 在 MERN 堆栈应用程序的身份验证过程中结合电话号码验证的最佳方法
- c# - ASP.NET Core:使用动作过滤器向方法添加自定义参数
- django - Wagtail 流图像忽略 HTML 文件
- windows - 什么 Windows SDK 用于监视用户活动?