0

I am trying to copy files with powershell.

$datestamp = (Get-Date).ToString("yyyyMMdd")
    Copy-Item -Path \\User\LS\ADMIN\HW\DATA\Payroll\$datestamp\*.txt -Destination C:\Users\User1\Desktop\New folder

The files that I am trying to copy are txt type and path for this and files are located two folders down from $datestamp. I've tried with this code and its not copying the files to path that I wanted. Is there any ways to fix this code to work?

ted
  • 49
  • 5

1 Answers1

2

What you are after is a loop. This will cycle through all *.txt files in the location and copy them as requested.

$datestamp = (Get-Date).ToString("yyyyMMdd")
$Files = Get-ChildItem -Path "\\User\LS\ADMIN\HW\DATA\Payroll\$datestamp\" -Filter "*.txt"
Foreach($File in $Files) {
    Copy-Item -Path $File.FullName -Destination "C:\Users\User1\Desktop\New folder\"
}

A one liner (piped) version would look like this:

Get-ChildItem 
    -Path "\\User\LS\ADMIN\HW\DATA\Payroll\$((Get-Date).ToString("yyyyMMdd"))\" 
    -Filter "*.txt" `
    | % {
        Copy-Item 
            -Path $_.FullName 
            -Destination "C:\Users\User1\Desktop\New folder\"
    }

All new lines can be removed from the sample, did it this way for formatting otherwise it appears like this.

Get-ChildItem -Path "\\User\LS\ADMIN\HW\DATA\Payroll\$((Get-Date).ToString("yyyyMMdd"))\" -Filter "*.txt" | % {Copy-Item -Path $_.FullName -Destination "C:\Users\User1\Desktop\New folder\"}
Drew
  • 3,814
  • 2
  • 9
  • 28