监视文件夹并删除存在或创建的文件

监视文件夹并删除存在或创建的文件

我想监视一个文件夹,每次创建特定名称的文件,或者如果文件存在,我想删除它。我想保留 Windows 7 的原生功能,以避免必须安装其他软件/软件包。我相信 Powershell 和 FileSystemWatcher 可以做到这一点,但我对它们都没有经验。

具体应用是,我的雇主定期(约 90 分钟)ping 我办公室电脑上的文件夹“C:\Windows\System32\oobe\info\backgrounds”,并添加“backgroundDefault.jpg”,并在上面放一些广告。我想删除此文件以保留通用的 Windows 默认文件。我尝试创建一个名为“background1920x1080.jpg”的文件,因为我知道 Windows 会优先加载名称中带有分辨率的文件,但似乎 1920x1080 不是这些可识别的分辨率之一。

任何帮助深表感谢。

答案1

您可以使用文件系统观察器来监视文件和文件夹并对其采取行动,这是很常见的事情,并在帮助文件和网络上的许多示例和预建脚本中显示...

搜索:“powershell 文件系统观察器”

文件系统观察者类 https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8

使用 PowerShell 跟踪文件夹的更改

$FileSystemWatcher = New-Object System.IO.FileSystemWatcher
$FileSystemWatcher | Get-Member -Type Properties, Event 

$FileSystemWatcher.Path = "C:\Users\proxb\Desktop\DropBox"

Register-ObjectEvent -InputObject $FileSystemWatcher  -EventName Created  -Action {

    $Object = "{0} was  {1} at {2}" -f $Event.SourceEventArgs.FullPath,
    $Event.SourceEventArgs.ChangeType,
    $Event.TimeGenerated

    $WriteHostParams = @{
        ForegroundColor = 'Green'
        BackgroundColor = 'Black'
        Object          = $Object
    }
    Write-Host @WriteHostParams
} 

https://mcpmag.com/articles/2015/09/24/changes-to-a-folder-using-powershell.aspx

从 PowerShell 使用 FileSystemWatcher http://www.mobzystems.com/code/using-a-filesystemwatcher-from-powershell

…甚至有关该主题的视频……

https://www.youtube.com/results?search_query=powershell+file+system+watcher

... 以及已在 MS TechNet 和 MS PowerShell Gallery 中...

Powershell 文件系统观察器

该脚本使用 .net FileSystemWatcher 类订阅 NTFS 文件系统中文件或文件夹的“创建”、“更改”和“删除”事件。它可用于监视一个或多个文件夹,并可修改为在触发这些事件时执行任何操作。

https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b/file/42206/1/FileSystemWatcher.ps1

... 但正如 CMasMas 先生所说。不要在没有计划和通知的情况下随意做出此类决定。

此外,这也表明你对 PowerShell 还不熟悉

因此,您确实绝对需要先加强它,YouTube 是您在这方面的好朋友。永远不要用您不完全理解的方法做破坏性行为。永远不要随机运行任何人的代码,无论是谁给您的或您从哪里获得的代码,除非您完全了解使用它的后果。如果您不小心,您可能会破坏您的系统和/或环境。

相关内容