While some PowerShell cmdlets support progress displays, Copy-Item does not.
For those that do support progress displays, such as
Invoke-WebRequest, the logic is usually reversed. Progress is shown by default, and must be silenced on demand, with$ProgressPreference = 'SilentlyContinue'While PowerShell offers the
Write-Progresscmdlet for creating your own progress displays, this won't help you here, as you cannot track the internal progress of a single object being processed by another command.
However, you can simply call cmd.exes internal copy command from PowerShell, via cmd /c:
cmd /c copy /z C:\Source\File.exe C:\Destination\
Note:
- As Jeroen Mostert points out, consider using
robocopy.exeinstead (which you can equally call from PowerShell) - see his comment on the question for details.
Videos
Yes, sort of - using the psjob commands (requires Powershell 2)
http://richardspowershellblog.wordpress.com/2007/12/03/background-jobs/
Edit: The site has the names wrong. It's 'start-job' instead of 'start-psjob'
See 'help start-job' for the complete (and correct) information.
If you already are running a process and you just want to pause it for a while, I have found out that when I select text in the console, it will pause the running proces until you press enter to copy the selected text.
This is a silly trick of course, but worked for me. I'm just putting it here in case it's useful for someone...