【问题标题】:Powershell Import CSV with folders/subfolders tree and copy to a new directory without duplicatingPowershell使用文件夹/子文件夹树导入CSV并复制到新目录而不复制
【发布时间】:2018-08-01 00:03:34
【问题描述】:

所以我有一个csv,例如:

Source
C:\Users\barcalac\Desktop\SOURCE\Finance
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc\Doc1.docx
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc\Doc2.docx
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc\Doc3.docx
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc\Doc4.docx
C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc\Doc5.docx

当尝试使用任何复制命令进行复制时,它当然是逐行复制并将每个路径/文件复制到新目录。我的问题是如何让它变得足够聪明,只复制顶级文件夹并跳过该顶级文件夹下面的行中的文件夹/文件。

上面的例子应该重新创建

c:\users\barcalac\desktop\source\finance

d:\users\barcalac\desktop\target\finance

无需一一复制所有行,创建财务文件夹中已有内容的副本。

【问题讨论】:

    标签: powershell robocopy


    【解决方案1】:

    假设您正在递归地复制每个路径。 我确信它可以以更智能的方式完成,但这应该可行。
    要删除文档中任何其他路径中包含的路径,我会这样做

        $a=@"
    C:\Users\barcalac\Desktop\SOURCE\Finance
    C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files
    C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files
    C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc
    C:\Users\barcalac\Desktop\SOURCE\Finance\BMc's Files\2001 Files\Misc\Doc1.docx
    C:\users\fayo\1
    c:\users\fayo\2
    c:\users\fayo\2\doc.doc
    "@|ConvertFrom-csv -Header path
    
    foreach ($i in (0..($a.count-1))) 
    {
        foreach ($j in (0..($a.count-1))) {
                if ($a[$j].path -like  "$($a[$i].path)*")
                     {$a[$j]=$a[$i]}  
                }
    }
    
    $a|select -Unique -Property path 
    

    上面的结果是

    path                                    
    ----                                    
    C:\Users\barcalac\Desktop\SOURCE\Finance
    C:\users\fayo\1                         
    c:\users\fayo\2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多