Войти

Показать полную графическую версию : [решено] Копирование файлов за определенную дату


tarasov.evgeny
15-12-2010, 16:38
Добрый день,

Необходимо скопировать файлы из папки в папку созданные в определенный день
При помощи команды Get-ChildItem | Get-Member нашел свойство в котором можно найти дату создания файла, также нашел, как из даты выдрать только день
(Get-ChilItem - path "c:\folder\file.txt").CreationTime.Day
На выходе получаем день создания - 21, 22, и т.д.
Не могу отфильтровать файлы в папке с только таким значением - например 22, т.е. за 22 число файлы скопировать.

Никак шарик за ролик не завернется, :)

tarasov.evgeny
15-12-2010, 16:46
Ура, шарик за ролик закатился....
Get-ChildItem | Where-Object {$_.CreationTime.Day -like "23"}

tarasov.evgeny
15-12-2010, 18:32
Наваял вот такой скрипт, можно ли его оптимизировать по скорости работы.
Скажем я пытался в команде Get-ChilItem в -Filter запихнуть два значения: *.log, *.ini. Но два он не обрабатывает или я не правильно, что-то написал. Пришлось запихнуть данные в -include ( он субъективно, медленнее работает)
Можно ли не создавать переменную $MM? Там текущий месяц. Если просто подоставить в:
-and $_.CreationTime.Month -like "(get-date).Month"}
то скрипт ничего не обрабатывает, как-будто в этом месяце не было записей...
Сам скрипт:

$AddDirectory = Read-Host "Please write name Directory"
New-item "$AddDirectory" -ItemType Directory
Write-Host "$addDirectory was create in current directory"
$MM = (get-date).Month
$AddDay = Read-Host "Please write day then log file was create"
$AddPCName = Read-Host "Please write PC name."
$ArrayPC = $addPCName -split "[,]"
foreach ($1 in $ArrayPC) {
IF (Test-connection -Quiet -Delay 1 -Count 2 -ErrorAction SilentlyContinue -ComputerName $1)
{
$file = Get-ChildItem \\$1\C$\folder\* -Include *.log, *.ini | '
Where-Object {$_.CreationTime.Day -like "$AddDay" '
-and $_.CreationTime.Month -like "$MM"}
New-item -Path $AddDirectory -Name $1 -ItemType Directory
Copy-Item $file -Destination $AddDirectory\$1
"Компьютер $1 включен. Файлы скопированы." }
Else {"Компьютер $1 выключен.Создана запись в файл ShutDownPC."
Add-Content -Path "$AddDirectory\ShutDownPC.txt" -Value "Компьютер $1 выключен"
}}




© OSzone.net 2001-2012