Для вашей конкретной цели вы просто должны найти специальный инструмент. Я помню, как видел программу под названием YAFF (Another Another File Finder), которая имела такое имя, потому что там были и другие. (Это мой основной короткий по теме полный ответ. Остальная часть моего ответа - обсуждение некоторых альтернатив.)
Если вам не нравится YAFF, ищите "искатель файлов" или "дедупликация"/"дедупликация", или "найти дубликат", и я думаю, вы найдете много результатов. (Для программистов довольно забавно создавать вещи после того, как они начинают изучать рекурсию и обработку файлов, поэтому довольно много людей написали инструменты для такой вещи.) Дедупликация также является функцией, о которой многие люди говорят о функциях файловой системы и ПО для резервного копирования, поэтому вы можете получить немало дискуссий по темам, о которых вы не спрашиваете, но также найти то, что вы пытаетесь сделать.
Я сделал что-то очень похожее на это, где я мог сделать что-то с файлом (в том числе удалить его, или с помощью команды "echo" и записать в текстовый файл, или все, что я хотел) в A\dir1\fileA, если B\dir1\fileA существовал. Для этого я использовал командные строки JP Software (обычно 4DOS назад, но современным эквивалентом будет TCC/LE), с внутренними переменными для ссылки на полное имя файла (% @ full) и подстроки /etc. Я никогда не хранил исходный код, потому что у меня хватило трех минут на его повторное создание, когда мне было нужно. Что-то вроде: global /i для %% X в (.) Если существует DIRB\% @ substr [что-то% @ full [.]] Echo DIRB\% @ substr [что-то% @ full [.]] Делать что угодно (или @instr) ... «Что-то» должно быть настроено в зависимости от длины общих путей.
Поддержка потенциально разных подкаталогов может быть возможна, если использовать "for" для перехода в любой подкаталог. Если подкаталоги имеют разные имена, вам может понадобиться использовать GLOBAL/i, которая является внутренней командой продуктов JP Software и в которой не было эквивалентной команды, встроенной в CMD в прошлый раз, когда я проверял (несколько операционных систем назад). Я уверен, что что-то может быть создано (возможно: глобальный, если существует, затем записать во временный файл с известным именем; затем, если этот временный файл существует, удалите.)