CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки

Ответить
Аватара пользователя
vlz47

CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки

Сообщение vlz47 »

Добрый день.



Имеется следующая структура папок:

Папка "D:\tmp\folder2" в которой содержатся txt файлы, каждый файл с уникальным именем по ФИО, например "иванов иван иванович.txt", "петров петр петрович.txt" и т.д.

Папки вида "D:\tmp\folder1\arm*\ФИО", например "D:\tmp\folder1\arm1\иванов иван иванович"



Задача:

Перенести txt файлы из каталога "D:\tmp\folder2" в соответствующие им по имени папки каталога "D:\tmp\folder1\arm*\ФИО", т.е. чтобы в итоге файл "петров петр петрович.txt" попал в папку "D:\tmp\folder1\arm1\петров петр петрович", файл "иванов иван иванович.txt" в каталог D:\tmp\folder1\arm2\иванов иван иванович и т.д.
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
vlz47

Re: CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки

Сообщение vlz47 »

Есть вот такой код:

@echo off

for /f "delims=" %%a in ('2^>nul dir /ad/b/r "D:\tmp\folder1\* "') do if exist "D:\tmp\folder2\%%~nxa.txt" >nul copy "D:\tmp\folder2\%%~nxa.txt" "D:\tmp\folder1\%%a"

pause

но он работает только если целевая директория, в которую нужно скопировать одноименный txt файл, находится в корне каталога folder1, например - D:\tmp\folder1\петров петр петрович, а нужно, чтобы файл копировался в - D:\tmp\folder1\arm1\петров петр петрович
Аватара пользователя
megaloman

Re: CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки

Сообщение megaloman »

Код:

Код: Выделить всё

@Echo Off
cls
Set "FoldMask=Z:\tmp\folder1\arm*"
Set "FileFold=Z:\tmp\folder2"
Set "FileExt=txt"
FOR /D %%d IN ("%FoldMask%") DO (
	FOR /D %%p IN ("%%d\*.*") DO (
		>nul Move /Y "%FileFold%\%%~nxp.%FileExt%" "%%p\" ||Echo File "%FileFold%\%%~nxp.%FileExt%"
	)
)
Pause
Ответить

Вернуться в «Скриптовые языки администрирования Windows»