Недавно меня раздражал тот факт, что в Windows так сложно включить «Показывать скрытые файлы» по сравнению с другими ОС (например, Ubuntu). Я искал способ добавить опцию «Переключить скрытые файлы» в контекстное меню Windows 7, но нашел только сторонние опции. Однако я бы предпочел сделать это сам, а не сторонние опции, просто из-за ненужной функциональности.
Я совершенно уверен, что должен быть способ сделать это с помощью редактора реестра, поскольку добавление других вещей в контекстное меню подразумевает это (из того, что я вижу в других руководствах). Однако я пока не нашел ничего, что могло бы это сделать. Я также предполагаю, что мне понадобится использовать какой-то скрипт, который будет вызываться из записи реестра.
Есть ли у кого-нибудь опыт с этим? Это значительно улучшит мой рабочий процесс, так как я довольно часто переключаюсь между желанием увидеть скрытые файлы и желанием скрыть их. Спасибо!
решение1
Далее 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; тогда скрипт выполнит свою работу автоматически.
решение2
Нужный вам раздел реестра находится здесь:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "Скрытый"=dword:0000000x
Установите x на 1, чтобы отобразить скрытые файлы и папки, и установите x на 2, чтобы скрыть их.
Итак, мы создадим два файла, которые нам помогут. Нам нужно где-то их хранить, и я буду использовать папку Documents в своих примерах.
Скрытые файлы и папки - 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\""
Теперь вы можете щелкнуть правой кнопкой мыши по любой папке и выбрать опцию Скрыть или Показать. Вам все равно нужно будет сделать Вид -> Обновить (или нажать [F5]), чтобы увидеть изменения.
Обратите внимание, что здесь используется местоположениемойПапка «Документы». Вам нужно будет внести соответствующие изменения для вашего компьютера.
Мы могли бы сделать это более универсальным и использовать переменную %USERPROFILE%, но это требует использования расширяемой строки, что затрудняет чтение и изменение файла .reg, поэтому я пропустил это в шагах выше. Кроме того, я не знаю, где вы на самом деле хотите хранить файлы, поэтому я просто оставил все простым на данный момент.