复制项目递归,但排除所有子文件夹

时间:2020-05-04 20:19:31

标签: powershell

我正在使用CSV文件来直接复制许多目录和文件。我从此similar question创建了示例。此外,我想选择性地启用递归。有些行我只想复制源目录( 0 )中的文件,而忽略其中的子文件夹。其他人,我想复制所有内容( 1 )。本质上,问题是如何对给定目录内的文件执行Copy-Item。这里的很多答案都与排除特定文件夹有关。

CSV file

尝试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
    }
}

不起作用,将递归的文件夹复制为文件

0 个答案:

没有答案