Forum Discussion
DuaneH
Feb 01, 2022Copper Contributor
Watch Source Folder and Create and Move to Destination Folder
Hi There, Can someone assist with my code below. It wont create the sub directory and move the .zip file to the destination folder. I need the script to watch for new .zip files, create a subfolder ...
- Feb 02, 2022
Changed it a little to this:
$ZipFileSearchFolder = "C:\TESTsearch" $DestionationFolder = "C:\TESTdestination\2022" $Filter = "*.zip" if(-not (Test-Path $DestionationFolder)) { New-Item -Path $DestionationFolder -ItemType Directory } $Watcher = New-Object IO.FileSystemWatcher $ZipFileSearchFolder, $Filter -Property @{ IncludeSubdirectories = $true NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite' } $OnCreated = Register-ObjectEvent $Watcher Created -SourceIdentifier FileCreated -Action { $DayOfYear = (Get-Date).DayOfYear $SourcePath = $Event.SourceEventArgs.FullPath $SourceName = $Event.SourceEventArgs.Name $File = Get-Item $SourcePath if (-not (Test-Path "$($DestionationFolder)\$($DayOfYear)")) { New-Item -Path "$($DestionationFolder)\$($DayOfYear)" -ItemType Directory } $NewName = $File.BaseName+"-"+$DayOfYear+$File.Extension Move-Item -Path $SourcePath -Destination "$($DestionationFolder)\$($DayOfYear)" -Force -Verbose }But Jonathan_Allen has a nice looking solution as well 😉
Feb 02, 2022
Changed it a little to this:
$ZipFileSearchFolder = "C:\TESTsearch"
$DestionationFolder = "C:\TESTdestination\2022"
$Filter = "*.zip"
if(-not (Test-Path $DestionationFolder))
{
New-Item -Path $DestionationFolder -ItemType Directory
}
$Watcher = New-Object IO.FileSystemWatcher $ZipFileSearchFolder, $Filter -Property @{
IncludeSubdirectories = $true
NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}
$OnCreated = Register-ObjectEvent $Watcher Created -SourceIdentifier FileCreated -Action {
$DayOfYear = (Get-Date).DayOfYear
$SourcePath = $Event.SourceEventArgs.FullPath
$SourceName = $Event.SourceEventArgs.Name
$File = Get-Item $SourcePath
if (-not (Test-Path "$($DestionationFolder)\$($DayOfYear)")) {
New-Item -Path "$($DestionationFolder)\$($DayOfYear)" -ItemType Directory
}
$NewName = $File.BaseName+"-"+$DayOfYear+$File.Extension
Move-Item -Path $SourcePath -Destination "$($DestionationFolder)\$($DayOfYear)" -Force -Verbose
}
But Jonathan_Allen has a nice looking solution as well 😉
DuaneH
Feb 02, 2022Copper Contributor
Harm_Veenstra thanks so much that has fixed it, Cheers!