|
|
楼主 |
发表于 2025-9-6 23:13:51
|
显示全部楼层
感谢大家的回复 ,可能是我写的不够清楚,不过已经解决了。谢谢大家。用了两个方法解决这个问题。(方法1):是自己想出来的,比较简单且实用;(方法2):咨询了一下AI,建议了"findstr /n" 这个功能,这个功能提供两个文件内容里要素的行号,也可以实现对应位置的替换,但是稍微复杂点。下面是具体程序:
两个方法的核心都是讲对应的元素按照两个文件中的位置次序写在一起,然后再用for /f "tokens=1,2"再在需要替换的文件(我的案例是word文件)中进行内容替换。
方法1:
set numb=0
@echo off
(for /f "skip=1" %%b in (temp_%%a.txt) do (
set /a numb=!numb!+1
echo Tab!table!_N!numb!,%%b)) >temp_rpc_!table!.txt
)
方法2:
@echo off
setlocal enabledelayedexpansion
set "file1=name_list.txt"
set "file2=reg.txt"
set "output=merged.txt"
set "delimiter= " :: 此处为制表符(按Tab键生成)
:: 清空或创建输出文件
type nul > "%output%"
:: 逐行合并
(
for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%file1%"') do (
set "line1=%%b"
set /a line_num=%%a
set "line2="
for /f "tokens=1* delims=:" %%c in ('findstr /n "^" "%file2%"') do (
if %%c equ !line_num! set "line2=%%d"
)
echo(!line1!!delimiter!!line2!
)
) > "%output%"
endlocal |
|