Windows Server 2008 R2中的批处理脚本

我需要一个批处理批处理脚本来检查文件夹的大小.如果它达到某个X GB,例如:10 GB,它应该删除其中的所有子目录或文件.

我知道在Linux中做这件事很简单.但我对Windows服务器和编写批处理脚本非常不熟悉.

目前我正在运行一个脚本,每次运行时删除文件/文件夹,就像这样

set folder="C:\myfolder"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)

但我想删除文件/文件夹,只要它达到一些GB大小,例如10或12 GB.

最佳答案 在Windows服务器上使用powershell.然后找到文件夹的大小:

$size = (Get-ChildItem $FolderName -Recurse | Measure-Object -Property Length -Sum).Sum
if ($size > $Limit) {
    Remove-Item $FolderName -Recurse -Whatif
}

有一个非常好的解释,为什么PowerShell可能比一组unix工具更有用,作为Is PowerShell ready to replace my Cygwin shell on Windows?的最佳答案

-Whatif使Remove-Item安全,因为添加-WhatIf只报告执行时命令会执行的操作.

点赞