Я пытаюсь исправить имеющийся у меня сценарий PowerShell и добавить в него некоторые дополнительные функции. В настоящее время он работает так, как задумано: когда файл сохраняется в каталоге, он перемещает элемент в новый.
Я просто хочу переписать существующий файл, переименовав его в yyyyMMdd
. Все файлы одинаковы и всегда имеют одинаковое имя / расширение, поэтому добавление этого было бы отличным способом для некоторого управления полу версиями.
$folder = 'C:\scripts\test'
$filter = '*.*' # <-- set this according to your requirements
$destination = 'H:\Office Documents\text_move'
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{
IncludeSubdirectories = $true # <-- set this according to your requirements
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp"
$dirname = [io.path]::GetDirectoryName($folder)
$filename=[io.path]::GetFileNameWithoutExtension($file)
$ext = [io.path]::GetExtension($file)
$newpath = "$destination\$filename\$(get-date -f yyyyMMdd)$ext"
Move-Item $path -Destination $destination -verbose
}
Я понимаю, что мне нужно добавить в строку get-date
, но я не могу себе представить, как я могу понять, как или где добавить это, чтобы заставить это работать так, как я думаю.