1

我有一个客户端每 10 秒在我的笔记本电脑上删除/写入文件。我还有一个 Powershell 脚本,它应该在文件更改时将其复制到网络位置。

现在问题来了:有时,很多时候,远程网络位置上的一两个文件会被删除。但我在脚本中没有任何内容应该删除任何文件,只有复制。

怎么会这样?请参阅下面的脚本:

$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
4

0 回答 0