You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现将大于2GB的文件夹移动到指定目录?

问题排查与修正方案

原脚本的核心问题

  • 错误替换了$fso的赋值:原本用来创建FileSystemObject对象的行被改成了Move-Item,这不仅导致$fso不是合法的COM对象,而且Move-Item本身缺少-Path参数的具体值,语法完全错误。
  • 缺少实际的移动操作:原脚本只完成了大于2GB文件夹的筛选,没有对筛选结果执行移动动作。

修正后的脚本

$threshold = 2GB
# 恢复创建FileSystemObject对象,用于计算文件夹总大小
$fso = New-Object -COM 'Scripting.FileSystemObject'
# 遍历源目录下的所有子文件夹,筛选出总大小超过阈值的,然后执行移动
Get-ChildItem 'C:\Source\' -Recurse -Directory | Where-Object {
    $fso.GetFolder($_.FullName).Size -gt $threshold
} | ForEach-Object {
    # 执行移动操作,-Force参数用于覆盖目标已存在的同名文件夹(可选,根据需求调整)
    Move-Item -Path $_.FullName -Destination "C:\Dest\" -Force
    # 可选:输出移动日志
    Write-Host "已移动文件夹: $($_.FullName)"
}

补充说明

  • 如果不需要覆盖目标文件夹,去掉-Force参数即可,此时若目标存在同名文件夹会报错。
  • 若要避免移动过程中出现异常中断,可以添加-ErrorAction SilentlyContinue参数忽略错误,或者用try/catch块处理异常。

内容的提问来源于stack exchange,提问作者miodf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:07:49