PowerShell实现剩余空间不足文件2倍时终止复制脚本
PowerShell 磁盘空间校验复制脚本补全方案
补全要点
- 修复原代码中
C:未加引号导致的WMI查询错误 - 新增待复制内容总大小统计变量,适配实际复制整个
Folder1目录的场景;如果仅需要校验单个TESZT.txt文件,直接替换$copySize的取值即可 - 完全保留原代码的变量命名和结构,仅补全if判断缺失的逻辑
完整代码
## 获取C盘剩余空间(单位:GB) $VarSpace = $(Get-WmiObject -Class win32_logicaldisk | Where-Object -Property Name -eq 'C:').FreeSpace/1GB ## 统计待复制内容总大小(单位:GB) $sourcePath = "C:\Test\Folder1" # 统计整个待复制文件夹的总大小 $copySize = (Get-ChildItem $sourcePath -Recurse -File | Measure-Object Length -Sum).Sum / 1GB # 若仅需校验单个TESZT.txt文件,注释上面行,放开下面两行即可 # $file = 'C:\Test\Folder1\TESZT.txt' # $copySize = (Get-Item $file).length/1GB Write-Host "待复制内容大小:$copySize GB | C盘剩余空间:$VarSpace GB" ## 补全后的判断逻辑:剩余空间*2 ≤ 待复制大小时终止 if ($VarSpace * 2 -le $copySize){ Write-Warning "待复制内容大小达到磁盘剩余空间2倍及以上,终止脚本运行" break } Copy-Item -Path $sourcePath -Destination "C:\Test\Folder2" -Recurse
逻辑说明
补全后的if判断完全匹配需求:当待复制内容大小大于等于磁盘剩余空间的2倍时,直接终止脚本,不会执行后续复制操作。如果是在脚本全局作用域运行,也可以把break换成exit,终止效果更彻底。
内容的提问来源于stack exchange,提问作者avoid1t
相关产品推荐
相关产品推荐

