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.
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.
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]}
? {!$_.PSIsContainer}
. Also, in V3 you can do this $files = copy-item $from $to -verbose 4>&1
–
Astrid -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 $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++
}
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 }
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.
© 2022 - 2024 — McMap. All rights reserved.