Не могу скопировать файл в Powershell - PullRequest
0 голосов
/ 13 сентября 2011

Я пишу небольшой скрипт, который копирует файлы в специальную папку.Проблема в команде копирования.Это требует от меня, чтобы я использовал неправильный синтаксис для копирования

$files = dir -r -path "Z:\graphics\" -i *.*

foreach ($file in $files)
{
    copy -path $file Z:\SatData\graphics\LastDays\
}

Также я хочу создать скрипт, который рассчитывает размер файлов, созданных 1 день назад.Я пытаюсь сделать следующее:

$today = Get-Date
$now = $today.Day
$now

$lastdays = $today.AddDays(-1)
$lastdays

$files = dir -r -path "Z:\graphics\" -i *.*

foreach ($file in $files) 
{
if ($file.CreationTime -eq $lastdays) # if file was create yesterday calculate it
    {
    $sum
    $sum = $sum + $file.length
    $sum/1MB

    $file.CreationTime

    }
else {}
}

Скрипт просто не находит никаких файлов, созданных вчера, и теперь я вижу любой вывод.Это работает, только если установлено не -eq, а -lt, но вчерашние созданные файлы присутствуют в папке

Ответы [ 3 ]

2 голосов
/ 13 сентября 2011

Использовать конвейер:

dir -r -path Z:\graphics | copy-item -dest Z:\SatData\graphics\LastDays

Для расчета размеров файлов (в МБ):

$files = dir -r -path Z:\graphics | 
         where {-not $_.PSIsContainer -and $_.CreationTime.Date -eq (Get-Date).AddDays(-1).Date} |
         measure -sum

$files.sum/1mb
1 голос
/ 13 сентября 2011

В вашем операторе копирования вам нужно сослаться на фактический путь, потому что dir возвращает объект fileinfo. Например: copy -path $file.FullName Z:\SatData\graphics\LastDays\

Вторая часть вашего вопроса $now - это номер дня, а не дата. Попробуйте что-то вроде $yesterday = (get-date).adddays(-1).date и измените сравнение на if ($file.CreationTime.date -eq $yesterday)

Вам необходимо использовать свойство date, потому что оно устанавливает время 00:00:00 для сравнения. Если вы этого не сделаете, вы никогда не будете соответствовать.

0 голосов
/ 13 сентября 2011

Для первой части используйте $ file.FullName вместо просто $ file.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...