У меня есть диск с несколькими тысячами картинок. Я скопировал все это на другой диск, на котором я организовал их медленно в течение нескольких месяцев. Я обнаружил массу поврежденных файлов, но обнаружил, что на исходном диске они не повреждены.
То, что я хотел бы сделать, это иметь пакетный файл, который будет читать имена файлов из текстового файла и искать на исходном диске имя файла, а затем скопировать его в указанную папку.
Поскольку исходный диск не отсортирован, могут быть дубликаты, поэтому я хотел бы скопировать все копии этого имени файла в новую папку. У меня есть скрипт, который может это сделать (см. Ниже), но он не работает из-за длинных имен файлов. Например, « 2008-06-27 02.06.37.jpg
» ... скрипт будет искать « 2008-06-27
» вместо полного имени файла.
Есть мысли о том, как это исправить?
Вот моя работа, которая до сих пор не работает, как ожидалось:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
cls
set dest=F:\ERRORS\recovered
for /f %%f in (F:\ERRORS\errorlist.txt) do (
set i=1
for /f "tokens=*" %%F IN ('dir /S /B /A:-D "%%f"') Do (
for %%N in ("%%F") Do (
set name=%%~NN
set ext=%%~XN
)
copy "%%F" "%dest%\!name!_!i!!ext!"
set /A i=!i!+1
)
)
ENDLOCAL