В последнее время меня беспокоит тот факт, что так трудно включить "Показать скрытые файлы" в Windows по сравнению с другими ОС (т.е. Ubuntu). Я искал способ добавить опцию "Переключить скрытые файлы" в контекстное меню Windows 7, но придумала только сторонние опции. Однако я предпочел бы сделать это сам, а не сторонний вариант, просто для ненужной функциональности.

Я совершенно уверен, что должен быть способ сделать это с помощью редактора реестра, так как это связано с добавлением других вещей в контекстное меню (из того, что я вижу в других руководствах). Однако я пока ничего не нашел. Я также предполагаю, что мне нужно будет использовать какой-то скрипт, который будет вызываться из записи реестра.

У кого-нибудь есть опыт с этим? Это значительно улучшило бы мой рабочий процесс, так как я переключаюсь с желания видеть скрытые файлы и скрывать их довольно часто. Спасибо!

2 ответа2

0

Следующий VBScript должен сделать работу:

option explicit
On Error GoTo 0
Dim sResult: sResult = Wscript.ScriptName                            ''' debugging

Const HKEY_CURRENT_USER = &H80000001

Dim strComputer, strKeyPath, strValName, dwValue, arrValues, objReg, WshShell
arrValues = Array (" unknown", " show hidden files", " hide hidden files" )
strComputer = "."

Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
strValName = "hidden"

objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValName, dwValue

If Not (dwValue = 1 OR dwValue = 2) Then dwValue = 0

sResult = sResult & vbNewLine & CStr( dwValue) & arrValues( dwValue) ''' debugging

dwValue = (dwValue Mod 2) + 1                           ' switch value 1 <--> 2

sResult = sResult & " -> " & CStr( dwValue) & arrValues( dwValue)    ''' debugging

objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValName, dwValue

set WshShell = WScript.CreateObject("WScript.Shell")
    WScript.Sleep 30
    WshShell.SendKeys "{F5}"              ' refresh

Wscript.Echo sResult                                                 ''' debugging
Wscript.Quit

И следующий файл конфигурации реестра добавляет вышеупомянутые функциональные возможности скрипта в контекстное меню правой кнопкой мыши для любого фона папки в проводнике (и для фона рабочего стола).

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\background\shell\Toggle Hidden Files]

[HKEY_CLASSES_ROOT\Directory\background\shell\Toggle Hidden Files\command]
@="C:\\Windows\\System32\\wscript.exe  \"D:\\VB_scripts\\SU\\1088687.vbs\""

Пожалуйста, в приведенном выше файле .reg настройте следующие элементы в соответствии с вашими обстоятельствами:

  • название пункта меню Toggle Hidden Files и
  • полный путь к сценарию D:\\VB_scripts\\SU\\1088687.vbs (обратите внимание, двойная обратная косая черта).

Чтобы проверить правильность:

==> reg query "HKCR\Directory\background\shell\Toggle Hidden Files" /s

HKEY_CLASSES_ROOT\Directory\background\shell\Toggle Hidden Files\command
    (Default)    REG_SZ    C:\Windows\System32\wscript.exe  "D:\VB_scripts\SU\1088687.vbs"

==>

Кроме того, вы можете удалить все строки, содержащие sResult в приведенном выше VBscript; тогда скрипт выполнит работу молча.

0

Ключ реестра, который вы ищете, находится здесь:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Скрытый" = dword:0000000x

Установите x в 1, чтобы показать скрытые файлы и папки, и установите x в 2, чтобы скрыть их.

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

Скрытые файлы и папки - show.reg:

Windows Registry Editor Version 5.00

; Show hidden files & folders

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000001

Скрытые файлы и папки - hide.reg:

Windows Registry Editor Version 5.00

; Hide hidden files & folders

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000002

Теперь вы можете проверить работу этих файлов, нажав на них. Вам нужно будет обновить ([F5]), чтобы изменения вступили в силу.

Далее нам нужно внести изменения в реестр, чтобы добавить опцию щелчка правой кнопкой мыши. Я предполагаю, что мы хотим добавить только опцию правой кнопки мыши в папки. Вот файл .reg, который внесет необходимые изменения:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Folder\shell]

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Hide]
@="Hidden Files - &Hide"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Hide\command]
@="reg import \"C:\\Users\\Jim\\Documents\\Hidden Files & Folders - hide.reg\""

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Show]
@="Hidden Files - &Show"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Show\command]
@="reg import \"C:\\Users\\Jim\\Documents\\Hidden Files & Folders - show.reg\""

Теперь вы можете щелкнуть правой кнопкой мыши любую папку и выбрать опцию Скрыть или Показать. Вам все еще нужно будет сделать View -> Refresh (или нажать [F5]), чтобы увидеть изменения.

Обратите внимание, что это использует местоположение моей папки «Документы». Вам нужно будет внести соответствующие изменения для вашего компьютера.

Мы могли бы сделать это более универсальным и использовать переменную% USERPROFILE%, но для этого требуется, чтобы они использовали расширяемую строку, что делает файл .reg более трудным для чтения и изменения, поэтому я пропустил его в описанных выше шагах. Кроме того, я не знаю, где вы действительно хотите хранить файлы, поэтому я пока оставил это простым.

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