• Администрация SafeZone приветствует вас на нашем форуме!
    Если вы больше не желаете видеть рекламу при просмотре тем и сообщений - то достаточно просто зарегистрироваться. Для зарегистрированных пользователей реклама не отображается.

Установка\сброс атрибутов файлов и папок

Drongo

Ассоциация VN/VIP
Разработчик
Сообщения
7,844
Симпатии
5,586
#1
Приветі.

В общем есть флешка и на ней стопиццот папок, подпапок, файлов, после вируса у большинства атрибут скрітій и системній, т.е. отображаются они только после показа скрітіх и системніх. Когда-то я помню делал cmd'шник делающий сброс атрибутов на нормальній, но сейчас сходу не могу вспомнить как прописать, чтобі скажем файл SetAttrib.cmd запущеній из корня флешки віполнил бі поставленую задачу. Подсобите правильно написать, а?

Вот так конечно срабатівает, но для конкретной папки, а прописівать вручную кажду влом, тем более если папка содержит кирилицу, то переводить каждое имя в ОЕМ866 вообще изврат
Код:
@echo off
chcp 1251
attrib -s -h autorun.old /s /d
Я просто не могу щас сходу вспомнить как делал... А говорят, в соседней теме, что мозг реально начинает работать токо после 50 лет. )))

Спасибо.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,698
Симпатии
5,595
#2
А говорят, в соседней теме, что мозг реально начинает работать токо после 50 лет. )))
:D Есть у меня такой знакомый. МОЗГ.

У меня много чего есть на эту тему.
Если по самому простому, то вирусня делает скрытыми обычно только корневые папки без вложенных,
поэтому будем работать без рекурсии (так быстрее - особенно для флешки):

Код:
@echo off
SetLocal EnableExtensions

cd /d "%~dp0"

chcp 1251>nul
for /f "delims=" %%i in ('dir /b /a') do attrib -s -h "%%~i"
:: локализуем переменные, разрешаем использовать доп. ключи, например, /F - если такая опция принудительно отключена в реестре
SetLocal EnableExtensions

:: Переходим в папку с батником. Иначе, если батник запустить "От имни Администратора", операция будет произведена над C:\Windows\System32, чего мы совсем не ожидаем
cd /d "%~dp0"

:: Переходим на кодовую страницу с большим кол-вом поддерживаемых символов:
:: т.е. сможет обрабатывать, например, украинские буквы в именах
chcp 1251>nul

for /f "delims=" - на разбивать имена с пробелами на части

:: /B - віводить только имена без доп. инфы
:: /A - показывать файлы с любыми атрибутами
dir /b /a

:: Снять атрибут -S (system - системный), -H (hidden - скрытый).
attrib -s -h

Чтобы добавить рекурсивную обработку, достаточно дописать ключ /S к Dir,
хотя в этом случае код ниже от registr будет делать тоже самое.
 
Последнее редактирование:

regist

гоняюсь за туманом
Ассоциация VN/VIP
VIP
Разработчик
Сообщения
12,067
Симпатии
5,730
#3
Drongo, сборник шаблонов, раздел - Полезности - Raznoe

Скопируйте следующий текст в Блокнот и сохраните, как run.bat:
Код:
attrib "*" -s -h /S /D
скопируйте файл run.bat в корень флешки и запустите
Внимание не запускайте этот файл, когда он находится на жестком диске.
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,698
Симпатии
5,595
#4
А это вариант со сбросом прав и восстановлением владельца.
Этап работ с правами задействуется только в случае, когда обычных прав не хватило для изменения атрибутов файла/папки.

Код:
@echo off
SetLocal EnableExtensions

cd /d "%~dp0"
Set "Cur=%~dp0"
Set "Cur=%Cur:~0,-1%"

chcp 1251 >nul

for /f "delims=" %%i in ('dir "%Cur%\*" /b /a') do Call :RecovFolder "%Cur%\%%i"
pause
exit /B

:RecovFolder [Полный путь к объекту]
  attrib -s -h "%~1"
  attrib "%~1"|>nul FindStr /BIR "....H.."
  if not errorlevel 1 (
    Call :GrantAccess "%~1"
    attrib -s -h "%~1"
  ) else (
    attrib "%~1"|>nul FindStr /BIR "...S..." && (
      Call :GrantAccess "%~1"
      attrib -s -h "%~1"
    )
  )
exit /b

:GrantAccess [Полный путь к объекту]
  takeown /f "%~1" /d y
  echo y|cacls "%~1" /g %username%:f
exit /b
 

Drongo

Ассоциация VN/VIP
Разработчик
Сообщения
7,844
Симпатии
5,586
#5
Такого не пробовал, ща проверю.
Код:
@echo off
SetLocal EnableExtensions

cd /d "%~dp0"

chcp 1251>nul
for /f "delims=" %%i in ('dir /b /a') do attrib -s -h "%%~i"
Да по моему так и делал, помню что как-то слишком просто было.
Код:
attrib "*" -s -h /S /D
regist написал(а):
Drongo, сборник шаблонов, раздел - Полезности - Raznoe
Не работает скачивание архива. Вижу страницу html откріваю в браузере, а там похоже архив рар, ну вижу ж заголовок файла, рар! а открівается как html.
Код:
Rar!I!&"e:хЧ∙ ╠╦╓SX▄ё:'|╗┼ЭA█иF?├_╣─НMзS?с DЬ▄_д?PЧ▐ГTjuЗs7
╧c╒в╔,еч@бЙф°>щВъ╞N╒Щ+OХv6░]WУ/-Е─жий─Цї╖zN╦0═║FW 0■#√"к╫CK'╣Шн+└°╧Аh.DъЯвF─
regist написал(а):
Внимание не запускайте этот файл, когда он находится на жестком диске.
А то вся порнуха мужа вілезет наружу ахаха.:DСделал, отработал скрипт без проблем, а то через ТС файлі вижу, а на флешке их типа нет..

Спасибо, вопрос решён.
 
Последнее редактирование:
Сверху Снизу