|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Bat - добавить дату к имени |
|
CMD/BAT - Bat - добавить дату к имени
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Здравствуйте.
Есть папка, в которую падают .txt файлы в течении дня. В этой папке лежат файлы с разными именами, пример: 12345.txt inv01.txt prihod.txt 02-04-21 prihod 01.txt 02-04-21 invst.txt _02-04-21 invst02.txt Нужно сделать так, что бы bat-ник при запуске, добавлял ко всем файлам в начале текущую дату в формате ДД-ММ-ГГ и не трогал файлы у которых уже есть дата. т.е. добавить даты только к этим файлам: 12345.txt inv01.txt prihod.txt |
|
Отправлено: 23:03, 02-04-2021 |
fascinating rhythm Сообщения: 6491
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 23:28, 02-04-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать samr, первое — дату лучше представлять не в виде ДД-ММ-ГГ, а в виде ГГГГ-ММ-ДД. Вы не возражаете?
Второе: из представленных файлов и Вашего описания можно сделать вывод, что Ваше описание страдает неточностью, поскольку у файла: Цитата samr:
|
|
Отправлено: 23:29, 02-04-2021 | #3 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать Как заказано. Считаю, что "_02-04-21 invst02.txt" - это неточность постановки, не переименовываю файлы "дд-мм-гг *.*"
@Echo Off cls Set "BoxIn=Z:\Box_In" FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO Set "Now=%%d" Set "Now=%Now:~6,2%-%Now:~4,2%-%Now:~2,2%" Pushd "%BoxIn%" && ( For /f "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D ^| findstr.exe /R /V /C:"^[0-3][0-9]-[0-1][0-9]-[2-3][0-9] .*"`) Do ( Ren "%%f" "%Now% %%f" ) Popd ) pause Exit /B Однако я солидарен с Iska, для сортировки и визуального поиска удобнее формат "ГГГГ-ММ-ДД *.*"
@Echo Off cls Set "BoxIn=Z:\Box_In" FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO Set "Now=%%d" Set "Now=%Now:~0,4%-%Now:~4,2%-%Now:~6,2%" Pushd "%BoxIn%" && ( For /f "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D ^| findstr.exe /R /V /C:"^20[2-3][0-9]-[0-1][0-9]-[0-3][0-9] .*"`) Do ( Ren "%%f" "%Now% %%f" ) Popd ) pause Exit /B Считаю, что полезно было бы делать, например, для каждого месяца отдельную папку и туда перемещать файлы.
@Echo Off cls Set "BoxIn=Z:\Box_In" FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO Set "Now=%%d" Set "NowM=%Now:~0,4%-%Now:~4,2%" Set "Now=%Now:~0,4%-%Now:~4,2%-%Now:~6,2%" Pushd "%BoxIn%" && ( If Not Exist "%NowM%\" Md "%NowM%" For /f "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D ^| findstr.exe /R /V /C:"^20[2-3][0-9]-[0-1][0-9]-[0-3][0-9] .*"`) Do ( Ren "%%f" "%Now% %%f" ) >nul 2>nul Move /Y "%Now% *.*" "%NowM%\" Popd ) pause Exit /B |
------- Отправлено: 09:10, 03-04-2021 | #4 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
в данном случае вообще должны быть отдельные директории: "Prixod", "investic", ... внутри папки с месяцами, а файлы должны приходить с четкими именами под эти папки и месяцем и укладываться по назначению и добиться этого надо начиная с себя и выше или ниже по цепочке. |
||
Отправлено: 15:21, 04-04-2021 | #5 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Цитата Iska:
Все файлы в такой папке(сетевой) копятся, обрабатываются и хранятся максимум 2 дня. После раскидываются по разным папкам (это уже другая задача и она решена). |
||
Отправлено: 13:05, 05-04-2021 | #6 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать samr,
Цитата Iska:
Цитата samr:
Цитата samr:
"ГГГГ-ММ-ДД *.*" и "_ГГГГ-ММ-ДД *.*" Для этого надо изменить рег. выражение в findstr под For: Примечание: файлы вида "______ГГГГ-ММ-ДД *.*" (количество "_" произвольно) тоже обрабатываться не будут. |
|||
------- Отправлено: 13:56, 05-04-2021 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
10 / 2016 - [решено] Добавить скрипт генерации имени | c4uran | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 2 | 10-09-2018 17:21 | |
CMD/BAT - [решено] bat который при запуске системы проверяет дату и запускается в hh.dd.mm.yyyy | infoman1@vk | Скриптовые языки администрирования Windows | 15 | 07-07-2014 15:02 | |
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? | axmed0207 | Скриптовые языки администрирования Windows | 1 | 19-01-2012 06:14 | |
CMD/BAT - Таймер для bat(исполняет скрипт в указанное время и дату) | caxarok | Скриптовые языки администрирования Windows | 1 | 25-10-2011 01:08 | |
VBS/WSH/JS - Добавить в первую строку текстового файла его имя и дату | SergeyVD | Скриптовые языки администрирования Windows | 6 | 06-07-2011 20:06 |
|