0
我对PowerShell和编码比较陌生,并且在访问数组中的值时遇到问题。我试图使用foreach循环一组文件并计算每个文件中的消息数量。然后将每个文件的计数存入一个数组,以便将其分配给一个变量。当我做写主机$ data [0]时,它会返回所有的值。如果我做写主机$ data 1它不会返回任何内容。看起来这些值都是作为一个存储的,而不是个别的数字。我如何获取每个值然后将其分配给一个变量。任何帮助,将不胜感激。无法访问属于PowerShell中foreach循环的数组中的值
$FilePath = 'some file path here'
$TodaysDate = (Get-Date -format "MM-dd-yyyy")
ForEach($file in Get-ChildItem $FilePath -exclude *.ps1,*.xml,*.xls | Where-Object {$_.LastWriteTime -ge $TodaysDate})
{
$data = ,@(Get-Content $file | Where-Object {$_.Contains("MSH|")}).Count
write-host $data[0]
}
exit
好,谢谢,我不太了解哈希表,但读一点点。似乎这将工作。但是,现在我该如何从表中抽取每个文件的计数。文件名包括今天的日期,因此每天都会改变,所以我不能通过像$ data这样的键来获取值。“filename”。我试过这个,不知道这是否是正确的方法: $ Count = $ data.GetEnumerator()| ? {$ _。key -like“file_name *”} write-output $ Count这是给我的文件名和计数。我只是想将计数分配给变量。 – JM246
我想我想通了。我只需要将.value添加到我的变量中:'$ Count = $ data.GetEnumerator()| ? {$ _。key -like“filename *”} write-output $ Count.value' – JM246