删除n天前文件
bat吧
全部回复
仅看楼主
level 2
求助,现在想要一个可以定时删除n天前的文件怎么操作
2022年03月26日 19点03分 1
level 9
不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
<# :
cls&echo off&cd /d "%~dp0"
rem 查找并删除修改时间为指定天数以前的文件
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "selffile=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText(\"%~f0\",[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
#3天以前
$ago=-3;
$recurse=$false;
$agodate=(get-date).AddDays($ago).ToString('yyyy-MM-dd');
$selffile=get-item -literal $env:selffile;
$files=@(dir -literal $selffile.Directory.FullName|?{($_.Name -ne $selffile.Name) -and ($_ -is [System.IO.FileInfo])});
if($recurse){$files=@(dir -literal $selffile.Directory.FullName -recurse|?{($_.Name -ne $selffile.Name) -and ($_ -is [System.IO.FileInfo])});}
for($i=0;$i -lt $files.length;$i++){
$d=$files[$i].LastWriteTime.ToString('yyyy-MM-dd');
if($d -le $agodate){'['+$d+']'+$files[$i].FullName;}
}
2022年03月27日 10点03分 2
1