0%

删除指定创建日期前的文件夹、文件

forfiles 命令

例:forfiles /p "c:\test" /s /m *.log /d -30 /c "cmd /c del @path /q /f"  
删除 c:\test及子目录下 所有log扩展名 修改时间在30天以前的文件  

例:删除 c:\test及子目录下 所有log扩展名 修改时间在30天以前的文件

set SrcDir=E:\software
set DaysAgo=7
forfiles /p %SrcDir% /s /d -%DaysAgo% /c “cmd /c del /f /q /a @path && rd /s /q @path”

例:逻辑盘空间不足10G  

@echo off  
set vol=E  
for /f "tokens=2* delims=:" %%a in ('fsutil volume diskfree %vol%:') do set free=%%a  
set free=%free:~0,-6%  
echo %free%  
if %free% lss 10000 echo 这个逻辑盘空间不足10G  

@path是forfiles命令中/c 参数变量  

默认命令是 "cmd /c echo @file"。下列变量  
可以用在命令字符串中:  
@file    - 返回文件名。  
@fname   - 返回不带扩展名的文件名。  
@ext     - 只返回文件的扩展。  
@path    - 返回文件的完整路径。  
@relpath - 返回文件的相对路径。  
@isdir   - 如果文件类型是目录,返回 "TRUE";如果是文件,返回 "FALSE"。  
@fsize   - 以字节为单位返回文件大小。  
@fdate   - 返回文件上一次修改的日期。  
@ftime   - 返回文件上一次修改的时间。  
*</em>