我正在创建一个热门文件夹。进入hot文件夹的文件名将以* .pdf.tif(不正确)或* .pdf.k.tif(正确)结尾。如果文件使用命名约定* .pdf.k.tif进入,我想将其移动到目标文件夹。如果文件使用* .pdf.tif命名约定,我想将其重命名为* .pdf.k.tif命名约定,然后将其移动到目标文件夹。另请注意,无论命名约定如何,源文件夹和目标文件夹都是相同的。
下面的脚本可以单独解决这两个问题。如果文件名称正确,则会移动到目标。如果文件名称不正确,则脚本会正确重命名,但在重命名后不会移动文件。
如何重命名文件,它仍然会移动?
$where_to_move_folder = "C:\Users\jonsl\Desktop\Jobs-In"
$createdAction =
{
$path = $Event.SourceEventArgs.FullPath
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Dir $folder_to_watch *.tif | rename-item -newname { $_.name -replace ".pdf.tif",".pdf.k.tif"};
Move-Item -path $($folder_to_watch + "\" + $name) -destination $where_to_move_folder -force
}
$filter = '*.tif'
$fsw = New-Object IO.FileSystemWatcher
$fsw.Path = $folder_to_watch
$fsw.Filter = $filter
$fsw.IncludeSubdirectories = $true
$fsw.NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
Register-ObjectEvent $fsw -EventName Created -SourceIdentifier FileCreated -Action $createdAction
$fsw.EnableRaisingEvents = $true