从文件夹复制文件并搜索特定目录中相同的文件夹名称powershell

时间:2013-03-14 21:46:11

标签: powershell

我甚至不确定这是否可行,但我需要将文件从一个文件夹目录复制到另一个文件夹目录,但目录2的tree结构与目录1不同。这里是一个例子:

Directory1
--folder1
----text1.pdf
----text2.pdf
--folder2
----text3.pdf
----text4.pdf


Directory2
--home1
----folder1
------text1.pdf
------text2.pdf
--home2
----folder2
------text3.pdf
------text4.pdf

文件夹"folder1""folder2"将位于Directory2,但它们可能位于不同的文件夹中。

1 个答案:

答案 0 :(得分:0)

未经测试:

$dirs1 =
get-childitem c:\directory1 -recurse |
 where {$_.psiscontainer} |
 select -ExpandProperty fullname

$dirs2 =
get-childitem c:\directory2 -recurse |
 where {$_.psiscontainer} |
 select -ExpandProperty fullname

 $dir_ht = @{}

 foreach ($dir in $dirs1)
 {
  $root = $dir -replace '.+Directory1',''
  $dir_ht[$dir] = ($dirs2 -match $root)
}

$files =
get-childitem c:\directory1 -recurse |
 where {-not($_.psiscontainer)} |
 select -ExpandProperty fullname

foreach ($file in $files)
 {copy-item -Path $file -Destination $dir_ht[($file | Split-Path -Parent)]}