首先,该标题可能会有些混乱,并且不确定如何措辞。如果需要,请对其进行编辑。
我的任务是从打印机获取日志,并创建累积报告。打印机没有提供日期范围的功能,因此我需要考虑这一点。我的方法是获取CSV,然后将其转换为嵌套对象(XML或JSON),因此每个用户都可以拥有打印机的属性。然后,我需要将其转回CSV并使用不同的月份。如果CSV无法正常工作,也许我可以使用XML,可以在PowerShell中利用它并以HTML创建一些自定义报告。
例如,这就是一个月的样子
PrinterLog-Sep10.csv
User Name Dept. ID Color Total Black & White Total Total Prints
--------- -------- ----------- ------------------- ------------
Mary Smith 1002 3 3 6
Kevin Hart 1006 3 2 5
Jeff Davis 1004 4 0 4
John Doe 1001 0 0 0
Joe Dirt 1003 0 0 0
Jane Jones 1005 0 0 0
我还需要考虑可能随时添加其他用户的原因。所以下个月可能是这样
PrinterLog-Oct19.csv
User Name Dept. ID Color Total Black & White Total Total Prints
--------- -------- ----------- ------------------- ------------
John Doe 1001 2 5 8
Joe Dirt 1003 7 15 8
Jeff Davis 1004 6 4 7
Mary Smith 1002 6 7 5
Will Smart 1007 32 12 43
Jane Jones 1005 3 14 2
Kevin Hart 1006 6 7 10
我的方法一直在使用此foreach
循环,但是我无法考虑如何检查新闻并保留现有数据。
foreach ($user in $canonCSV) {
$final += @{
$user.'User Name' = @{
"B&W" = $user.'Black & White Total'
"Color" = $user.'Color Total'
"Total" = $user.'Total Prints'
"Dept" = $user.'Dept. ID'
}
}
}
我当时想也许将嵌套对象导出为XML或JSON,但是当我导入它时,不确定如何将其展平为CSV。我尝试使用Compare-Object
,但对于其他用户而言,该方法无法正常工作。我真的为此失去了睡眠,因为我想不出一种正确的方法。我确定这是小事或琐事,但一切都让我无所适从。任何帮助是极大的赞赏。