Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки

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

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Screenshot_1.png
(8.2 Kb, 4 просмотров)
Тип файла: png Screenshot_2.png
(7.1 Kb, 4 просмотров)
Добрый день.

Имеется следующая структура папок:
Папка "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\иванов иван иванович и т.д.

Отправлено: 13:59, 06-02-2018

 

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

@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\петров петр петрович

Отправлено: 17:55, 07-02-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:04, 07-02-2018 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Копировать файлы в папки при совпадении имени файла и папки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Как копировать dll-файл в системные папки с сохранением атрибутов заменяемого файла? jacrrry Microsoft Windows 7 1 23-03-2017 15:35
Разное - Синтаксическая ошибка в имени файла, имени папки или метке тома Maestro Deno Microsoft Windows 7 8 05-03-2017 19:21
Доступ - Синтаксическая ошибка в имени файла, имени папки или метке тома Maestro Deno Microsoft Windows 7 1 05-03-2017 16:18
CMD/BAT - [решено] Добавление к имени файла имя папки Arsenik77 Скриптовые языки администрирования Windows 12 13-08-2011 20:28
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" permas Microsoft Windows 2000/XP 2 20-02-2010 19:30




 
Переход