我正在使用CSV文件来直接复制许多目录和文件。我从此similar question创建了示例。此外,我想选择性地启用递归。有些行我只想复制源目录( 0 )中的文件,而忽略其中的子文件夹。其他人,我想复制所有内容( 1 )。本质上,问题是如何对给定目录内的仅文件执行Copy-Item。这里的很多答案都与排除特定文件夹有关。
尝试1
Import-CSV C:\Users\XXX\Desktop\test1.csv | foreach{
If ($_.Recurse -eq 1){
Copy-item -Path $_.Source -Destination $_.Destination -Recurse
} Else {
Get-ChildItem -Path $_.Source -Recurse -File |
Where-Object{ $_.PSIsContainer -eq $False } |
ForEach-Object {
$_ | Copy-Item -Destination $_.Destination -Force
}
}
}
非递归项目似乎什么也没有发生
尝试2
Import-CSV C:\Users\XXX\Desktop\test1.csv | foreach{
If ($_.Recurse -eq 1){
Copy-item -Path $_.Source -Destination $_.Destination -Recurse -Force
} Else {
Get-ChildItem -Path $_.Source -Recurse -Depth 0 | Copy-Item -Destination $_.Destination
}
}
不起作用,将递归的文件夹复制为文件