在Powershell中执行多个命令

时间:2016-02-06 00:10:19

标签: powershell

我正在创建一个热门文件夹。进入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 

0 个答案:

没有答案