我有许多具有部分匹配文件名的数据文件,例如
T70M1U1-cell.txt
T70M1U1-anode.txt
T80M5U1-cell.txt
T80M5U1-anode.txt
...
“T70M1U1-cell.txt”包含
A
B
C
和 “T70M1U1-anode.txt”包含
1
2
3
我想将两个数据集合并为一个“T70M1U1.txt”,其中包含:
A 1
B 2
C 3
如何使用批次或软件批量合并两个数据集“T70M1U1-cell.txt& T70M1U1-anode.txt”以及其他类似数据?
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
SET source=c:\sourcedir
SET dest=c:\destdir
FOR /f "delims=-" %%a IN (
'dir /b/a-d "%source%\*-cell.txt"'
) DO IF EXIST "%source%\%%a-anode.txt" (
FOR /f "tokens=1*delims=:" %%p IN ('findstr /n /r "$" ^<"%source%\%%a-cell.txt"') DO (
FOR /f "tokens=1*delims=:" %%s IN ('findstr /n /r "$" ^<"%source%\%%a-anode.txt"') DO (
IF %%p==%%s >>"%dest%\%%a.txt" ECHO %%q %%t
)
)
)
您需要修改的所有内容都是适合您情况的源和目标目录。
答案 1 :(得分:0)
@echo off
setlocal enabledelayedexpansion
cd "dir\containing\txtfiles"
for %%I in (*-cell.txt) do (
set arr.length=0
set file=%%~nxI
set dest=!file:-cell.txt=.txt!
if exist "!dest!" del "!dest!"
for /f "usebackq" %%a in ("!file:cell.txt=anode.txt!") do (
set "arr[!arr.length!]=%%a"
set /a "arr.length+=1"
)
set idx=0
for /f "usebackq" %%a in ("%%I") do (
>>"!dest!" call :dump %%a !idx!
set /a "idx+=1"
)
)
goto :EOF
:dump
echo %1 !arr[%2]!
在最后一行中,它应该是echo %1
和!arr[%2]!
之间的标签,但您可以使用您认为合适的分隔符。