获取要在PowerShell中复制的文件的列表

mwg9r5ms  于 2023-01-02  发布在  Shell
关注(0)|答案(4)|浏览(114)

我正在使用PowerShell Copy-Item命令将包含文件的目录复制到另一个位置。
我希望显示控制台上正在复制的所有文件,以便了解复制命令的状态。

ubof19bj

ubof19bj1#

如果您只想在控制台中看到它,请使用-verbose开关:

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

如果要获取文件或目录的列表:

$files = copy-item -path $from -destination $to -passthru | ?{$_ -is [system.io.fileinfo]}
mxg2im7a

mxg2im7a2#

$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++
}
vlf7wbxs

vlf7wbxs3#

我建议这样试试:

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

在这里,消息转到输出流/管道,而不是冗长的流/管道,因此将更普遍地工作,例如在TFS任务脚本中。

oxiaedzo

oxiaedzo4#

如果你想直接输出文件名,你可以这样做:

带路径

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

仅限文件名

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

相关问题