Показать полную графическую версию : Скрытые файлы на флешке
Самое интересное, что в примере скрытых вложенных папок не было. Скрипту, впрочем, всё равно — он переносит любые файлы и папки, к которым есть доступ. А у коллеги megaloman, насколько я смотрел код, со всего вложенного предварительно снимаются атрибуты «Скрытый» и «Системный».Valek271183, давайте ещё один образец содержимого диска, при котором будет видно данное удаление.
Не буду утверждать столь категорично, что все остальные методы неправильны, но моё предыдущее решение с необходимостью ввода буквы диска будет работать при такой организации обработки без каких-либо доработок. »
Неправильный метод, в моём понимании — это клонировать пакетный файл/скрипт по месту применения. Ваше решение более чем укладывается в корректную концепцию.
Здравствуйте, подскажите можно ли сделать BAT который будет справляться с вирусом который создаёт на флешке скрытую папку с названием флешки и переносит все её содержимое туда, т.е. нужно чтобы BAT файл проверил нет ли на флешке скрытой папки с названием флешки (например Вася) и переносил бы из неё файлы назад в корень флешки. Можно ли это осуществить, и, если можно, то как? »
не с той стороны заход ;-)
C этими гадостями нужно не бороться, а один раз выстрелить из винтовки, шобы всё.
- Делаем на флешке одну папку куда будем складывать файлы и другие папки.
- Обзываем её как-нибудь, 0files или 0Фоточки например(нуль вначале это шобы она всегда была вверху, хотя это не важно ибо...)
- дальше вызываем свойства этой папки и убираем у нее "наследование прав доступа" + выставляем группе "Все" права "Разрешить" на запись в неё. Т.е. "для этой папки и её подпапок" ставим группе "Все" - разрешить.
- Потом вызываем свойства всего диска-флешки и Запрещаем(прям выставляем галочки "запретить") "Запись, Дозапись, Создание, Изменение" в корень всем. т.е. удаляем всех юзеров кроме "Все" и этим всем ставим запрет.(мну еще оставлял запись SYSTEM и ей тоже запрещал всё)
----
Итого: писать в корень флешки не может никто и нигде.
( Развешо "вирусняк" будет об этом знать и афтар предусмотрел это и будут сниматься и переписываться Права доступа, но для этого вирусняк должен залезть в "Админскую учётку" на компе куда втыкнул флешку. А против этого нефиг бороться.)
Короче, во всех остальных случаях на вашу флешку ничего не попадёт. Нужно поупражняться в выставлении "Прав", но пару раз попробовав - поймёте что это железный способ не принести домой какую-нить гадость.
Права NTFS как метод безопасности есть еще со времен WinXP, но их никто так и не юзает. И это прискорбно.
зы. Я флешку так настраивал, что ничего не писалось в корень, но там лежали и файлы autorun.inf (+иконка) для того чтоб свою флешку видеть сразу в чужом компе... + несколько батников с запуском прог с этой флешки. Всё это выполнялось и срабатывало, но никто нигде ничего дописать в эти файлы не мог.(тот же autorun.inf любимый этими вирусами.)
И все онтевирусы ругались, но удалить смог, помойму, один "кашпироффский". Остальные просто паниковали, но уважали выставленные "Права доступа" ;-)
Valek271183
28-08-2016, 14:11
megaloman, я понял почему не получилось перенести папки в корень флешки, это произошло потому что я уже создал там папки с такими же именами, можно ли немного подправить файл с учётом этого?
megaloman
29-08-2016, 14:20
я понял почему не получилось перенести папки в корень флешки, это произошло потому что я уже создал там папки с такими же именами » А зачем Вы это сделали? Понимаю так, что задача усложнилась: в корне флэшки могут содержаться те же по имени файлы, которые имеются в "левой" папке, откуда мы всё переносим в корень. И тут, как мне кажется, решение о том, что оставлять в корне, должны принимать Вы. @echo off
cls
chcp 1251 >nul
Set "File=ntuser1.bak"
Set "Vol=%~d0"
Set "File=%Vol%\%File%
Attrib -S -H "%File%" >nul 2>nul
If Not Exist "%File%" Echo File "%File%" Not Exist &GoTo :Eof
Set "Metka="
FOR /F "usebackq delims=" %%i IN ("%File%") DO Set "Metka=%%~i" &GoTo :Cont
:Cont
If "%Metka%"=="" Echo Not mark in %File% &GoTo :Eof
Attrib -S -H "%Vol%\%Metka%" >nul 2>nul
If Not Exist "%Vol%\%Metka%" Echo Folder "%Vol%\%Metka%" Not Exist &GoTo :Eof
pushd "%Vol%\"
Attrib -S -H /S /D
popd
SetLocal EnableExtensions EnableDelayedExpansion
Echo Move /-Y "%Vol%\%Metka%\*.*" "%Vol%\"
Move /-Y "%Vol%\%Metka%\*.*" "%Vol%\" 2>nul
FOR /F "usebackq delims=" %%i IN (`Dir "%Vol%\%Metka%\*.*" /b /S /A:D 2^>nul`) DO (
Set "TPath=%%i"
Set "TPath=!TPath:\%Metka%=!"
Md "!TPath!" 2>nul
Echo Move /-Y "%%i\*.*" "!TPath!\"
Move /-Y "%%i\*.*" "!TPath!\" 2>nul
)
For /F "Tokens=*" %%i In ('Dir "%Vol%\%Metka%\*.*" /B /S /A:D 2^>nul^|Sort /R') Do RD "%%i" 2>nul
rd "%Vol%\%Metka%" 2>nul
If Exist "%Vol%\%Metka%" Echo ----- &Echo Папка "%Vol%\%Metka%" не пустая & Dir "%Vol%\%Metka%\*.*" /S /B /A:-D &Pause
После работы батника скрытых файлов на флэшке не будет. Из "левой" папки всё перенесётся в корень, кроме файлов, которые уже содержатся в корне флэшки и которые Вы не разрешили перезаписать. Если все файлы из "левой" папки будут перенесены, она будет удалена, в противном случае она останется и на экран будет выдан список неперенесённых файлов.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.