我有一堆包含多个不同类型文件的文件夹。
我需要一种仅将那些文件夹移动到新目录的方法,在该目录中有两个具有相同名称的文件(但文件扩展名不同(仅.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