Windows:把所有子文件夹里的文件移动到母文件夹
需求:批量将每个母文件夹里的所有子文件夹文件,都会移动到对应的母文件夹下面,不会混到别的母文件夹里,遇到重复的名称都会自动重命名
打开 PowerShell,输入:
$top = "D:\Downloads\总文件夹"
Get-ChildItem $top -Directory | ForEach-Object {
$parent = $_.FullName
Get-ChildItem $parent -Recurse -File | ForEach-Object {
$dest = Join-Path $parent $_.Name
$i = 1
while (Test-Path $dest) {
$dest = Join-Path $parent ("{0}_{1}{2}" -f $_.BaseName, $i, $_.Extension)
$i++
}
Move-Item $_.FullName $dest
}
Get-ChildItem $parent -Recurse -Directory | Sort-Object FullName -Descending | Remove-Item
}结果:
a.jpg
a_1.jpg
a_2.jpg
不会覆盖原文件