Pergunta

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 ?

Foi útil?

Solução

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.

Outras dicas

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

It seems like it's non-blocking here for very small files. I'm using:

Start-Sleep -s 3

To wait for the files to be copied. Not an ideal solution but it's what I got so far.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top