Вот простой пакетный файл для этой задачи:
@echo off
md "C:\Temp\Folder C" 2>nul
for %%I in ("C:\Temp\Folder B\*.doc.pdf") do if exist "C:\Temp\Folder A\%%~nI" copy /Y "C:\Temp\Folder A\%%~nI" "C:\Temp\Folder C\" >nul
rd "C:\Temp\Folder C" 2>nul
Вторая командная строка создает Folder C
с подавлением любого сообщения об ошибке, например, что один выход в этой папке уже записан для обработки STDERR путем перенаправления его на устройство NUL .
Третья командная строка использует команду FOR для поиска любого не скрытого файла в Folder B
с именем файла, совпадающим с шаблоном подстановки *.doc.pdf
.
Для каждого найденного файла в Folder B
выполняется условие IF , чтобы проверить, существует ли файл с тем же именем без расширения .pdf
в Folder A
. Если это условие истинно, файл копируется в Folder C
с перезаписью существующего файла в Folder C
с тем же именем, за исключением того, что установлен атрибут только для чтения, и с подавлением сообщения об успехе, записанного для обработки STDOUT перенаправив его на устройство NUL .
Последнее Folder C
удаляется, но только если оно пустое. Вывод сообщения об ошибке для обработки STDERR на Folder C
, содержащей файл, подавляется путем перенаправления его на устройство NUL .
Чтобы понять используемые команды и то, как они работают, откройте окно командной строки, выполните там следующие команды и внимательно прочитайте все страницы справки, отображаемые для каждой команды.
copy /?
echo /?
for /?
if /?
md /?
rd /?