移动子文件夹,保持文件夹结构

时间:2019-05-08 11:52:02

标签: powershell-v3.0

我有一堆包含多个不同类型文件的文件夹。

我需要一种仅将那些文件夹移动到新目录的方法,在该目录中有两个具有相同名称的文件(但文件扩展名不同(仅.ini和.txt))。移动的子文件夹应保持其文件夹结构。

示例:

Source

c:\music\111\1.ini
c:\music\111\1.txt
c:\music\111\1.exe

c:\music\222\333\1.ini
c:\music\222\333\1.txt

c:\music\222\444\1.ini
c:\music\222\444\1.exe

目的地D:应为:

d:\music\111\1.ini
d:\music\111\1.txt
d:\music\111\1.exe

d:\music\222\333\1.ini
d:\music\222\333\1.txt

并在源文件夹中:

c:\music\222\444\1.ini
c:\music\222\444\1.exe

我尝试过:

$workingDirectory = "c:\music"
$extensions =@(".ini", ".txt")
$Directories = Get-ChildItem -Path $workingDirectory -Recurse -Depth 1 -Directory
foreach($Directory in $Directories)

{$Files = Get-ChildItem -Path $Directory.FullName -File | Where{$_.Extension -in $extensions} if(($Files.Count -eq 2) -and ($Files[0].BaseName -eq $Files[1].BaseName))
 {Move-Item $Directory.FullName -Destination d:\music}}

此代码将文件夹和子文件夹移动到d :,但丢失了原始的文件夹结构:

d:\music\111\1.ini
d:\music\111\1.txt
d:\music\111\1.exe

d:\music\333\1.ini
d:\music\333\1.txt

0 个答案:

没有答案