Mar*_*man 4 powershell filesystemwatcher copy-item
我使用 aFileSystemWatcher来通知文件更改,然后创建该文件的副本:
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Orders\"
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true
$changed = Register-ObjectEvent $watcher "Changed" -Action {
write-host "Changed: $($eventArgs.FullPath)"
$datestamp = get-date -uformat "%Y%m%d%H%M%S"
write-host $datestamp
copy-item $eventArgs.FullPath "$(watcher.Path)backup-$datestamp"
}
Run Code Online (Sandbox Code Playgroud)
因此,如果C:\Orders\orders.xml发生更改,则C:\Orders\backup-20131125121004应该创建。但是,这不起作用,并且不会产生错误。通知确实有效,只是副本不起作用:
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
PS C:\Documents and Settings\sladministrator\Desktop> .\WatchBizSyncOrders.ps1
PS C:\Documents and Settings\sladministrator\Desktop> Changed: C:\Orders\New Text Document.txt
20131125100821
Run Code Online (Sandbox Code Playgroud)
改变这个:
$(watcher.Path)backup-$datestamp"
Run Code Online (Sandbox Code Playgroud)
到
$($sender.Path)backup-$datestamp"
Run Code Online (Sandbox Code Playgroud)
请注意,内部的变量$()仍然需要一个$. 并且$sender自动变量将始终包含生成事件的对象。
| 归档时间: |
|
| 查看次数: |
1893 次 |
| 最近记录: |