Как скопировать файлы из одной папки в другую в зависимости от того, содержит ли целевая папка часть имени целевой папки? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть каталог с тысячами папок, в которых есть подпапки, названные определенным образом (целевой каталог). У меня есть другой каталог с папками, в которых есть файлы (целевой каталог). Имена папок в целевом каталоге присутствуют в некоторых именах папок в целевом каталоге. Другими словами, имена папок в целевом каталоге являются подстрокой строки. Я хочу переместить файлы из папок в целевом каталоге в подпапку каждой папки в целевом каталоге, если папка содержит подстроку. Структура папок в целевом каталоге выглядит примерно так:

D:\Folder Test\54830_Mouse1_Mato_Opera\54830_Mouse1_Mato_Opera
D:\Folder Test\55568_Mouse1_Doctore_Opera\55568_Mouse1_Doctore_Opera_sub
D:\Folder Test\56987_Mouse_Opera\56987_Mouse_Opera_sub
D:\Folder Test\58936_Mouse1_sulifue_Opera\58936_Mouse1_sulifue_Opera_sub
D:\Folder Test\63102_Mouse_Theater\63102_Mouse_Theater_sub

Структура папок и файлов в целевом каталоге выглядит примерно так:

D:\Folder Test2\Mouse1_Mato\Blimp.bmp
D:\Folder Test2\Mouse1_sulifue\Blomp.bmp
D:\Folder Test2\Mouse2\Blamp.bmp
D:\Folder Test2\Mouse3\Blemp.bmp

Так, например, я бы хотелпереместить файл D:\Folder Test2\Mouse1_sulifue\Blomp.bmp в D:\Folder Test\58936_Mouse1_sulifue_Opera\58936_Mouse1_sulifue_Opera_sub на основе того факта, что Mouse1_sulifue присутствует в обоих foldernames.

Чтобы не приходилось перемещать файлы из одной папки в другую вручную, я хочусоздать командный файл, который будет делать это для меня в командной строке.

Мой псевдокод будет выглядеть так:

#local is D:\Folder Test2
setlocal
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
for /f "tokens=*" %%G in ('dir /b /s /a:d "D:\Folder Test\*"')(
    if [[ $%%G =~ %%a ]]
    then robocopy D:\Folders Test2\%%a D:\Folders Test\%%G\* /e 
/copyall
    fi
 )
)
endlocal

Я прошу прощения, если код не имеет смысла, так как я абсолютно новичок в командной строке. Я придумал это после некоторого поиска в Google, но это, очевидно, не работает.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...