У меня есть сценарий, который создает ежемесячное ежедневное использование, указанное в текстовых файлах. Каждая ежедневная статистика файла в этом формате: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, используя метод «+ =» неправильно или что-то? Спасибо за любую помощь, которую вы можете предоставить!
Удалить вызов '.toshortdatestring()' в предложении сравнения даты - он наверняка испортит сравнение, и вы, вероятно, всегда будете выбирать последний файл :) Другими словами = не сравнивать яблоки и апельсины :) –
Я попробовал это сейчас, и все еще такие же неправильные результаты. Кажется, не имеет значения, сравнивается ли время .creationtime с .toshortdatestring() или просто объектом с датой. – JayCee