1

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

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

4 ответа4

4

Я думаю, что attrib -H /S /D должен добиться цели.

1

Вы также можете попробовать этот простой сценарий 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.

1

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

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

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

0

У меня была та же проблема, и я нашел решение для Stackoverflow (вы можете взглянуть на https://stackoverflow.com/questions/8095002/windows-batch-script-to-unhide-files-hidden-by-virus ).

Этот код сделает видимыми только каталоги.

Итак, создайте BAT-файл (откройте Блокнот, скопируйте + вставьте приведенный ниже код и переименуйте файл в fix.bat), который будет содержать:

echo "Enter Drive letter" 
set /p driveletter=

attrib -s -h -a /s /d  %driveletter%:\*.*

Кроме того, я немного изменил код, предоставленный Mr. Xymon, чтобы избежать появления Recycled Bin и избежать ошибки Windows Permission Error.

Вот код:

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

Ура!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .