|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перемещение файлов по маске |
|
|
CMD/BAT - [решено] Перемещение файлов по маске
|
Новый участник Сообщения: 42 |
Добрый день.
Есть батник, который перемещает на сетевом диске из нескольких папок текстовые файлы test_MMDD.txt по маске "test_2020" через Robocopy в те же папки в соответствующие созданию файла, год - папки были созданы в ручную. Файлы периодически помещаются в каждую папку Folder1, Folder2, Folder3, а вечером батник запускается и перемещает файлы, если таковые есть. пример: ROBOCOPY \\netdisk\Folder1\ \\netdisk\Folder1\2020\ *test_2020*.txt* /MOV /IS ROBOCOPY \\netdisk\Folder2\ \\netdisk\Folder2\2020\ *test_2020*.txt* /MOV /IS ROBOCOPY \\netdisk\Folder3\ \\netdisk\Folder3\2020\ *test_2020*.txt* /MOV /IS Батник соответственно нормально работает, но есть вопрос, как сделать так, чтобы папка с годом была динамическая? Чтобы в следующем году не изменять в батнике в каждой строке цифры года как в папке "2020", так и файле по маске test_2020 ? |
|
Отправлено: 13:58, 16-01-2020 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата finderhd:
|
|
Отправлено: 19:11, 16-01-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать А куда эту строчку необходимо вставить? Вместо 2020 ? Если есть возможность, покажите плз. напримере батника выше.
|
Отправлено: 10:25, 17-01-2020 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата finderhd:
Какие всё таки имена файлов? Год берётся из имени? Или из сегодняшней даты? Или из даты последнего изменения файла? Позволю себе наглость применить решение(экспромпт, не проверял) Iska к тому, что Вы написали: при условии, что дата в системе в формате дд.мм.гггг, папка с годом уже существует, в начале года не может быть ситуации, когда в исходных папках есть файлы с именами за прошлый год. |
|
------- Последний раз редактировалось megaloman, 17-01-2020 в 11:03. Отправлено: 10:47, 17-01-2020 | #4 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Батник должен работать таким образом, чтобы все файлы, которые будут помещаться в папки test1 test2 и test3 перемещались в соответствующие (в эти же) папки по соответствующему году, чтобы в батнике каждый год не менять руками именно год. Т.е. структура каталогов должна быть будет такой последовательности: test1 2020 test_2020.txt 2021 test_2021.txt 2022 test_2022.txt Т.е. файлов за 2021 и 2022 год естественно еще нет, они появятся в папке когда будет соответствующий год. Т.е. здесь также важно учитывать не только год в имени файла, но и дата создания файла. При этом папка с годом должна создаваться сама. Если это условие сложное, то можно в принципе заранее сделать папок на лет 10 вперед, этого уж точно хватит ![]() ОС - Windows Server 2012. |
||
Последний раз редактировалось finderhd, 17-01-2020 в 12:56. Отправлено: 12:51, 17-01-2020 | #5 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 12:59, 17-01-2020 | #6 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Вобщем, попробовал такой батник
set sYear=%date:~6,4% ROBOCOPY c:\test\test1\ c:\test\test1\%sYear%\ *report_stat2020%sYear%.txt* /MOV /IS ROBOCOPY c:\test\test2\ c:\test\test2\%sYear%\ *report_stat2020%sYear%.txt* /MOV /IS ROBOCOPY c:\test\test3\ c:\test\test3\%sYear%\ *report_stat2020%sYear%.txt* /MOV /IS Папки с годом 2020 создались в каждом каталоге, файлы не переместились. Возможно это связано с тем, что файлы в папке test1 и test2 я положил старые, соответствующие году, а в дальнейшем будет нормально, тут сложно сказать, надо дождаться след. года или заморачиваться сменой даты на компе. В любом случае, файлы текущего года в папку 2020 не переместились. |
Последний раз редактировалось finderhd, 17-01-2020 в 16:00. Отправлено: 13:40, 17-01-2020 | #7 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата finderhd:
Цитата finderhd:
Вариант
@Echo Off FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Year=%%d" Set /A Year=%Year:~0,4% rem Call :MyMove "Z:\Box_In" "Z:\Box_Out" "*bank_stat_" ".txt*" Call :MyMove "C:\test\test1" "C:\test\test1" "*bank_stat_" ".txt*" Call :MyMove "C:\test\test2" "C:\test\test2" "*bank_stat_" ".txt*" Call :MyMove "C:\test\test3" "C:\test\test3" "*bank_stat_" ".txt*" Exit /B 0 :MyMove FOR /L %%i IN (0,-1,-1) DO ( Call Set /A Y=%Year%+%%i Call 2>nul Md "%~2\%%Y%%" Call RoboCopy "%~1" "%~2\%%Y%%" "%~3%%Y%%%~4" /MOV /IS ) Exit /B |
||
------- Последний раз редактировалось megaloman, 17-01-2020 в 14:59. Отправлено: 13:57, 17-01-2020 | #8 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Символа "_" нет.
Вобщем, вот такой файл: report_stat2020011713ReadUser.txt последняя цифра - это час, но мне час учитывать не нужно, а только год |
Отправлено: 16:00, 17-01-2020 | #9 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:13, 17-01-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Перемещение файлов по маске с созданием папки по дате в названии файла | AndreH | Скриптовые языки администрирования Windows | 5 | 08-08-2018 09:14 | |
CMD/BAT - [решено] Перемещение и удаление файлов по условию и маске | VitHAK | Скриптовые языки администрирования Windows | 14 | 23-12-2013 08:57 | |
CMD/BAT - Перемещение файлов по маске с сохранением структуры папок... | nfs911 | Скриптовые языки администрирования Windows | 6 | 15-02-2013 00:08 | |
CMD/BAT - Перемещение файлов по маске | SanyaJoker | Скриптовые языки администрирования Windows | 0 | 17-11-2011 12:54 | |
Delphi - Перемещение и удаление файлов по маске. | Putin-mode | Программирование и базы данных | 1 | 21-06-2010 12:16 |
|