忽略 Windows 7/8/10 中的最近项目的目录?

忽略 Windows 7/8/10 中的最近项目的目录?

有没有办法告诉 Windows 7/8/10 在跟踪文件夹的最近项目时完全忽略该文件夹?不只是单个程序,而是任何使用给定目录中的文件的程序。跳转列表似乎无法解决这个问题。

我必须相信存在这样的机制,因为许多临时文件等没有记录在最近的项目列表中。

那么操作系统在哪里跟踪哪些内容不应包含在最近项目列表中?是 NTFS 属性吗?还是涉及策略?

我特别不想完全禁用最近的项目跟踪。 大多数情况下,这是一个有用的功能。但对于某些目录,我更希望避免最近列表被来自某些目录的列表填满。

答案1

我对此进行了一些研究,并编写了一个 powershell 脚本来编辑最近的项目。这只处理快捷方式链接(*.lnk 文件)。它不处理搜索结果或可能出现在最近项目中的其他内容。但对于我的目的来说,这已经足够好了。

# cleanRecent.ps1
# 
# Searches through the target path names of files in the 'Recent Items' special folder
# if the path name contains the matchText string then it deletes the link (NOT THE TARGET FILE)
#
# Handy to keep clutter or problematic folders out of the recent folder list
#
# To make it happen automagically set up a Task Scheduler job to trigger on user logon situations.  
#

#
# adding ability to purge Run menu items also
# stored in HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
#

# TO USE: edit the contents of the matchArray to whatever you're trying to remove

$matchArray = "somefolder","someotherfolder"

$recentFolder = [Environment]::GetFolderPath("Recent")

# create a COM shell to handle shortcut links
$Shell = New-Object -ComObject WScript.Shell

ForEach ($recentFile in Get-Childitem -recurse $recentFolder -Include *.lnk) {

        $recentObject = $Shell.CreateShortcut($recentFile)
        $recentPath = $recentObject.TargetPath

        ForEach ($matchArrayText in $matchArray) {
            if ($recentPath.Contains($matchArrayText)) {
                write-output $recentObject.FullName
                Remove-Item -LiteralPath $recentObject.FullName -force
            }
        }
}

相关内容