我想监视一个文件夹,每次创建特定名称的文件,或者如果文件存在,我想删除它。我想保留 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 文件系统中文件或文件夹的“创建”、“更改”和“删除”事件。它可用于监视一个或多个文件夹,并可修改为在触发这些事件时执行任何操作。
... 但正如 CMasMas 先生所说。不要在没有计划和通知的情况下随意做出此类决定。
此外,这也表明你对 PowerShell 还不熟悉
因此,您确实绝对需要先加强它,YouTube 是您在这方面的好朋友。永远不要用您不完全理解的方法做破坏性行为。永远不要随机运行任何人的代码,无论是谁给您的或您从哪里获得的代码,除非您完全了解使用它的后果。如果您不小心,您可能会破坏您的系统和/或环境。