Недавно я собрал сценарий PowerShell, который создает каталоги с именами по дате в следующем формате "ггггММддЧЧмм"
Что я пытался сделать, так это выяснить, как я могу вернуться и заставить сценарий (или просто создать новый) автоматически удалять любые каталоги, которым больше трех дней. Я хотел бы иметь возможность вытащить имя папки (например, прочитать дату в формате выше) и сделать это определяющим фактором, но я не уверен, с чего бы я вообще начал с этого. Думаю, было бы полезно знать, что это за шаги, чтобы я мог их разбить.
Кто-нибудь когда-нибудь пробовал что-то подобное с PowerShell?
Как насчет...
# Find today's date and calculate 3 days ago:
$today = get-date -DisplayHint date
$threeDaysAgo = $today.AddDays(-3)
# Get the folder list
$folders = (gci "c:\somwhere\" | where-object {$_.PSIsContainer -eq $True})
foreach ($f in $folders) {
# Parse the date from the folder name text and turn into a date object
$folderdate = get-date -year $f.Name.substring(0,4) -month $f.Name.substring(4,2) -day $f.Name.substring(6,2)
# compare and do stuff
if ($folderdate -lt $threeDaysAgo) {
write-host $f.Name
# do delete here if needed
}
}
Вам нужно будет настроить по своему вкусу и разобраться, нужно ли вам удалить каталог или контент, или что-то еще, но в любом случае это должно быть сделано для части даты.