Цитата:
Сообщение от Bayer
В ТС или Far'е есть такая возможность или там только сравнение файлов идентичных по типу?
|
Там сравнение с учётом типа. Точнее - полного имени файла (имя+расширение). Т.е. объяснить ему, что jpeg и nef это одно и то же - не удастся, без вариантов (насколько
мне известно).
Цитата:
Сообщение от Bayer
Пример:...
|
Ну, я так и понял.
Адаптация скрипта выше под конкретный пример:
Код:
REM задаём рабочие папки
set "RAWDIR=X:\YYYY.MM.DD Name_of_Event"
set "JPEGDIR=Z:\YYYY.MM.DD Name_of_Event"
REM Проверка существования и доступности папок
pushd "%RAWDIR%" ||exit
pushd "%JPEGDIR%" && popd || exit
REM Удаляем из RAW-папки файлы, для которых нет соответствующего
REM (с таким же именем) файла в JPEG-папке
for /f "delims=" %%N in ('dir /b *.nef') do call :check "%%N"
popd
goto :EOF
:check
if not exist "%JPEGDIR%\%~n1.jpg" del /q "%1"
goto :EOF
Чисто технически - можно сделать рекурсивный обход папок на диске с сравнением с такими же папками на другом диске. Тогда не надо будет, с одной стророны, для каждой пары папок прописывать имена в сам батник - но будут лопатиться все папки что попадутся, что обычно не требуется...
На всякий - в редакторе Far Manager есть очень удобная фишка: вставка по "Ctrl-Shift-[" текущего пути в активной вкладке и по "Ctrl-Shift-]" текущего пути в неактивной вкладке (это к вопросу о редактировании имён папок). Причём в любой момент можно переключиться из редактора на панели (по Ctrl-tab) и обратно.
Да, на всякий - скрипт ничего не спрашивает и не помечает, он именно удаляет, сразу и не задавая вопросов. Именно потому в него и вставлена проверка на доступность обоих заданных папок, и безусловное прекращение выполнения при недоступности любой из них.