Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.200.197] |
|
Страницы: (3) 1 2 [3] все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
M Давайте реально Holy Wars в соответствующем разделе! |
Сообщ.
#32
,
|
|
|
Вот ещё один пример.
У меня на сервере был написанный до меня cscript файл который очищал папку со старыми файлами определенного возраста и удалял пустые папки. Вот такой: var StartFolder="c:\\Обмен"; // Scanning Start Folder var Interval=45; // Days //folders and files in StartFolder not deleted var fso, f, fc; var deep=0; if(WScript.Arguments.length==0) WScript.Quit(); if(WScript.Arguments(0)!="GO") WScript.Quit(); Interval = Interval * 1000 * 60 * 60 * 24; fso = new ActiveXObject("Scripting.FileSystemObject"); cd = new Date().valueOf(); ScanFolder(StartFolder); function ScanFolder(fldr) { var fl, fc, f var fcd, fmd fl = fso.GetFolder(fldr); // Subfolder fc = new Enumerator(fl.SubFolders); for (;!fc.atEnd(); fc.moveNext()){ deep++; ScanFolder(fc.item()); deep--; } delete fc; delete f; var fcount=0; fc = new Enumerator(fl.Files); // Files for (;!fc.atEnd(); fc.moveNext()){ f = fso.GetFile(fc.item()); fcd = new Date(f.DateCreated); fmd = new Date(f.DateLastModified); if(cd - fmd.valueOf()>Interval && cd - fcd.valueOf()>Interval && deep>0){ // Last Modification fso.DeleteFile(fc.item(), true); } else{ fcount++; } } delete fc; delete f; if(fcount==0 && deep>1) // Delete Empty Folders fso.DeleteFolder(fldr, true); } Я его переписал на PS так: #Удялем файлы дата создания и дата изменения которых меньше чем 30 дней Get-ChildItem "E:\Обмен"|Get-ChildItem -Recurse -force|? { $_.LastWriteTime -lt (Get-Date).AddDays(-30) -and $_.CreationTime -lt (Get-Date).AddDays(-30) } | Where-Object {$_.mode -notmatch "d"}|Remove-Item -Force # # #Удаляем пустые папки в которых нет дочерних файлов и папок Get-ChildItem "E:\Обмен"|Get-ChildItem -Recurse -force|Where-Object {$_.mode -match "d"} | Where-Object {$_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0}| Remove-Item -Force Как говориться почувствуй разницу |