PowerShell - копирование файлов по дню недели

Ответить
Аватара пользователя
diesel_ttt

PowerShell - копирование файлов по дню недели

Сообщение diesel_ttt »

Всем, Доброго дня!

Коллеги, прошу помочь. Как в этом скрипте исключить повторное копирование файлов если они уже есть, а только копировать новые файлы??



$Source_Path = "C:\Temp"

$Destination_Path = "C:\backup"

Get-ChildItem -Recurse $Source_Path |`

?{! $_.PSIsContainer} |`

?{$_.CreationTime.DayOfWeek -eq "Thursday"} |`

Copy-Item -Destination $Destination_Path
Аватара пользователя
diesel_ttt

Re: PowerShell - копирование файлов по дню недели

Сообщение diesel_ttt »

Можно проверять существование одноимённого конечного файла. А можно и исключать, например:



Код:

Код: Выделить всё

$sSourceFolder = 'C:\Мои проекты\0329\Source'
$sDestFolder   = 'C:\Мои проекты\0329\Destination'
Copy-Item -Path "$sSourceFolder\*.*" -Destination $sDestFolder -Exclude (Get-ChildItem -Path $sDestFolder)


Цитата diesel_ttt:



в этом скрипте
PowerShell - копирование файлов по дню недели




В этом скрипте Вы копируете файлы из всех вложенных каталогов в одну кучу. Вас сие никак не смущает?
Аватара пользователя
diesel_ttt

Re: PowerShell - копирование файлов по дню недели

Сообщение diesel_ttt »

у меня просто файлы из одной папки складываются в другую. Но мысль я вашу понял, осталось доделать под мой вариант.
Аватара пользователя
diesel_ttt

Re: PowerShell - копирование файлов по дню недели

Сообщение diesel_ttt »

Цитата diesel_ttt:



у меня просто файлы из одной папки складываются в другую.
PowerShell - копирование файлов по дню недели




Нет, у Вас не так. Файлы из всех папок:



Код:

Код: Выделить всё

$Source_Path = "C:\Temp"
$Destination_Path = "C:\backup"
Get-ChildItem -Recurse $Source_Path |`
?{! $_.PSIsContainer} |`
?{$_.CreationTime.DayOfWeek -eq "Thursday"} |`
Copy-Item -Destination $Destination_Path

— складываются в одну.
Аватара пользователя
diesel_ttt

Re: PowerShell - копирование файлов по дню недели

Сообщение diesel_ttt »

пояему из всех ? там же только папка Temp как сурс.
Аватара пользователя
diesel_ttt

Re: PowerShell - копирование файлов по дню недели

Сообщение diesel_ttt »

Цитата diesel_ttt:



пояему из всех ?
PowerShell - копирование файлов по дню недели




Потому что Вы используете параметр «-Recurse».
Аватара пользователя
Iska

Re: PowerShell - копирование файлов по дню недели

Сообщение Iska »

Критерии новизны файла относительны: толи за отправную точку нужно брать текущий день, например,



Код:

Код: Выделить всё

(Get-ChildItem C:\Temp -Recurse -File).Where{
  ($$=$_.CreationTime).DayOfWeek -eq 'Thursday' -and $$.ToShortDateString() -eq (
    Get-Date).ToShortDateString()
}.ForEach{Copy-Item $_.FullName C:\backup}

толи, нужно брать все те файлы, что позже самой поздней даты в C:\backup, - задание требует чёткой формулировки.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»