|
|
本帖最后由 老师傅 于 2026-3-2 02:14 编辑
在"备份文件夹(压缩|复制|移动)"任务运行后无法移动某些文件和子文件夹
下面是ai写的解决方案,能完美移动文件夹里面的所有东西,效果和电脑的剪切一样,你可以根据下面代码的启发来修改软件
#PowerShell代码
$src = "D:\源文件"
$dst = "F:\目标文件"
# 确保目标目录存在
if (-not (Test-Path $dst)) { New-Item -Path $dst -ItemType Directory -Force | Out-Null }
# 使用 robocopy 将源目录下的所有文件与子目录移动到目标
# /MOVE -> 复制并删除源文件与目录,/E -> 包含子目录(包括空目录)
# /R:3 /W:5 -> 失败重试 3 次,每次等待 5 秒
# /MT:8 -> 多线程(可提升速度)
robocopy $src $dst *.* /MOVE /E /R:3 /W:5 /MT:8
$rc = $LASTEXITCODE
# robocopy 返回码小于8视为成功(微软推荐的判断方式)
if ($rc -lt 8) {
# 删除源目录下所有残留(文件与子文件夹),但保留源根目录本身
try {
Get-ChildItem -Path $src -Force | Remove-Item -Recurse -Force -ErrorAction Stop
Write-Host "移动完成,源目录内容已清空。"
} catch {
Write-Host "移动成功,但删除源残留时发生错误: $($_.Exception.Message)"
}
} else {
Write-Host "robocopy 失败,退出码:$rc 。请检查目标盘空间/权限或查看 robocopy 输出以定位问题。"
exit $rc
}
|
|