Question: I am copying files from One Windows machine to another using Copy-Item in Powershell script.

But I want to wait till copy completes, Powershell Copy-Item is non-blocking call means, it just triggers copy and returns to script however I want to wait till copy completes.

Is there any way to do it ?

Answer: 
Maybe "copy-item [...] | out-null" will help to wait for completion. 

"Out-null actually deletes output instead of routing it to the PowerShell console, so the script will sit and wait for the content to be deleted before moving on." 

The explanation comes from ITProToday.com: 
<https://www.itprotoday.com/powershell/forcing-powershell-wait-process-complete>
**`Copy-Item` does block.** I just copied a 4.2GB file from a share on our gigabit network to my local machine. My PowerShell prompt hung and didn't return for several minutes.