Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Операционные системы общие вопросы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2017, 15:39   #1
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию Перезапись файлов используя BAT

Приветствую дамы и господа

Просьба помочь с написанием BAT файла который перезаписывает определённый набор текстовых файлов (логов) в папке с названием соответствующим какой-то дате

Имеется исходная папка, например D:\arhive в которую складируются сообщения (около 4000-6000 файлов *.txt в сутки).
Нужен батник, который по дате файла перенесёт его в папку с одноименной датой и запишет (перезапишет) его в ней, а если папки с такой датой нет создаёт её по дате файла.
ВАТ-ник планирую запускать через задачу например в полночь.

исходная папка
... D:\arhive
1) ааа.txt дата создания 01/01/2017
2) bbb.txt дата создания 02/01/2017
3) ccc.txt дата создания 02/01/2017
4) ddd.txt дата создания 03/01/2017

конечные папки (пусть имеется 1 и 2-е число)
...D:\arhive\01012017
...D:\arhive\02012017

после отработки БАТ-ника картина такая

...D:\arhive\01012017
1) ааа.txt дата создания 01/01/2017

...D:\arhive\02012017
2) bbb.txt дата создания 02/01/2017
3) ccc.txt дата создания 02/01/2017

+новая ... ...D:\arhive\03012017
4) ddd.txt дата создания 03/01/2017

заранее благодарю за помощь
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 19.01.2017, 15:51   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а позвольте поинтересоваться, а почему не взять и не написать программку на любом удобном ЯВУ?
или это запрещено правилами безопасности?

p.s. в батниках я не особо силён
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.01.2017, 13:17   #3
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а позвольте поинтересоваться, а почему не взять и не написать программку на любом удобном ЯВУ?
Вопрос не в безопасности, а в открытости кода.
К примеру, если программер в отпуске/выходной/уволен/в запое подкорректировать исходный код не сможет никто, а в случае с ВАТ, это сможет сделать любой соображающий админ =)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 20.01.2017, 13:52   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вряд ли сможет, там ж будет куча страшного кода
Возьмите хотя бы PowerShell тогда, там через .NET должно быть несложно.

Ну или что-нибудь типа Python если установить интерпретатор не проблема.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.01.2017, 14:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от JUDAS Посмотреть сообщение
подкорректировать исходный код не сможет никто, а в случае с ВАТ, это сможет сделать любой соображающий админ
ну, достаточно спорное утверждение..
вот, допустим, будет такой (относительно простой) батник:

Код:
@Echo Off 
For %%a In (*.txt) Do @Call :Rena %%a %%~ta 
GoTo :EOF 
 
:Rena 
Set f_Name=%1 
Set f_Date=%2 
Set f_Time=%3 
Set f_Day=%f_Date:~0,2% 
Set f_Month=%f_Date:~3,2% 
Set f_Year=%f_Date:~6,4% 
Set f_Hour=%f_Time:~0,2% 
Set f_Min=%f_Time:~3,2% 
Ren %F_Name% %f_Year%_%f_Month%_%f_Day%_%f_Hour%_%f_Min%.txt 
GoTo :EOF
уверены, что сможете его легко подкорректировать?

впрочем, я Вас услышал.
Извините, но, как я и упоминал выше, моей компетенции для написания такого батника недостаточно...


p.s. батник в примере взят мной с ру-боарда, (с) KapralBel, батник переименовывает файлы в соответствии с датой создания файлов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.01.2017, 16:25   #6
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
уверены, что сможете его легко подкорректировать?
я то смогу, но мне пришлось приложить усилий, чтобы это смогли сделать другие

Код:
@Echo Off 
rem установка начальный параметров и путей
set indir="D:\xxx\data"
set outdir=%cd%
set fmask="*.log" 
rem проходимся циклом по всем файлам папки передавая в кишки полное имя, краткое имя и атрибут дата/время
For %%a In (%indir%\%fmask%) Do @Call :Rena %%a %%~na %%~ta 
GoTo :EOF 
rem сами кишки 
:Rena 
rem снимаем параметры 
Set fullname=%1 
Set filename=%2 
Set fDate=%3 

rem формируем конечную папку по дате в формат DDMMYYY
set dir=%outdir%\%fDate:~0,2%%fDate:~3,2%%fDate:~6,4%

rem если папки нет создаём её
if not exist %dir% (
  mkdir %dir% 
) 

rem формируем конечное имя файла
set newfile=%dir%\%filename%

rem копируем и валим 
COPY /Y %fullname% %newfile%
DEL %fullname%

GoTo :EOF

pause
думаю что сейчас, опытный админ сможет подкорректировать всё что ему нужно =)

За идею благодарю
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 20.01.2017, 16:39   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А если, например, copy глюкнет. Диск там сбойнет или еще что. То все равно валим, в смысле del?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.01.2017, 16:53   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Таки лучше MOVE, чем COPY + DEL
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BAT-файл. Удаление файлов. Artsiom Помощь студентам 3 27.10.2016 16:33
Переброс файлов: .bat и темповая таблица Alexx_Pol БД в Delphi 0 12.07.2013 23:22
написать bat файл, удаление файлов Юлясик Помощь студентам 1 06.03.2012 22:38
Интерпретор bat файлов Vlad_n Visual C++ 1 29.12.2010 19:18
BAT - список файлов gamer123 Помощь студентам 2 05.06.2009 23:34