|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск папок в поддиректории по списку из txt и перемещение |
|
CMD/BAT - [решено] Поиск папок в поддиректории по списку из txt и перемещение
|
Новый участник Сообщения: 19 |
Приветствую!
Помогите решить задачу. Есть заранее составленный список папок в текстовом файле (life.txt) вида: 79032177652 79032178139 79032199051 79032239615 и так далее. Нужно пройтись по этому списку и найти в текущей папке, откуда выполняется скрипт, все папки из списка и переместить их в заданную папку. Те папки которые в процессе работы не были найдены - занести в отдельный текстовый файл. Спасибо! Нашел на форуме этот скрипт, но он ищет файлы а не папки. @echo off chcp 1251>nul set "list=list.txt" set "folder=D:\Заданная папка" set "not_found=not_found.txt" 2>nul md "%folder%" >"%not_found%" ( for /f "usebackq delims=" %%i in ("%list%") do ( for /f "delims=" %%j in (' "2>nul dir /a-d/b/s "%%i"" ') do ( >nul move "%%j" "%folder%" ) )|| ( echo %%i ) ) exit /b |
|
Отправлено: 07:46, 17-04-2016 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Решение найдено! Спасибо NiOl
@echo off SetLocal EnableExtensions SetLocal EnableDelayedExpansion set Lst=C:\Users\Cyber\Desktop\old\lifelist.txt set Src=C:\Users\Cyber\Desktop\old set Dst=C:\Users\Cyber\Desktop\old\LIFE for /f "UseBackQ Delims=" %%S in ("%Lst%") do ( call :prc %%S for /f "Delims=" %%D in ('dir /b /s /on /ad %%S') do call :prc %%D ) exit :prc set D=%1 set D=!D:%Src%=! md %Dst%!D! 2>nul move "%1\*.*" "%Dst%!D!\" 2>nul for /d %%i in ("%Src%*") do rd /q "%%i" 2>nul for /d %%i in ("%Dst%*") do rd /q "%%i" 2>nul exit /b |
Отправлено: 08:04, 17-04-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Решение не работает, копирует пустые файлы... часть папок скопировал нормально, а часть папок просто пустые
|
Отправлено: 10:09, 17-04-2016 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата cyberp1983:
|
|
Отправлено: 10:50, 17-04-2016 | #4 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать копировало только структуру подпапок, без файлов(
|
|
Отправлено: 11:01, 17-04-2016 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Georgio, move "%%i" "%folder% Будет работать только если обе папки на одном диске. Иначе получим: Отказано в доступе.
Мой вариант: @Echo off Set "Out=E:\Out" Set "What=SpisDir.txt" Set "No=NotExist.txt" Del "%No%" 2>nul SetLocal EnableExtensions EnableDelayedExpansion FOR /F "usebackq delims=" %%i IN ("%What%") DO ( Dir /b /A:D "%%i" >nul 2>nul If !ErrorLevel!==0 ( Md "%Out%\%%i" 2>Nul Move "%%i\*.*" "%Out%\%%i\" >nul 2>nul Rd "%%i" 2>nul ) Else ( Echo Нет %%i >>"%No%" ) ) |
------- Отправлено: 16:51, 17-04-2016 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать cyberp1983,
@echo off set "list=spisok_p.txt" set "folder=%Userprofile%\Desktop\papka_z" set "not_found=spisok_not.txt" for /f "delims=" %%a in ('type "%list%"') do if exist "%%a" 2>nul md "%folder%"&>nul 2>&1 move "%%a" "%folder%" >"%not_found%" (dir/ad/b|findstr/vg:"%list%") exit/b На другой диск не получится. |
Последний раз редактировалось alpap, 17-04-2016 в 17:38. Причина: Учет замечания megaloman Отправлено: 17:30, 17-04-2016 | #7 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Так работает и на другой диск:
. |
Отправлено: 18:02, 17-04-2016 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск файлов в поддиректориях по списку из txt и перемещение | Sub-Zero | Скриптовые языки администрирования Windows | 15 | 27-03-2017 12:58 | |
CMD/BAT - [решено] Перемещение файлов по списку | neprotiv | Скриптовые языки администрирования Windows | 4 | 24-01-2013 03:06 | |
CMD/BAT - Перемещение файлов по списку | Arsenik77 | Скриптовые языки администрирования Windows | 4 | 04-12-2011 20:43 | |
CMD/BAT - [решено] перемещение каталогов по списку | neprotiv | Скриптовые языки администрирования Windows | 4 | 02-03-2010 09:39 | |
Перемещение по списку в Excel | Evita | Хочу все знать | 3 | 16-03-2006 01:13 |
|