ProductivityTools.Backup.psm1
function BackupDirectory { param ( [Parameter()] [string] $SourceDirectory, [Parameter()] [string] $DestinationDirectory ) Write-Verbose "[Backup Module][BackupDirectory] Source directory: $SourceDirectory Destination directory: $DestinationDirectory" Robocopy.exe $SourceDirectory $DestinationDirectory /MIR /DCOPY:T /e /copy:DAT /mt } function Backup-Folders { [CmdletBinding()] param ( [Parameter()] [string] $SourceDirectory, [Parameter()] [string] $DestinationDirectory ) Write-Verbose "[Backup Module][Backup-Folders]: Source directory: $SourceDirectory Destination directory: DestinationDirectory" $mainLevelDirectories = Get-ChildItem -Path $SourceDirectory -Directory Write-Output "[Backup Module][Backup-Folders][mainLevelDirectories]:" Write-Output $mainLevelDirectories foreach ($mainLevelDirectory in $mainLevelDirectories) { $fileIndicator=".backup.pt" $diFullrName = $mainLevelDirectory.FullName $dirName = $mainLevelDirectory.Name $backupDir = Test-Path "$diFullrName\$fileIndicator" if ($backupDir) { Write-Verbose "[Backup Module][Backup-Folders] fileIndicator was found in the directory" BackupDirectory -SourceDirectory $diFullrName -DestinationDirectory "$DestinationDirectory\$dirName" } else { Write-Verbose "[Backup Module][Backup-Folders] fileIndicator was not found in the directory" } } } function Backup-FoldersWithMasterConfiguration { [CmdletBinding()] param () $source = Get-MasterConfiguration "BackupSource" $destination = Get-MasterConfiguration "BackupDestination" Write-Verbose "[Backup Module]: Source from MasterConfiguration: $source, Destination from MasterConfiguration: $destination" if ($source -eq $null -or $destination -eq $null) { Write-Error "Master configuration not set" } else { Backup-Folders -SourceDirectory $source -DestinationDirectory $destination } } Export-ModuleMember Backup-Folders Export-ModuleMember Backup-FoldersWithMasterConfiguration #BackupFolders -SourceDirectory "D:\Trash\x1" -DestinationDirectory "D:\Trash\x2" -Verbose #Backup-WithMasterConfiguration -Verbose |