Войти

Показать полную графическую версию : Поиск и копирование папок из списка txt


Страниц : [1] 2

promt@vk
25-08-2021, 21:36
Всем привет, выручайте!
У меня есть список папок в txt, которые нужно скопировать вместе с файлами внутри них, в другую папку.

Iska
25-08-2021, 22:32
У меня есть список папок в txt »
Упакуйте Ваш файл в архив и приложите к сообщению.

promt@vk
25-08-2021, 22:47
Там около 60 гб.

megaloman
25-08-2021, 23:31
У меня есть список папок в txt »Упакуйте Ваш файл в архив и приложите к сообщению. »Хотя бы несколько строк от этого текстового файла. Если папки расположены в
одной папке и список приблизительно такойChapter05
другая папка
однa папка
Chapter01 то как-то так:@Echo Off
cls
chcp 1251
Set "FileTxt=Z:\Soft_In\список папок в txt.txt"
Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"

If Not Exist "%BoxOut%\" Md "%BoxOut%"
FOR /F "usebackq delims=" %%f IN ("%FileTxt%") DO (
If Exist "%BoxIn%\%%f\*.*" Xcopy "%BoxIn%\%%f\*.*" "%BoxOut%\%%f\" /E /Y /D /H /R /F
)
pause
Exit /B 0

promt@vk
25-08-2021, 23:34
60028079
60017932
60020335
60015993
60028096
60026408
60026289
60026288
60027468
60026417
60021445

Это название папок

promt@vk
26-08-2021, 00:25
А возможно сделать, чтобы он копировал частичное имя папки, например: Имя папки: Папка113355, а из файла было 113355

Iska
26-08-2021, 01:26
Шестьдесят гигабайт имён каталогов в одном каталоге. Интересно живут люди :).

А возможно сделать, чтобы он копировал частичное имя папки, например: Имя папки: Папка113355, а из файла было 113355 »
Переведите на русский, пожалуйста.

promt@vk
26-08-2021, 11:31
Допустим есть список с номерами
60028079
60017932
60020335
60015993
60028096
60026408
60026289
60026288
60027468
60026417
60021445

Мне нужно найти их и копировать, но папки могут быть названа по разному Папка 60017932 или Новая60017932

megaloman
26-08-2021, 15:02
@Echo Off
cls
>nul chcp 1251
Set "FileTxt=Z:\Soft_In\список папок c номерами в txt.txt"

Set "BoxIn=Z:\Box_In"
Set "BoxOut=Z:\Box_Out"

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

promt@vk
26-08-2021, 16:11
Попробовал, ничего не происходит

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

promt@vk
26-08-2021, 18:15
@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

Для продолжения нажмите любую кнопку...
и больше ничего не происходит

megaloman
26-08-2021, 18:41
promt@vk, надо Xcopy "%BoxIn%\%%f\*.*" "%BoxOut%\%%f\" /E /Y /D /H /Rбез >
Я сделал все пути как у Вас, у меня работает. Возможно у вас список папок не соответствует тому, что реально есть.60028079
60017932
60020335
60015993
60028096Chapter01
Chapter05
другая папка
однa папка
ПапкаChapter01
ПапкаChapter05
Папкадругая папка
Папкаоднa папка
60015993
60017932
60020335
60028079
60028096
Тра Ля Ля 60015993
Тра Ля Ля 60017932
Тра Ля Ля 60020335
Тра Ля Ля 60028079
Тра Ля Ля 60028096
Тру Лю Лю 60015993
Тру Лю Лю 60017932
Тру Лю Лю 60020335
Тру Лю Лю 60028079
Тру Лю Лю 60028096
60015993
60017932
60020335
60028079
60028096
Тра Ля Ля 60015993
Тра Ля Ля 60017932
Тра Ля Ля 60020335
Тра Ля Ля 60028079
Тра Ля Ля 60028096
Тру Лю Лю 60015993
Тру Лю Лю 60017932
Тру Лю Лю 60020335
Тру Лю Лю 60028079
Тру Лю Лю 60028096

promt@vk
26-08-2021, 18:47
Тоже самое, пишет нажмите любую кнопку


@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

megaloman
26-08-2021, 19:16
@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 соответствует списку?

promt@vk
26-08-2021, 19:42
Том в устройстве E не имеет метки.
Серийный номер тома: 9C04-A286

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

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

promt@vk
26-08-2021, 20:35
В скрипте он указан

201655
111111

E:\test\1\218450
E:\test\1\32920
E:\test\1\103217
E:\test\1\папка 201655

E:\test\2\ - пуста

megaloman
26-08-2021, 20:53
promt@vk, Смотрите сами:
Set "BoxIn=D:\test\1"
А у Вас
E:\test\1

alpap
26-08-2021, 21:14
Содержимое D:\test\1 соответствует списку? »
да он не смотрит что пишут, что показывает-то?
E:\test\1\218450
E:\test\1\32920
E:\test\1\103217
E:\test\1\папка 201655
E:\test\2\ - пуста »
т.е. вся работа только с диском Е, а в диск D вероятно никто и не смотрел.

promt@vk
26-08-2021, 22:18
Вот я валенок, не тот том выставил.

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




© OSzone.net 2001-2012