比较两个文件并使用 LIKE 值输出

Compare two files and output with LIKE values

我正在尝试编写一个批处理脚本来比较两个文件并提供第 4 列匹配的输出。 挑战在 File1 中,第四列有时在用户 ID 之前有一个域(即 ctbri)​​。 当我当前 运行 我的脚本时,我期望至少输出 'jjane' 但没有生成文件。 如有任何帮助,我们将不胜感激。

文件 1:
CTBRI,101828,乔乔,ctbri\jjoe
MIDET,187285,简简,jjane

文件 2:
FinRpt_Coor,GroupID,Group_Provider,jjoe
FinRpt_Coor,GroupID,Group_Provider,jjane

输出:

当前脚本:

@echo off
setlocal EnableDelayedExpansion

rem Load File1 as lookup table:
for /F "tokens=4 delims=," %%a in (File1.txt) do (
set "filename=%%~a"
set "col4[!filename: =_!]=%%~a"


 )

rem Process File2:
for /F "tokens=4 delims=," %%a in (File2.txt) do (
set "filename=%%~a"

    for /F %%f in ("!filename: =_!") do if defined col4[%%f] (

        echo !col4[%%f]! >> Output.txt
    )
)

您可以修复第一个 FOR 循环以删除可选域。

for /F "tokens=4 delims=," %%a in (File1.txt) do (
    set "filename=%%~a"
    set "col_name=!filename: =_!"
    set "col_name=!col_name:*\=!"
    set "col4[!col_name!]=%%~a"
)