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

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

Ответить
Настройки темы
CMD/BAT - [решено] Условное зеркало изображений с одинаковыми именами - CMD/BAT

Пользователь


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

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


Доброго времени суток!
Прошу помощи в реализации следующей задачи.

Структура ("Фотки 1" и "Фотки 2" находятся в общий папке "image")

Фотки 1
- папка 1 (изображение)
- папка 2 (изображение)
- папка 3 (изображение)

Фотки 2
- папка 1 (изображение)
- папка 2 (изображение)
- папка 3 (изображение)




В папке "Фотки 1" и "Фотки 2" лежат изображение с одинаковыми именами, отличии только в том что в папке "Фотки 2" находятся изображение с вотермарком (имена индитичны)

Что нужно?

Если удалить вложенное изображение из папки "Фотки 2", то что бы при запуске батника изображение из папки "Фотки 1" так же удалилось. Так же из папкой "Фотки 1" Если удалить вложенное изображение из папки "Фотки 1", то что бы при запуске батника изображение из папки "Фотки 2" так же удалилось


ПС. будет чудестно если не удалять изображение, а переносить их в папку remove в корневых каталогах "Фотки 1" и "Фотки 2"


Заранее благодарен

Отправлено: 13:22, 18-11-2017

 

Ветеран


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

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


да все уже придумали собственно.

Отправлено: 15:42, 18-11-2017 | #2



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

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


Ветеран


Contributor


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

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


Вот решение, как поставлена задача: не найденные в другой папке файлы перемещаются в папку Remove
Код: Выделить весь код
@Echo Off

Set "Box1=Z:\Box_In\Фотки 1"
Set "Arc1=Z:\Box_In\Фотки 1\Remove"

Set "Box2=Z:\Box_In\Фотки 2"
Set "Arc2=Z:\Box_In\Фотки 2\Remove"

Call :Remove "%Box2%" "%Arc1%" "%Box1%"
Call :Remove "%Box1%" "%Arc2%" "%Box2%"

GoTo :Eof

:Remove
	If Not Exist "%~2" Md "%~2" 
	FOR /F "usebackq delims=" %%d IN (`dir "%~3" /b /A:D`) DO (
		If Not "%~nx2"=="%%d" If Exist "%~1\%%d" (
			FOR /F "usebackq delims=" %%f IN (`dir "%~3\%%d" /b /A:-D 2^>nul`) DO (
				If Not Exist "%~1\%%d\%%f" Move /Y "%~3\%%d\%%f" "%~2\" >nul
			)
		)
	)
GoTo :Eof

Здесь файлы перемещаются в папку Remove, но, однако, в этой папке этот файл помещается в подпапку с тем же именем, из которого он был удалён
Код: Выделить весь код
@Echo Off

Set "Box1=Z:\Box_In\Фотки 1"
Set "Arc1=Z:\Box_In\Фотки 1\Remove"

Set "Box2=Z:\Box_In\Фотки 2"
Set "Arc2=Z:\Box_In\Фотки 2\Remove"

Call :Remove "%Box2%" "%Arc1%" "%Box1%"
Call :Remove "%Box1%" "%Arc2%" "%Box2%"

GoTo :Eof

:Remove
	If Not Exist "%~2" Md "%~2" 
	FOR /F "usebackq delims=" %%d IN (`dir "%~3" /b /A:D 2^>nul`) DO (
		If Not "%~nx2"=="%%d" (
			FOR /F "usebackq delims=" %%f IN (`dir "%~3\%%d" /b /A:-D 2^>nul`) DO (
				If Not Exist "%~1\%%d\%%f" (
					If Not Exist "%~2\%%d" Md "%~2\%%d" 
					Move /Y "%~3\%%d\%%f" "%~2\%%d\" >nul
				)
			)
		)
	)
GoTo :Eof

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


Последний раз редактировалось megaloman, 20-11-2017 в 12:50.

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

Отправлено: 20:59, 18-11-2017 | #3


Пользователь


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

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


Цитата megaloman:
Код: »
megaloman, спасибо за то что обратили внимание на пост и попытались помочь, но
к сожалению ваше решение не работает

Отправлено: 01:05, 20-11-2017 | #4


Ветеран


Contributor


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

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


dokxpi@vk, как понять "не работает", что при запуске скрипта происходит? Вы прописали свои реальные пути к папкам? В именах Ваших папок есть русские символы? В таком случае, в какой кодировке сохранили скрипт?
Еще раз проверил - скрипт рабочий. Единственное, забыл предупредить, что если какой-то под "Папки I" в одной папке есть, а в другой не существует, такая подпапка не обрабатывается, так как Вы в вопросе указали одинаковую структуру подпапок.
В предыдущем посте исправил в решении небольшую неточность и добавил еще одно более развитое работающее решение.

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


Последний раз редактировалось megaloman, 20-11-2017 в 12:53.

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

Отправлено: 08:35, 20-11-2017 | #5


Пользователь


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

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


megaloman, вы были правы
Спасибо большое

Отправлено: 01:31, 23-11-2017 | #6



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - CMD/BAT Поиск по каталогам файлов bat и конвертирование их в JPEG freerider1989 Скриптовые языки администрирования Windows 1 18-04-2016 08:37
CMD/BAT - [решено] Удаление файлов по маске в подкаталогах с одинаковыми именами. Xarien Скриптовые языки администрирования Windows 2 24-06-2013 14:52
Интерфейс - Синхронизация файлов с одинаковыми именами но разного размера. Houre Microsoft Windows 2000/XP 5 20-09-2011 12:32
DNS/DHCP - Проблема!!!В сети появились компы с одинаковыми именами. grohochet Сетевые технологии 10 10-02-2009 10:16
CMD/BAT - [решено] *CMD/BAT* | Условное выполнение в батнике pva Скриптовые языки администрирования Windows 3 14-07-2006 14:37




 
Переход