2016-02-16 3 views
1

У меня есть сценарий, который создает ежемесячное ежедневное использование, указанное в текстовых файлах. Каждая ежедневная статистика файла в этом формате:Powershell, сумма сумм из текстовых файлов

location,Feeder,total,endpoints 
Oaklake,1,11153,310 
oaklake,2,26214,291 
oaklake,3,4593,147 
oaklake,4,5279,145 

Вот соответствующая часть сценария у меня возникают проблемы с:

#create list of last month's days 
if ((get-date).day -eq 2) { 
    $fullmonth = "location,Feeder,Usage,endpoints`n" 
    $year = (get-date).addmonths(-1).year 
    $month = (get-date).addmonths(-1).month 
    $days = 1..[datetime]::daysinmonth($year,$month) | 
     %{(get-date -day $_ -month $month -year $year).toshortdatestring()} 

#select the file for each particular day and add it's content to $fullmonth 
foreach ($day in $days) { 
    $dayfile = ls "c:\powershell\locationUse\summaries" | 
     ?{$_.creationtime -gt $day -and $_.creationtime -lt $(get-date $day).adddays(1).toshortdatestring()} | 
     sort creationtime | select -last 1 | gc | select -skip 1 
    $fullmonth += $($dayfile | out-string) 
} 
$fullmonth | export-csv ./fullmonthtest.csv -notypeinformation 

Моя проблема заключается окончательный вывод fullmonthtest.csv является повторение последнего дня кратких файлов, например, так:

location,Feeder,total,endpoints 
Oaklake,1,11153,310 
oaklake,2,26214,291 
oaklake,3,4593,147 
oaklake,4,5279,145 
Oaklake,1,11153,310 
oaklake,2,26214,291 
oaklake,3,4593,147 
oaklake,4,5279,145 
Oaklake,1,11153,310 
oaklake,2,26214,291 
oaklake,3,4593,147 
oaklake,4,5279,145 
Oaklake,1,11153,310 
oaklake,2,26214,291 
oaklake,3,4593,147 
oaklake,4,5279,145 

Am I, используя метод «+ =» неправильно или что-то? Спасибо за любую помощь, которую вы можете предоставить!

+0

Удалить вызов '.toshortdatestring()' в предложении сравнения даты - он наверняка испортит сравнение, и вы, вероятно, всегда будете выбирать последний файл :) Другими словами = не сравнивать яблоки и апельсины :) –

+0

Я попробовал это сейчас, и все еще такие же неправильные результаты. Кажется, не имеет значения, сравнивается ли время .creationtime с .toshortdatestring() или просто объектом с датой. – JayCee

ответ

0

Nevermind. Я обнаружил, что содержание файлов в месяц было одинаковым в каждом из них. Мой скрипт работал правильно, я просто не проверял источники моих данных. Это то, что я получаю для работы с данными, созданными из старой версии моего текущего скрипта. К сожалению! Спасибо за ответ, хотя Матиас.

Смежные вопросы