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

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

Ответить
Настройки темы
CMD/BAT - Копирование файлов в папки по маске файла и маске папки (BAT)

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


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

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


Добрый день!
Товарищи, помогите. Возникла надобность раскладывать файлы по маске папки и маске файла. То есть, расскажу детальней, есть файлы в названии которых есть некий код, пример: "123456 (Тут текст).pdf" и есть структура папок, где каждая папка в начале имеет наименования код и далее текст, пример: "123456 (Тут текст)". Так вот, требуется разложить файлы по этому коду, то есть файл "123456 (Тут текст).pdf" в папку "123456 (Тут текст)" по коду "123456" Возможно ли как-то это организовать в BAT.

Отправлено: 13:24, 08-09-2015

 

Аватара для Elven

Ветеран


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

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


а как определить где закончился код и началось название? чем коды отделены от названия, или они имеют одинаковое количество символов?

Отправлено: 13:46, 08-09-2015 | #2



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

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


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


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

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


Код заканчивается пробелом как в файле так и в названии папки. Количество символов не одинаковое. Есть коды которые начинаются с нулей, пример: 0001234 (тут текст).

Отправлено: 14:08, 08-09-2015 | #3


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


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

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


Файлы для переноса в одной папке. Все папки в одной общей папке. Совпадает только код, текст в названии не совпадает. Все файлы pdf.

Отправлено: 15:07, 08-09-2015 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
Set "WhereF=D:\Файлы"
Set "WhereD=D:\Папки"

FOR /F "usebackq tokens=1,* delims= " %%i IN (`Dir "%WhereF%\* *.pdf" /B /A:-D`) DO (
	FOR /D %%d IN ("%WhereD%\%%i *") DO (
		If Exist "%WhereF%\%%i *%%~xj" Move /Y "%WhereF%\%%i *%%~xj" "%%d\"
	)
)

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

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

Отправлено: 15:39, 08-09-2015 | #5


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


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

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


Большое спасибо, ещё не пробовал, много работы. Очень благодарен.

Отправлено: 07:48, 09-09-2015 | #6


Ветеран


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

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


skyskiff, попробуйте так:
Код: Выделить весь код
@echo off
SetLocal EnableExtensions
set "cod=123456"
set "in=%Userprofile%\Desktop\proba"
for /d %%i in ("%in%") do for /f "tokens=1 delims=%cod%" %%j in ('dir /ad /b "%%~i"') do set "papka=%%j"& call :kopir "%%j"
goto :eof
:kopir
 for /f "tokens=1 delims=%cod%" %%k in ('dir /a-d /b "%in%"') do set "file=%%k"& goto ext
:ext
 copy "%in%\%cod%%file%.pdf" "%in%\%cod%%papka%\"
exit /b
.

Отправлено: 20:34, 20-09-2015 | #7


Ветеран


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

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


skyskiff, Извиняюсь не проверил, правильно так:
Код: Выделить весь код
@echo off
SetLocal EnableExtensions
set "cod=123456"
set "in=%Userprofile%\Desktop\proba"
for /d %%i in ("%in%") do for /f "tokens=1 delims=%cod%" %%j in ('dir /ad /b "%%~i"') do set "papka=%%j"& call :kopir "%%j"
goto :eof
:kopir
 for /f "tokens=1 delims=%cod%" %%k in ('dir /a-d /b "%in%\*.pdf"') do set "file=%%k"& goto ext
:ext
 copy "%in%\%cod%%file%" "%in%\%cod%%papka%\"
exit /b
.

Цитата skyskiff:
текст в названии не совпадает »
- должен совпадать иначе что куда?

Имел ввиду текст файла и папки совпадает?

Отправлено: 22:41, 20-09-2015 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удалить папки по маске run0ut Скриптовые языки администрирования Windows 9 21-03-2017 01:27
CMD/BAT - *bat исключение на копирование файла по маске morcano Скриптовые языки администрирования Windows 1 07-07-2015 11:19
CMD/BAT - [решено] переиминовывание файлов по маске корневой папки. ЗубнаяФея Скриптовые языки администрирования Windows 1 30-09-2013 12:58
CMD/BAT - Копирование файлов по маске расширения Валерий_Назаров@vk Скриптовые языки администрирования Windows 7 19-06-2013 14:51
CMD/BAT - [решено] Копирование файла по частичной маске tAnk3o3 Скриптовые языки администрирования Windows 6 29-12-2011 10:09




 
Переход