web-dev-qa-db-fra.com

Obtenir la liste des fichiers en cours de copie dans PowerShell

J'utilise la commande PowerShell Copy-Item pour copier un répertoire contenant des fichiers vers un autre emplacement.

Je souhaite afficher tous les fichiers en cours de copie sur la console afin de connaître l'état de la commande de copie.

23
Tushar

Si vous voulez seulement voir cela dans la console, utilisez le commutateur -verbose:

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

Si vous souhaitez obtenir une liste de fichiers ou de répertoires:

$files = copy-item -path $from -destination $to -passthru | ?{$_ -is [system.io.fileinfo]}
32
Jackie
$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++
}
4
Loïc MICHEL

Je suggère d'essayer de cette façon: 

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

Ici, les messages de copie sont dirigés vers le flux/pipeline de sortie plutôt que vers le flux/pipeline détaillé et fonctionnent donc plus généralement, comme dans les scripts de tâches TFS.

0
Martin Connell