Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 208
Благодарности: 5

Профиль | Отправить PM | Цитировать


Задачу решил следующими костылями:

скрипт 1 - перенос всех файлов старше N дней:

Код: Выделить весь код
$days = 120
$path = "D:\data"
$dest = "D:\temp"

Get-ChildItem $path -Recurse | where { $_.LastAccessTime -le ((Get-Date).AddDays(-120)) -and !$_.PsIsContainer } | Move-Item -Destination { md $_.DirectoryName.Replace("$path","$dest") -force }
После переноса файлов, структура каталогов в папке-источнике сохраняется.
Т.к. в этой папке и всех её подпапках были изображения, то так же в папке был скрытый файл Thumbs.db. Автоматически его удалить не получилось, ни powershell, ни vbs, ни cmd не смогли удалить их, по этому удалил их через поиск.

скрипт 2 - удаление всех пустых каталогов:

Код: Выделить весь код
#$path = "D:\data"
#dir -Path $path -Recurse | ?{$_.psiscontainer} | sort pspath -Descending | ?{!$ExecutionContext.InvokeProvider.ChildItem.HasChild($_.pspath)} | del
или так
Код: Выделить весь код
$path="D:\data";
$EmptyFolders = ls $path -Recurse | ?{
  (ls -Path $_.FullName -Recurse -Force | ?{
    $_.PSIsContainer -eq $false
  }) -eq $null
};
if ($EmptyFolders -ne $null) {
  $EmptyFolders | %{
    if (Test-Path $_.FullName) {
      $_ | ri -Recurse
    }
  }
}

Последний раз редактировалось pogo, 18-08-2014 в 17:07.


Отправлено: 12:44, 18-08-2014 | #13