|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - перенос файлов старше н дней |
|
PowerShell - перенос файлов старше н дней
|
Пользователь Сообщения: 102 |
суть:
имеется каталог с большим количеством файлов. нужно переместить в другое место с сохранением структуры каталога файлы старше н дней/месяцев/лет результат заархивировать. не могу разобраться почему 2-й вариант не отрабатывает. может подскажет кто? вариант 1 - рабочий: $Months = 11 $path = "D:\test\ГКН" $dest = "D:\_BackUp\11\" Get-ChildItem -Path $path -recurse | where { write-host "Move File: "$_.DirectoryName$_ -foregroundcolor "Yellow" $_.LastWriteTime -le ((Get-Date).AddMonths(-$Months)) -and !$_.PsIsContainer } | Move-Item -Destination { md $_.DirectoryName.Replace("$path","$dest") -force } Param ( #период в днях старше которого файл считается пригодным к удалению [int]$Period = 100 , #каталог просмотра [String]$PATH = "D:\test\ГКН" , #каталог назначения [String]$DEST = "D:\_BackUp\11\" , #включать ли вложенные каталоги [bool]$recurse = $true ) filter Get-OldFiles { if (([DateTime]::Now.Subtract($_.CreationTime)).Days -gt $Period) { write-host "Move File: "$_ -foregroundcolor "Yellow" return $_ } } if ($recurse) { dir -path $PATH -recurse ` | Get-OldFiles -Period $Period ` | Move-Item -Destination {md $_.DirectoryName.Replace("$PATH","$DEST") -force} } else { dir -path $PATH ` | Get-OldFiles -Period $Period ` | Move-Item -Destination {md $_.DirectoryName.Replace("$PATH","$DEST") -force} } |
|
Отправлено: 13:15, 10-06-2015 |
Ветеран Сообщения: 547
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 13:58, 10-06-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать Цитата Опиум:
robocopy конечно хорошо, но мне принципиально разобраться почему 2-й пример не желает работать |
|
Отправлено: 14:18, 10-06-2015 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Если данные тестовые, то может быть CreationTime(проверить, что дата подпадает под условие) не подпадать под условие и отсутствует фильтр на исключение папок !$_.PsIsContainer. Можно убрать -Period $Period , т.к. нет такого параметра у фильтра Get-OldFiles. В остальном проблем нет.
|
Отправлено: 14:31, 10-06-2015 | #4 |
Ветеран Сообщения: 547
|
Профиль | Сайт | Отправить PM | Цитировать firstarey,
/MINAGE:n -исключить из обработки файлы моложе n дней. |
|
------- Отправлено: 14:45, 10-06-2015 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Перенос файлов старше N дней | pogo | Скриптовые языки администрирования Windows | 16 | 19-08-2014 16:49 | |
Любой язык - [решено] Удаление файлов старше N дней | DOCznet | Скриптовые языки администрирования Windows | 2 | 27-09-2012 11:42 | |
VBS/WSH/JS - [решено] Удаление файлов по сети старше 7 дней, оставлять не менее 10 файлов | white155 | Скриптовые языки администрирования Windows | 6 | 04-01-2012 00:42 | |
[решено] Автоочистка файлов, старше 5 дней. | Universal_gr | Программное обеспечение Linux и FreeBSD | 1 | 01-10-2010 01:12 | |
Прочее - удаление файлов старше 10 дней | admin666 | Общий по Linux | 1 | 23-07-2009 19:09 |
|