Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
1

Снятие атрибутов с файла через определенный промежуток времени от времени запуска bat файла

06.08.2019, 09:39. Просмотров 1547. Ответов 15
Метки нет (Все метки)

Подскажите, может есть идеи как организовать такую задачу?
Есть каталог с вложенными каталогами, во вложенных каталогах периодически создаются файлы с разным именем и имеют атрибут - скрытый, необходимо запускать задачу с периодичностью в 5 - 10 минут, которая отследит новые файлы в папке с последнего запуска задачи и если такие файлы появились, то снимет атрибут скрытый с данного файла или файлов.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.08.2019, 09:39
Ответы с готовыми решениями:

Перезапуск bat-файла через определённый промежуток времени
Здравствуйте . есть bat файл , он иногда подвисает и требуется его полная перезагрузка. Может быть...

Дальнейшее выполнение bat-файла в том случае, когда время его запуска попадает в определённый промежуток
Добрый день. Нужен код бат файла, которые при запуске проверяет, попадает ли он в промежуток...

Выполнение кода с отсрочкой по времени после запуска bat-файла
Имеется 2 файла bat: 1: chcp 1251 IF EXIST "%programfiles%\Jabber\Plugins\quicksearch.dll" GOTO...

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

15
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
06.08.2019, 15:35 2
Разовый запуск:
Windows Batch file
1
2
schtasks /create /ru "" /f /sc minute /mo 5 /tn RemoveHideAttrib /tr "attrib -h -s С:\Path\to\Folder\* /l /s"
schtasks /run /tn RemoveHideAttrib
1
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
06.08.2019, 15:49  [ТС] 3
Благодарю, немного не то это снимает атрибуты со всех файлов в папках, необходим батник, суть такая, есть папка 1 в ней папки вида 06_08_2019 туда попадают файлы, после обработки на файлах ставится атрибут скрытый и эти файлы попадают в подпапку 06_08_2019 папки 2, иногда файлы не корректно обрабатываются, и размер файла не совпадает с оригиналом, я увидел два пути:
1 в лоб - проверка по времени создания файла - 10 минут до запуска батника из планировщика и снятия с файла атрибута скрытый для повторной обработки
2 сравнение файлов в подпапках (папка 1 и папка 2), если размер какого либо файла в папке 2 меньше чем размер файла в папке 1, то снятие атрибута скрытый с файла в папке 1.
0
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
06.08.2019, 18:43 4
Цитата Сообщение от Sanchopance Посмотреть сообщение
иногда файлы не корректно обрабатываются
Чем? Это совсем не исправимо?
Цитата Сообщение от Sanchopance Посмотреть сообщение
10 минут до запуска батника из планировщика
Какого батника?
Цитата Сообщение от Sanchopance Посмотреть сообщение
если размер какого либо файла
А они в обеих папках должны быть все одноразмерные? По размерам смотреть было бы проще, так как со временем могут быть нестыковки.
0
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
06.08.2019, 20:18  [ТС] 5
Цитата Сообщение от FlasherX Посмотреть сообщение
Какого батника?
которого нет, который смог бы следить за файлами в папках )
Цитата Сообщение от FlasherX Посмотреть сообщение
А они в обеих папках должны быть все одноразмерные? По размерам смотреть было бы проще, так как со временем могут быть нестыковки.
в папке 1 файлов меньше чем в папке 2, во вторую папку попадают еще и другие файлы они не интересны, но сравнить необходимо по имени+размер, он должен быть одинаков (размер) если это поможет, то имя файлов для сравнения имеет одинаковое количество знаков.
Цитата Сообщение от FlasherX Посмотреть сообщение
Чем? Это совсем не исправимо?
Сторонним софтом, увы пока неисправимо.

Алгоритм видится такой, если это возможно средствами bat
1. сравнить файлы в папке 1 с папкой 2
2. если какой либо файл в папке 2 меньше, чем в папке 1, то:
2.1. в идеале - проверить атрибут этого файла, если он не скрыт, пропустить
и или
2.2. снять атрибут скрытый файла\файлов в папке 1
2.3. повторить алгоритм (скорее средствами планировщика)
(2.1. наверное можно пренебречь, т.к. нет атрибута = нечего снимать)
0
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
07.08.2019, 17:31 6
Батник примерно такой:
Windows Batch file
1
2
3
4
5
@echo off&setlocal enabledelayedexpansion
for /f "delims= eol=" %%n in ('dir С:\1\ /a-d/b/s^|findstr "\\[0-9][0-9]_[0-9][0-9]_20[1-9][0-9]\\.*"') do ^
set "p=%%~dpn" & call:nohide %%~zn "!p:\1\=\2\!%%~nxn"
:nohide
if exist %2 if %1 gtr %~z2 attrib -h %2 /l
Ну, а в исходнике параметр ключа /tr заменяем на путь с батником.
0
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
08.08.2019, 12:52  [ТС] 7
FlasherX,
Не могли бы немного пояснить код?
0
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
08.08.2019, 13:18 8
Sanchopance
Рекурсивный проход в подпапках №№_№№_№№№№ в С:\1\.
Сравнение размеров одноимённых файлов с одноимённым родителем папок 1 и 2.
Если размер из 1 больше размера из 2, то снимаем скрытый атрибут с файла из 2.
0
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
08.08.2019, 14:30  [ТС] 9
Цитата Сообщение от FlasherX Посмотреть сообщение
Если размер из 1 больше размера из 2, то снимаем скрытый атрибут с файла из 2
наоборот, то снимаем скрытый атрибут с файла из 1, как прописать конкретные корневые папки 1 и папки 2?
попробовал, на диске с создал две папки c:\1\08_08_2019 и c:\2\08_08_2019 в 1 поместил файл размером 10 кб, во вторую файл с размером 3 кб, файл 10 кб пометил скрытым, запустил bat, не сработало.
0
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
08.08.2019, 14:45  [ТС] 10
Кликните здесь для просмотра всего текста
Снятие атрибутов с файла через определенный промежуток времени от времени запуска bat файла
0
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
08.08.2019, 14:47 11
Лучший ответ Сообщение было отмечено Sanchopance как решение

Решение

Не обратил внимания.
Windows Batch file
1
2
3
4
5
@echo off&setlocal enabledelayedexpansion
for /f "delims= eol=" %%n in ('dir С:\2\ /a-d/b/s^|findstr "\\[0-9][0-9]_[0-9][0-9]_20[1-9][0-9]\\.*"') do ^
set "p=%%~dpn" & call:nohide %%~zn "!p:\2\=\1\!%%~nxn"
:nohide
if exist %2 if %1 lss %~z2 attrib -h %2 /l
Цитата Сообщение от Sanchopance Посмотреть сообщение
как прописать конкретные корневые папки 1 и папки 2?
Неужели не виден путь во второй строке?
1
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
08.08.2019, 14:53  [ТС] 12
Цитата Сообщение от FlasherX Посмотреть сообщение
Неужели не виден путь во второй строке?
Виден С:\2\, не виден С:\1\
Извиняюсь за незнание языка.
0
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
08.08.2019, 14:56 13
И не должен. У них же общий родитель.
0
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
08.08.2019, 15:07  [ТС] 14
Цитата Сообщение от FlasherX Посмотреть сообщение
И не должен. У них же общий родитель.
код выше сработал, благодарю.
Маленький вопрос, если папки будут для сравнения будут например:
c:\original\00-000-01\08_08_2019\
и
c:\backup\00-000-01\08_08_2019\

в каком месте изменить код?
0
2895 / 1553 / 586
Регистрация: 06.06.2017
Сообщений: 5,173
08.08.2019, 15:12 15
Во второй и в конце третьей строки 2/1 меняем на аналог original/backup.
0
0 / 0 / 0
Регистрация: 06.08.2019
Сообщений: 9
08.08.2019, 15:24  [ТС] 16
Все супер, разобрался, спасибо большое за помощь, буду пробовать в боевых условиях.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2019, 15:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Действие через определенный промежуток времени
Вообщем, ради обучения взялся сделать аналог Бойцовского Клуба (combats). Застрял на одном моменте,...

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

Перелистывание картинок через определённый промежуток времени
К примеру, мне нужно что-бы при запуске конвертировании программы, 5 картинок менялись собой...

Отправка на емайл через определенный промежуток времени.
Добрый день уважаемые спецы. Есть программа, которая перехватывает нажатые клавиши и сохраняет их...

Вызов функции через определенный промежуток времени
Здравствуйте! Передо мной стоит задача запускать функцию обновления данных (парсинга с другого...

DISCONNECT/CONNECT через определенный промежуток времени
Привет всем, нужен bat -файл, при запуске которого через определенный промежуток времени...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.