# Резервирование файлового сервера (v.1) # Создание архивных копий актуальных данных файлового сервера # Назначение переменной $spath (рабочий каталог = каталог скрипта) $spath=split-path -parent $MyInvocation.MyCommand.Definition # Назначение перменной = дата ($dt.d) и время ($dt.h) $dt=New-Object PsObject -Property @{d=Get-Date -f "yyyyMMdd";h=Get-Date -f "HHmmss";} # Назначение нового массива $opath = содержимого каталога ранее заданного $opath (с исключением директорий, без рекурсии) $opath = "c:\Service\temp\test\" $opath = Get-ChildItem $opath -filter * | where {$_.PSIsContainer -eq $false} # Назначение переменной $npath = каталог постоянного хранения резервных копий $npath = "c:\Service\temp\npath\" # Цикл для каждого $i из массива $opath выполнить: Foreach ($i in $opath) { # Назначение проходной переменной = дата ($a.d) и время ($a.h) $a=New-Object PsObject -Property @{d=Get-Date $i.LastWriteTime -f "yyyyMMdd";h=Get-Date $i.LastWriteTime -f "HHmmss";} # Получение разницы от $dt.d и $a.d (текущая дата и дата текущего в проходе файла, результат преобразован в целочисленное значение), если разница больше 1 выполнить: if ([int]($dt.d-$a.d) -ge 1) { # Перемещение текущего в проходе файла в каталог $npath в принудительном режиме, подавляя запрос на замену уже существующего одноименного файла Move-Item $i.FullName $npath -Force -Confirm:$false } }