获取要在PowerShell中复制的文件列表
我正在使用PowerShell获取要在PowerShell中复制的文件列表,powershell,copy-item,Powershell,Copy Item,我正在使用PowerShellCopy Item命令将包含文件的目录复制到另一个位置 我想在控制台上显示正在被复制的所有文件,以便了解复制命令的状态。如果您只想在控制台中看到,请使用-verbose开关: $source=ls c:\temp *.* $i=1 $source| %{ [int]$percent = $i / $source.count * 100 Write-Progress -Activity "Copying ... ($percent %)" -statu
Copy Item
命令将包含文件的目录复制到另一个位置
我想在控制台上显示正在被复制的所有文件,以便了解复制命令的状态。如果您只想在控制台中看到,请使用
-verbose
开关:
$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 -verbose
如果要获取文件或目录列表,请执行以下操作:
$files = copy-item -path $from -destination $to -passthru | ?{$_ -is [system.io.fileinfo]}
我建议这样做:
(Copy-Item -Verbose C:\SrcDir\*.* c:\DstDir 4>&1).Message
在这里,消息被发送到输出流/管道,而不是详细的流/管道,因此将更普遍地工作,例如在TFS任务脚本中。这可能很有用-另一种测试项目是否为文件的方法是使用
?{!$\u.PSIsContainer}
。此外,在V3中,您可以执行此操作,$files=将项$from$复制到-verbose 4>&1
“-verbose”工作正常。非常感谢。可惜它不在文档中。-Verbose
报告了大量额外信息,有没有办法告诉它只输出复制文件的名称?这是一个非常好的解决方案,但不是我真正需要的。上述解决方案稍微简单一点。