本帖最后由 5i365 于 2022-2-13 09:31 编辑
回复 13# for_flr
我把根据文件DD移动到OK文件夹的功能去掉了, 只留下了最开始,那个复杂的, 根据文件夹数量移动文件夹的功能,
问题就是, 在不满足移动条件下, 仍会把源文件夹中的yes改名, 应该是先移过去, 然后再改名, 但文件名又是原来的文件夹的父目录名
感觉问题应该出在红色字的地方, 尝试加在后面蓝字的地方也不行, 不知道怎样改粉色地方的代码
#@&cls&powershell "type '%~0'|out-string|iex"&pause&exit
cd Task3
$num = 5
[System.Collections.ArrayList]$src = @()
$dir = dir -filter *. | where{
(dir $_ -name) -contains "OK" -and (dir $_ -name) -notcontains "NO"
}
$src += $dir | foreach{
dir $_ -exclude OK |
where{ (dir $_ -n) -contains "YES" }
}
$des += dir -filter *. | where{
(dir $_ -name) -contains "OK" -and (dir $_ -name) -contains "NO"
}
$src | foreach{
if (test-path $_\YES)
{
ren $_\YES $_.parent.name
}
}
$des | foreach{
for ($i = (dir $_).count; $i -lt $num; $i++)
{
if ($src.count -gt 0)
{
move $src[0] $_
#ren $_\YES $_.parent.name
$src.removeat(0)
}
}
} |