Get the list of files that are getting copied in PowerShell
Asked Answered
F

4

37

I am using the PowerShell Copy-Item command to copy a directory with files to another location.

I want to display all the files on the console that are getting copied so that I know the status of the copy command.

February answered 11/12, 2012 at 7:38 Comment(1)
This might be useful - #2434633Periderm
R
55

If you just want to see that in console, use the -verbose switch:

copy-item -path $from -destination $to -verbose

If you want to get a list of files or directories:

$files = copy-item -path $from -destination $to -passthru | ?{$_ -is [system.io.fileinfo]}
Raker answered 11/12, 2012 at 10:23 Comment(3)
Another way for testing if an item is a file is to use ? {!$_.PSIsContainer}. Also, in V3 you can do this $files = copy-item $from $to -verbose 4>&1Astrid
"-verbose" works fine. Thank you. Too bad it's not in the documentation.Coenosarc
-Verbose reports a whole lot of extra information, is there a way to tell it to just output the names of the files copied?Unmistakable
S
5
$source=ls c:\temp *.*
$i=1
$source| %{
    [int]$percent = $i / $source.count * 100
    Write-Progress -Activity "Copying ... ($percent %)" -status $_  -PercentComplete $percent -verbose
    copy $_.fullName -Destination c:\test 
    $i++
}
Stridor answered 11/12, 2012 at 8:10 Comment(1)
This is a really good solution but is not what i need really. The above solution is a little more simple.February
V
4

If you want to directly output the filenames, you can do it this way:

With Path

Copy-Item -Path $from -Destination $to –PassThru | ForEach-Object { Write-Host $_.FullName }

FileName Only

Copy-Item -Path $from -Destination $to –PassThru | ForEach-Object { Write-Host $_.Name }
Velure answered 13/12, 2022 at 9:41 Comment(0)
B
2

I suggest to try it this way:

(Copy-Item -Verbose C:\SrcDir\*.* c:\DstDir 4>&1).Message

Here the messages go to the output stream/pipeline rather than the verbose stream/pipeline and so will work more generally such as in TFS task scripts.

Bystander answered 29/3, 2018 at 17:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.