【发布时间】:2015-10-10 07:37:16
【问题描述】:
无论如何,我都不是高级脚本编写者,但我有一项工作需要完成。任务是创建一个脚本,该脚本查看目录中包含的每个报告文件中的两条信息(日期和使用的容量,以字节为单位)。这两条信息位于每个报告中的相同位置。然后,使用日期值,脚本可以报告每个月的最高容量利用率值。我正在考虑让最终输出为 HTML 格式。
获取日期值有两种选择。报告在文本的第 3 行包含格式为 mm/dd/yyyy 的日期,并且时间作为纪元时间包含在文件名中。
到目前为止,我已经整理了一个 PowerShell 脚本,用于解析报告正文中使用的日期和容量。然后将此信息添加到数组中。
我正在寻找更适合使用哪个日期值的指导(文件名中的纪元时间或报告正文中的日期)以及最适合使用哪种方法来查看每个月的数据并报告最高值每月产能利用率。
到目前为止,这是我的脚本:
#Construct an array to use for data export
$fileDirectory = "c:\Temp"
$Array1 = @()
foreach ($file in Get-ChildItem $fileDirectory)
{
#Obtain path to each file in directory
$filePath = $fileDirectory + "\" + $file
#Get content of each file during the loop
$data = Get-Content $filePath
#Create object to enter data into Array1
$myobj = "" | Select "Date","Capacity"
$dateStr = ($data[2].Split(" "))[3]
[long]$capacityStr = ($data[19].Split(","))[2]
[single]$CapacityConv = $capacityStr
$capacityConv = ($capacityConv /= 1099511627776)
#Fill the object myobj
$myobj.date = $dateStr
$myobj.capacity = $capacityConv
#Add the object to Array1
$Array1 += $myobj
#Wipe the object
$myobj = $null
}
#After the loop, export the array to CSV file
$Array1 | export-csv "c:\Scripts\test-output.csv"
$Array1
pause
【问题讨论】: