比较两个文件并使用 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"
)
我正在尝试编写一个批处理脚本来比较两个文件并提供第 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"
)