删除早于指定文件的所有文件

时间:2017-05-30 14:36:06

标签: powershell

我想删除所有上次写入日期早于当前文件的最后写入日期的txt扩展名文件(00007.txt是当前文件),但还无法找到方法

$a = (get-item C:\Users\Jimmy\Desktop\test\*.txt).lastwritetime

$b = (get-item C:\Users\Jimmy\Desktop\test\00007.txt).lastwritetime


while ($a[$i] -lt $b)
{
$i++
remove-item $a
}

2 个答案:

答案 0 :(得分:3)

我只是使用Get-ChildItem枚举项目,使用Where-Object过滤,并直接管道到Remove-Item:

$b = (get-item C:\Users\Jimmy\Desktop\test\00007.txt).lastwritetime

Get-ChildItem -Path C:\Users\Jimmy\Desktop\test\*.txt | Where-Object {
    $_.LastWriteTime -lt $b
} | Remove-Item;

答案 1 :(得分:0)

短版

$dt = (gi "C:\Users\Jimmy\Desktop\test\00007.txt").lastwritetime
gci "C:\Users\Jimmy\Desktop\test\" -file -Filter "*.txt" | ? LastWriteTime -lt $dt | ri