【发布时间】:2018-04-08 21:51:19
【问题描述】:
我正在尝试在我的脚本中编写一个简单的使用记录器,该记录器将存储有关用户打开脚本、完成使用脚本和用户名的时间的信息。
我收集前两个数据的记录器的第一部分工作正常,并将两个带有值的必要列添加到 CSV 文件中。然而,当我运行记录器的第二部分时,它不会向我现有的 CSV 文件添加新列。
#Code I will add at the very beginning of my script
$FileNameDate = Get-Date -Format "MMM_yyyy"
$FilePath = "C:\Users\Username\Desktop\Script\Logs\${FileNameDate}_MonthlyLog.csv"
$TimeStamp = (Get-Date).toString("dd/MMM/yyyy HH:mm:ss")
$UserName = [string]($env:UserName)
$LogArray = @()
$LogArrayDetails = @{
Username = $UserName
StartDate = $TimeStamp
}
$LogArray += New-Object PSObject -Property $LogArrayDetails | Export-Csv $FilePath -Notypeinformation -Append
#Code I will add at the very end of my script
$logArrayFinishDetails = @{FinishDate = $TimeStamp}
$LogCsv = Import-Csv $FilePath | Select Username, StartDate, @{$LogArrayFinishDetails} | Export-Csv $FilePath -NoTypeInformation -Append
脚本关闭后的 CSV 文件应如下所示:
Username StartDate FinishDate
anyplane 08/Apr/2018 23:47:55 08/Apr/2018 23:48:55
但它看起来像这样:
StartDate Username
08/Apr/2018 23:47:55 anyplane
另一个奇怪的事情是它把 StartDate 放在第一位,而我在 $LogArrayDetails 中明确指出 Username 放在第一位。
【问题讨论】:
-
快速指针:
Export-Csv不产生任何输出,因此将其输出分配给$LogArray和$LogCsv毫无意义。
标签: powershell csv