|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение файлов в папки, названные по части имен файлов |
|
CMD/BAT - [решено] Перемещение файлов в папки, названные по части имен файлов
|
Пользователь Сообщения: 59 |
Профиль | Отправить PM | Цитировать Здравствуйте.
Помогите написать батник для перемещения файлов в папки, которым присваивается имя, соответствующее первым 10 символам имен файлов. В директории масса файлов, имя которых начинается с дат в одинаковом формате вида 2021-01-01-??????????.??? Необходим батник, который будет создавать папки, имена которых соответствуют первым 10 символам имен файлов (как 2021-01-01), и перемещать в эти папки соответствующие файлы. |
|
Отправлено: 22:03, 10-02-2021 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать @echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq delims=" %%i in ( `2^>nul dir /b /a:-d "*.*" ^| findstr.exe /r /c:"^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-.*\..*$"` ) do ( set sName=%%~nxi set sDate=!sName:~0,10! 2>nul md "!sDate!" >nul move "%%~fi" ".\!sDate!\" ) endlocal exit /b 0 |
Отправлено: 22:57, 10-02-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 59
|
Профиль | Отправить PM | Цитировать Iska, спасибо! С фильтром через регулярные выражения работает отлично.
|
Отправлено: 01:07, 11-02-2021 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 01:16, 11-02-2021 | #4 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать Можно соединить идею Iska и alpap, а в Move написать перемещение не по файлу, а группой за дату (ИМХО, сработает быстрее)
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
For /f "usebackq tokens=1-3* delims=-" %%i In (
`2^>nul Dir /A:-D /B "%BoxIn%\????-??-??-*.*"^| findstr.exe /B /R /C:"^[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]-"`) Do (
If Exist "%BoxIn%\%%i-%%j-%%k-%%l" (
2>nul Md "%BoxIn%\%%i-%%j-%%k"
>NUL Move /Y "%BoxIn%\%%i-%%j-%%k-*.*" "%BoxIn%\%%i-%%j-%%k\"
)
)
Pause
Exit /B 0
|
|
------- Отправлено: 08:56, 11-02-2021 | #5 |
Пользователь Сообщения: 59
|
Профиль | Отправить PM | Цитировать alpap, megaloman, спасибо за интересные варианты!
|
Отправлено: 16:26, 13-02-2021 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Создание папки из части имени файла и перемещение в нее файлов содержащих эту часть | artbiokron@vk | Скриптовые языки администрирования Windows | 10 | 17-03-2020 10:32 | |
CMD/BAT - Копирование файлов по списку соответствия логинов/имен в домашние папки пользователей | evgenyat | Скриптовые языки администрирования Windows | 17 | 23-01-2020 16:15 | |
CMD/BAT - Перемещение файлов по маске с созданием папки по дате в названии файла | AndreH | Скриптовые языки администрирования Windows | 5 | 08-08-2018 09:14 | |
CMD/BAT - [решено] Создание папок на основе имен файлов и перемещение файлов в эти папки | mezzin | Скриптовые языки администрирования Windows | 4 | 10-12-2016 21:11 | |
CMD/BAT - [решено] Переименование части имен файлов | use809 | Скриптовые языки администрирования Windows | 10 | 12-10-2015 14:15 |
|