最近,我被一个事实困扰着:与其他操作系统(例如 Ubuntu)相比,在 Windows 中打开“显示隐藏文件”太难了。我一直在寻找一种方法来将“切换隐藏文件”选项添加到 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"
==>
此外,您可以删除上述 VBscript 中包含的所有行sResult
;然后脚本将默默地完成该工作。
答案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 文件更难读取和更改,所以我在上面的步骤中跳过了它。另外,我不知道你真正想把文件存储在哪里,所以我现在只是保持简单。