Получить список файлов, которые копируются в 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.