gpt4 book ai didi

powershell - 使用 PowerShell 在更改时复制文件

转载 作者:行者123 更新时间:2023-12-01 01:04:12 24 4
gpt4 key购买 nike

我正在使用 FileSystemWatcher通知文件更改,然后创建该文件的副本:

$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"
}

因此,如果 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

最佳答案

改变这个:

$(watcher.Path)backup-$datestamp"


$($sender.Path)backup-$datestamp"

注意 $()里面的变量仍然需要一个 $ .和 $sender自动变量将始终包含生成事件的对象。

关于powershell - 使用 PowerShell 在更改时复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com