Сравните два файла и выведите значения LIKE - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь написать пакетный скрипт, чтобы сравнить два файла и предоставить вывод, где столбец 4 совпадает. Проблема в файле1, в четвертом столбце иногда есть домен (т.е. ctbri) перед идентификатором пользователя. Когда я в настоящее время запускаю свой скрипт, я ожидал, по крайней мере, вывод 'jjane', но файл не создается. Любая помощь по этому вопросу будет принята с благодарностью.

File1:
CTBRI, 101828, Джо Джо, ctbri \ jjoe
MIDET, 187285, Джейн Джейн, jjane

Файл 2:
FinRpt_Coor, GroupID, Group_Provider, jjoe
FinRpt_Coor, GroupID, Group_Provider, jjane

Вывод:
jjoe
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
    )
)

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете исправить свой первый FOR l oop, чтобы удалить необязательный домен.

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"
)
...