ラップトップで 10 秒ごとにファイルを削除/書き込みするクライアントがあります。また、ファイルが変更されるたびにネットワーク上の場所にファイルをコピーする Powershell スクリプトもあります。
ここで問題が発生します。リモート ネットワークの場所にあるファイルの 1 つまたは 2 つが削除されることがよくあります。しかし、スクリプトには、ファイルを削除することになっているものは何もなく、コピーするだけです。
なぜこれが起こるのですか?以下のスクリプトを参照してください。
$block = {
function CreateCopyFile
{
param ($message, $event)
# function to call when event is raised
# do a robocopy or whatever
$path = $Event.SourceEventArgs.FullPath
$targetpath = $targetFolder + "/" + $Event.SourceEventArgs.Name
Copy-Item $path $targetFolder
}
$watchedFolder = "C:\Users\test\Documents\folder"
$targetFolder = "\\TRICASTER-MINI\DataLink Watch Folder"
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $watchedFolder
Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier File.Created -Action { CreateCopyFile "Created" $event }
Register-ObjectEvent -InputObject $watcher -EventName Changed -SourceIdentifier File.Changed -Action { CreateCopyFile "Changed" $event }
}
$encodedBlock = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($block))
Start-Process PowerShell.exe -verb Runas -argumentlist '-WindowStyle Hidden', '-NoExit', '-EncodedCommand', $encodedBlock