сохранить 100 новых файлов в каталоге - перенос скриптов Windows - PullRequest
1 голос
/ 14 июня 2019

Привет: у меня есть cronjob в linux, который хранит последние 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) </p>

1 Ответ

2 голосов
/ 14 июня 2019

Я понимаю, что это не так загадочно и волшебно, как использование цикла for, но оно работает.Когда вы убедитесь, что правильные файлы будут удалены, удалите -WhatIf из командлета 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...