Получить список файлов, которые копируются в PowerShell

Я использую команду PowerShell Copy-Item для копирования каталога с файлами в другое место.

Я хочу отобразить все файлы на консоли, которые копируются, чтобы я знал статус команды копирования.

4 ответа

Решение

Если вы просто хотите увидеть это в консоли, используйте -verbose переключатель:

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

Если вы хотите получить список файлов или каталогов:

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

Если вы хотите напрямую вывести имена файлов, вы можете сделать это следующим образом:

С путем

      Copy-Item -Path $from -Destination $to –PassThru | ForEach-Object { Write-Host $_.FullName }

Только имя файла

      Copy-Item -Path $from -Destination $to –PassThru | ForEach-Object { Write-Host $_.Name }

Я предлагаю попробовать это так:

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

Здесь сообщения о копировании идут в выходной поток / конвейер, а не в подробный поток / конвейер, и поэтому будут работать более широко, например, в сценариях задач TFS.

Другие вопросы по тегам