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

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

Ответить
Настройки темы
CMD/BAT - Поиск и копирование папок из списка txt

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


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

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


Всем привет, выручайте!
У меня есть список папок в txt, которые нужно скопировать вместе с файлами внутри них, в другую папку.

Отправлено: 21:36, 25-08-2021

 

Ветеран


Contributor


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

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


promt@vk, Что значит ничего не происходит? Черный экран и скрипт не выходит на завершение (паузу)? Попробуйте убрать >nul, я специально подавил вывод на экран команды xcopy, чтобы скрипт быстрее выполнялся. Переименуйте свой скрипт в txt-файл и приложите к сообщению.

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


Последний раз редактировалось megaloman, 26-08-2021 в 17:01.

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

Отправлено: 16:23, 26-08-2021 | #11



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

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


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


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

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


Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	Set "FileTxt=E:\test\spisok.txt"

	Set "BoxIn=D:\test\1" 
	Set "BoxOut=D:\test\2"

	FOR /F "usebackq delims=" %%n IN ("%FileTxt%") DO For /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\*%%n.*" /B /A:D`) Do (
		> Xcopy "%BoxIn%\%%f\*.*" "%BoxOut%\%%f\" /E /Y /D /H /R
	)
pause
Exit /B 0
HTML код: Выделить весь код
Для продолжения нажмите любую кнопку...

и больше ничего не происходит

Отправлено: 18:15, 26-08-2021 | #12


Ветеран


Contributor


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

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


promt@vk, надо
Код: Выделить весь код
Xcopy "%BoxIn%\%%f\*.*" "%BoxOut%\%%f\" /E /Y /D /H /R
без >
Я сделал все пути как у Вас, у меня работает. Возможно у вас список папок не соответствует тому, что реально есть.
Мои данные
Цитата E:\test\spisok.txt :
60028079
60017932
60020335
60015993
60028096
Цитата Содержимое (список папок) в D:\test\1:
Chapter01
Chapter05
другая папка
однa папка
ПапкаChapter01
ПапкаChapter05
Папкадругая папка
Папкаоднa папка
60015993
60017932
60020335
60028079
60028096
Тра Ля Ля 60015993
Тра Ля Ля 60017932
Тра Ля Ля 60020335
Тра Ля Ля 60028079
Тра Ля Ля 60028096
Тру Лю Лю 60015993
Тру Лю Лю 60017932
Тру Лю Лю 60020335
Тру Лю Лю 60028079
Тру Лю Лю 60028096
Цитата Содержимое (список папок) в D:\test\2\ после отработки скрипта:
60015993
60017932
60020335
60028079
60028096
Тра Ля Ля 60015993
Тра Ля Ля 60017932
Тра Ля Ля 60020335
Тра Ля Ля 60028079
Тра Ля Ля 60028096
Тру Лю Лю 60015993
Тру Лю Лю 60017932
Тру Лю Лю 60020335
Тру Лю Лю 60028079
Тру Лю Лю 60028096

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


Последний раз редактировалось megaloman, 26-08-2021 в 18:57.

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

Отправлено: 18:41, 26-08-2021 | #13


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


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

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


Тоже самое, пишет нажмите любую кнопку

Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	Set "FileTxt=E:\test\spisok.txt"

	Set "BoxIn=D:\test\1" 
	Set "BoxOut=D:\test\2"

	FOR /F "usebackq delims=" %%n IN ("%FileTxt%") DO For /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\*%%n.*" /B /A:D`) Do (
		Xcopy "%BoxIn%\%%f\*.*" "%BoxOut%\%%f\" /E /Y /D /H /R
	)
pause
Exit /B 0

Отправлено: 18:47, 26-08-2021 | #14


Ветеран


Contributor


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

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


Отладочный вариант
Код: Выделить весь код
@Echo Off
cls
>nul chcp 1251
	Set "FileTxt=E:\test\spisok.txt"

	Set "BoxIn=D:\test\1" 
	Set "BoxOut=D:\test\2"

	Dir "%FileTxt%"
	Pause

	Dir "%BoxIn%" /A:D
	Pause

	FOR /F "usebackq delims=" %%n IN ("%FileTxt%") DO For /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\*%%n.*" /B /A:D`) Do (
		Xcopy "%BoxIn%\%%f\*.*" "%BoxOut%\%%f\" /E /Y /D /H /R
	)
pause
Exit /B 0
Файл E:\test\spisok.txt находит? Содержимое D:\test\1 соответствует списку?

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

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

Отправлено: 19:16, 26-08-2021 | #15


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


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

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


Код: Выделить весь код
 Том в устройстве E не имеет метки.
 Серийный номер тома: 9C04-A286

 Содержимое папки E:\test

25.08.2021  21:13                14 spisok.txt
               1 файлов             14 байт
               0 папок   1*774*346*240 байт свободно
Для продолжения нажмите любую клавишу . . .

Отправлено: 19:42, 26-08-2021 | #16


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


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

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


В скрипте он указан

Код: Выделить весь код
201655
111111
HTML код: Выделить весь код
E:\test\1\218450 E:\test\1\32920 E:\test\1\103217 E:\test\1\папка 201655 E:\test\2\ - пуста


Отправлено: 20:35, 26-08-2021 | #17


Ветеран


Contributor


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

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


promt@vk, Смотрите сами:
Set "BoxIn=D:\test\1"
А у Вас
E:\test\1

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


Последний раз редактировалось megaloman, 26-08-2021 в 21:18.

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

Отправлено: 20:53, 26-08-2021 | #18


Ветеран


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

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


Цитата megaloman:
Содержимое D:\test\1 соответствует списку? »
да он не смотрит что пишут, что показывает-то?
Цитата promt@vk:
E:\test\1\218450
E:\test\1\32920
E:\test\1\103217
E:\test\1\папка 201655
E:\test\2\ - пуста »
т.е. вся работа только с диском Е, а в диск D вероятно никто и не смотрел.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:14, 26-08-2021 | #19


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


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

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


Вот я валенок, не тот том выставил.

В папке E:\test\ есть много других папок и подпапок, он их не будет проверять?

Последний раз редактировалось promt@vk, 26-08-2021 в 22:30.


Отправлено: 22:18, 26-08-2021 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - переименовать файлы из списка txt lovator Скриптовые языки администрирования Windows 7 15-11-2018 23:59
CMD/BAT - [решено] Поиск папок в поддиректории по списку из txt и перемещение cyberp1983 Скриптовые языки администрирования Windows 7 17-04-2016 18:02
CMD/BAT - Поиск и копирование определенных файлов из папок timbird Скриптовые языки администрирования Windows 13 22-02-2014 21:25
CMD/BAT - [решено] Копирование некоторых свойств папок в txt Liberti Скриптовые языки администрирования Windows 9 07-11-2013 23:33
CMD/BAT - Переименование файлов из списка *.txt IntuitOS Скриптовые языки администрирования Windows 12 30-03-2013 10:36




 
Переход