Windows: Как отключить скрытый атрибут для всех файлов и каталогов на диске?

18655
Pete Alvin

Моя Windows 7 была недавно заражена вирусом system-fix.com, и он скрыл все мои файлы и каталоги. Я считаю, что удалил вирус, но все еще не могу найти много файлов и программ.

Существует ли в Windows единственный инструмент командной строки, который может рекурсивно отключить скрытый атрибут для всего диска?

1
Если на вашем компьютере был вирус, единственная действительно безопасная вещь - сделать резервную копию ваших файлов и приложений и переустановить вашу операционную систему со свежего носителя. Joel Coehoorn 12 лет назад 2
SuperUser уже имеет [«Компьютер заражен вирусом или вредоносным ПО, что мне теперь делать?»] (Http://superuser.com/questions/100360/), обратите внимание. JdeBP 12 лет назад 1

4 ответа на вопрос

4
joeqwerty

Я думаю, attrib -H /S /Dдолжен сделать свое дело.

1
Andrew Lambert

Unhide разработан специально для устранения этого симптома.

При запуске он отобразит (-H) все файлы + H на фиксированных дисках вашего компьютера. Однако он не будет отображать файлы, которые также имеют атрибут + S.

Обратитесь к Руководству по удалению исправления системы для получения дополнительной информации.

1
Mr. Xymon

Вы также можете попробовать этот простой сценарий Windows для отображения файлов и каталогов. Он только предлагает пользователю ввести букву диска, затем выполняет VBScript.

Запустите свой блокнот, скопируйте приведенный ниже код и сохраните его как unhide.vbs.

pc_drive = InputBox("Input drive letter" & vbnewline & "example: E:\", "Drive","E:\") ryt = Right(pc_drive,2) If Len(pc_drive) <> 3 or ryt <> ":\" Then Call MsgBox("Either your input was invalid or the drive you specified doesn'texist",vbokonly,"Error") End If  Set FSO = CreateObject("Scripting.FileSystemObject") ShowSubfolders FSO.GetFolder(pc_drive)  Sub ShowSubFolders(Folder) str ="" For Each Subfolder in Folder.SubFolders str =str & " " & Subfolder.Path subFolder.Attributes = 0 ShowSubFolders Subfolder Next End Sub 

Вы можете сохранить его на USB-накопителе для большей доступности. Инструкцию по его использованию можно найти по ссылке ниже.

Скрипт Windows для скрытия папок, скрытых вирусом-червем

РЕДАКТИРОВАТЬ: предоставил код VBScript.

Хотя это может теоретически ответить на вопрос, [было бы предпочтительнее] (http://meta.stackexchange.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. Sathya 11 лет назад 1
Я только что отредактировал свой ответ. Я ценю ваше предложение. Mr. Xymon 11 лет назад 0
Спасибо, что нашли время и добавили контент. Причина, по которой мы просим это сделать, состоит в том, чтобы предотвратить потерю контента из-за гниения ссылок. Приветствия. Sathya 11 лет назад 0
0
Cristian Ciocău

I had the same problem and I found a solution on Stackoverflow (you can take a look at https://stackoverflow.com/questions/8095002/windows-batch-script-to-unhide-files-hidden-by-virus ).

This code will make visible only the directories.

So, create a BAT file ( open the Notepad, copy + paste the below code and rename the file to fix.bat) which will contains:

echo "Enter Drive letter" set /p driveletter= attrib -s -h -a /s /d %driveletter%:\*.* 

Also, I modified a bit the code provided by Mr. Xymon to avoid make Recycled Bin visible and to avoid Windows Permission Error.

Here is the code:

Sub ShowSubFolders(CurrentFolder) ' Skip some folders to avoid Windows Error Message If (CurrentFolder.Name <> "RECYCLER") and (CurrentFolder.Name <> "System Volume Information") and (CurrentFolder.Name <> "$RECYCLER.BIN") and (CurrentFolder.Name <> "Config.Msi") Then For Each Subfolder in CurrentFolder.Subfolders If (Subfolder.Name <> "RECYCLER") and (Subfolder.Name <> "System Volume Information") and (Subfolder.Name <> "$RECYCLER.BIN") and (Subfolder.Name <> "Config.Msi") Then Subfolder.Attributes = Subfolder.Attributes AND 0 End If ShowSubFolders(Subfolder) Next End If End Sub ' Main program pc_drive = InputBox("Input drive letter." & vbnewline & vbnewline & "Example: G:\", "Drive","G:\") ryt = Right(pc_drive,2) If Len(pc_drive) = 3 or ryt = ":\" Then Set FSO = CreateObject("Scripting.FileSystemObject") ' Check if the path exists or if the drive is ready If FSO.FolderExists(pc_drive) Then Call MsgBox("Our script will start after you click OK. Please wait the Finish Message!!!",vbokonly,"Starting...") ' TO DO: Add a progress bar here ShowSubfolders(FSO.GetFolder(pc_drive)) Call MsgBox("Done!",vbokonly,"Finished") Else Call MsgBox("Either your input was invalid or the drive you specified doesn't exist.",vbokonly,"Error") End If End If 

Cheers!