フォルダを監視し、存在する/作成されたファイルを削除する

フォルダを監視し、存在する/作成されたファイルを削除する

フォルダーを監視し、特定の名前のファイルが作成されるたびに、または単に存在する場合は、それを削除したいと思います。他のソフトウェア/パッケージをインストールしなくても済むように、Windows 7 のネイティブのままにしておきたいです。Powershell と FileSystemWatcher でこれができると思いますが、どちらも経験がありません。

具体的な用途としては、私の雇用主が定期的に (約 90 分) オフィスの PC の「C:\Windows\System32\oobe\info\backgrounds」フォルダに ping を送信し、「backgroundDefault.jpg」という広告付きのファイルを追加します。このファイルを削除して、一般的な Windows のデフォルト ファイルを保持したいと思います。Windows は名前に解像度が含まれるファイルを優先的に読み込むと理解しているため、「background1920x1080.jpg」というファイルを作成しようとしましたが、1920x1080 はこれらの認識された解像度の 1 つではないようです。

どのような助けでも大歓迎です。

答え1

ファイル システム ウォッチャーを使用すると、ファイルとフォルダーを監視してアクションを実行できます。これは一般的な機能であり、ヘルプ ファイルや、Web 上の多数の例や事前構築されたスクリプトに示されています...

検索: '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 ギャラリーにも既に掲載されています...

Powershell ファイルシステムウォッチャー

このスクリプトは、.net FileSystemWatcher クラスを使用して、NTFS ファイルシステム内のファイルまたはフォルダーの「作成」、「変更」、および「削除」イベントをサブスクライブします。これは、フォルダーを監視するために使用でき、これらのイベントがトリガーされたときに任意のアクションを実行するように変更できます。

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

...しかし、CMasMas 氏が言ったことに同感です。計画や通知なしに、こうした種類の決定を無作為に行わないでください。

また、これはあなたがPowerShell全般に不慣れであることを示しています

ですから、まずは絶対に知識を蓄える必要があります。そのためには YouTube が役に立ちます。完全に理解していない方法で破壊的な行動を決してとらないでください。コードの使用による影響を完全に理解していない限り、誰があなたにコードを提供したか、どこから入手したかに関係なく、誰かのコードをランダムに実行しないでください。注意しないと、システムや環境を破壊する可能性があります。

関連情報