Forum Discussion

marco69's avatar
marco69
Copper Contributor
Dec 07, 2022
Solved

.ps1 script: how to loop in a range of dates

Hi all, I have to copy the content of the folders:   C:\mypath\YYYYDDMM\myfolder1   into one folder destination.   And: YYYYMMDD is from 20140101 to 20211231   I'm struggling to find a way t...
  • Harm_Veenstra's avatar
    Harm_Veenstra
    Dec 12, 2022

    Just tested this script, this works:

    foreach ($folder in Get-ChildItem -Path c:\mypath -Directory | Sort-Object Name) {
        try {
            Test-Path "$($folder.fullname)\myfolder1" -ErrorAction Stop | Out-Null
            Copy-Item "$($folder.fullname)\myfolder1" -Recurse -Destination C:\destpath\myfolder1 -Force:$true -Confirm:$false -ErrorAction Stop
            Write-Host ("Processing {0}" -f $folder.fullname) -ForegroundColor Green
        }
        catch {
            Write-Warning ("Folder myfolder1 not found in {0} or not enough permissions" -f $folder.FullName)
        }
    }

     

    Source directory:


    Destination directory:

    It will check permissions and copy if it has permissions and will overwrite if the file is already present, it will show a warning if the folder1 folder was not found in a directory.

     

    You can test it for yourself with a test directory structure 🙂 

     

Resources