在目录中保留100个最新文件-Windows脚本移植

时间:2019-06-14 10:51:14

标签: windows bash shell file cmd

嗨:我在Linux中有一个cronjob,它在目录中保留了最后100个文件,现在我需要将其移植到Windows上。

我的Linux工作如下:

# sort by time, 1 per line | get files over 100th | delete those
$ ls -1t \my\path\tmp | tail --lines=+100 | xargs rm -f

它每天运行一次

现在我在做

REM  get files olther than 2D, delete
forfiles /d -2 /p "C:\my\path\tmp" /c "cmd /c Del @path" 

仅删除2天以上的文件,但是如果总数不是太大(<100),我不想删除文件

1 个答案:

答案 0 :(得分:2)

我意识到这不像使用for循环那样神秘而神奇,但是它可以工作。当您确定要删除正确的文件后,请从-WhatIf cmdlet中删除Remove-Item

powershell -NoLogo -NoProfile -Command ^
    "Get-ChildItem -File |" ^
    "Sort-Object -Property LastWriteTime -Descending |" ^
    "Select-Object -Skip 100 |" ^
    "Remove-Item -WhatIf"

Powershell也可以在Linux和Mac上运行。 https://github.com/powershell/powershell