|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Скопировать файлы из папок |
|
|
Любой язык - [решено] Скопировать файлы из папок
|
Пользователь Сообщения: 87 |
Профиль | Отправить PM | Цитировать Здравствуйте, у меня очень нубский вопрос.
Мне надо из очень смешанной структуры папок перенести файлы вместе с папками в которых они расположены. Из папки _Источник_ надо перенести все *.тхт в папку _Результат_ . Другие файлы не трогать. Но уже без вложенности. Это что есть: ├───Источник │ │ кит.txt │ │ │ ├───нудно │ │ │ ненужен.zip │ │ │ письмо.txt │ │ │ │ │ └───долго │ │ │ пурга.zip │ │ │ │ │ └───ещё │ │ винт.txt │ │ шуруп.txt │ │ │ └───шмапка │ лев.txt │ тигр.txt Спасибо! |
|
Отправлено: 19:09, 16-10-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Patroklos, давайте представим, что у нас есть каталог «Затупил» в каталогах «нудно», «долго» и «шмапка» с частично совпадающими именами файлов, но различающимся содержимым (полностью или частично). Например, в каждом из трёх каталогов «Затупил» есть файл «Выплыл косяк.txt», и везде — разного размера. Наши действия?
|
Отправлено: 20:07, 16-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Согласен - затупил.
Если это проще то перезаписываем. А лучше переименовываем. |
Отправлено: 20:39, 16-10-2018 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Patroklos,
Если перезаписываем
Если переименовываем
@Echo off Set "BoxIn=Z:\Источник" Set "BoxOut=Z:\Результат" Set "Mask=*.txt" FOR /R "%BoxIn%" %%f IN ("%Mask%") DO Set "NDir=%%~dpf" &Call :FMove "%%f" "%%NDir:~0,-1%%" "%BoxOut%" GoTo :Eof :FMove Set "Out=%~3\%~nx2" If Not Exist "%Out%" Md "%Out%" Set /A i=1000 Set "NewName=%Out%\%~nx1" :Begin If Not Exist "%NewName%" Move %1 "%NewName%" >nul &GoTo :Eof Set /A i+=1 Set "NewName=%Out%\%~n1_%i:~1%%~x1" GoTo :Begin GoTo :Eof |
------- Последний раз редактировалось megaloman, 16-10-2018 в 22:38. Отправлено: 22:09, 16-10-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Patroklos:
|
||
Отправлено: 22:45, 16-10-2018 | #5 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:53, 16-10-2018 | #6 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Ещё раз спасибо. У меня остался один непринципиальный вопрос.
Скрипт отработал на отлично но у меня этих папок семь и я должен буду время от времени повторять этот процесс. В скрипте есть возможность перечислить папки через запятую или мне сделать семь батников? |
Отправлено: 09:45, 17-10-2018 | #7 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Patroklos,
@Echo Off Call :In "Z:\Источник" "*.txt" "Z:\Результат" Call :In "Z:\Источник 1" "*.txt" "Z:\Результат 12" Call :In "Z:\Источник 2" "*.txt" "Z:\Результат 12" GoTo :Eof :In FOR /R "%~1" %%f IN ("%~2") DO Set "NDir=%%~dpf" &Call :FMove "%%f" "%%NDir:~0,-1%%" "%~3" GoTo :Eof :FMove ................................ далее кусок из предыдущего кода |
------- Отправлено: 10:56, 17-10-2018 | #8 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать Спасибо большое!
|
Отправлено: 11:47, 17-10-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:23, 17-10-2018 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Скопировать файлы-сателлиты из папки в папку | Patroklos | Скриптовые языки администрирования Windows | 6 | 29-01-2018 12:04 | |
CMD/BAT - Скопировать файлы из папок по определенному названию | JKop | Скриптовые языки администрирования Windows | 19 | 28-10-2016 21:43 | |
Прочее - как скопировать файлы из EXT2 в NTFS? | Victor75 | Общий по Linux | 10 | 28-03-2014 01:11 | |
CMD/BAT - скопировать из удаленнего компьютера состоящией в рабочей группе файлы | j-kidd999 | Скриптовые языки администрирования Windows | 0 | 19-08-2013 13:54 | |
CMD/BAT - Скопировать все файлы из одного каталога в другой | Pavelnt | Скриптовые языки администрирования Windows | 5 | 10-03-2013 07:08 |
|