【问题标题】:Uncheck "Show hidden files" in Folder Options with PowerShell使用 PowerShell 在文件夹选项中取消选中“显示隐藏文件”
【发布时间】:2022-08-20 01:29:57
【问题描述】:

我正在尝试编写一个脚本来关闭 Windows 资源管理器文件夹选项“显示隐藏的文件、文件夹和驱动器”

我跟着这个线程: Toggle \"show hidden files and folders with Powershell

最佳答案中的代码似乎更改了注册表项,但实际的文件夹选项并没有改变。隐藏的文件也仍然可见。

这是我的代码:

$Path = \'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\'
Set-ItemProperty -Path $Path -Name Hidden -Value 1

$Shell = New-Object -ComObject Shell.Application
# For each one of the open windows, refresh it.
$Shell.Windows() | ForEach-Object { $_.Refresh() }

我知道注册表值正在更改,因为我可以检查 Hidden 是否正在更改:

Get-ItemProperty -Path $Path -Name Hidden
  • 投票最多的答案是“注意,如果您没有打开任何资源管理器窗口,这将在您在资源管理器窗口中按 F5 之前不会生效。\”您这样做了吗?您是否尝试过重新启动、注销并重新打开,或者以其他方式退出并重新启动 Explorer?

标签: powershell registry microsoft-file-explorer


【解决方案1】:

您可能需要重新启动 Explorer.exe 以获取更改。

如果您将stop-process -name explorer –force 添加到脚本的末尾,它会接受更改吗?

【讨论】:

  • 这行得通。我之前尝试过使用其他代码来执行此操作,但没有收到更改。谢谢!
【解决方案2】:

我不知道如何在 PowerShell 中执行此操作,但在 VBScript 中我使用了我开发的这个解决方案。该解决方案适用于 Windows 10 和 11,并且可以使用任何语言。

代码:

With CreateObject("WScript.Shell")
    .RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden", 1, "REG_DWORD"

    .RegWrite "HKCU\SOFTWARE\Classes\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\Shell\{#}\ExplorerCommandHandler", .RegRead( _
        "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\Windows.ShowHiddenFiles\ExplorerCommandHandler"), "REG_SZ"

    CreateObject("Shell.Application").Namespace(0).ParseName("Shell:RecycleBinFolder").InvokeVerb("{#}")

    .Run("Reg.exe Delete HKCU\SOFTWARE\Classes\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\Shell\{#} /F"), 0, True
End With

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多