powershell - Powershell如何列出其属性下列中的值?
问题描述
我想更改对象的输出,以便显示所有数据。
$filepath = "C:\Users\vansteenkistea\Desktop\scriptExerciseProcessesWindows.csv"
$data = import-csv $filepath
$processes = get-process| Select-Object Path
$known = New-Object System.Collections.Generic.List[System.Object]
$malicious = New-Object System.Collections.Generic.List[System.Object]
#Creating the arrays
$malArray = @()
$knownArray = @()
$unknownArray= @()
#fill up arrays with data
foreach ($line in $data)
{
$known.add($line.known)
$malicious.add($line.malicious)
}
foreach ($process in $processes)
{
foreach ($mal in $malicious)
{
if ([bool]($process -like '*' + $mal +'*' ))
{
Write-Host "$($process.path) is mall"
$malArray+= $process.Path
}
}
foreach ($know in $known)
{
if ([bool]($process -like '*' + $know +'*' ))
{
Write-Host "$($process.path) is known"
$knownArray += $process.Path
}
elseif ($process.Path.Length -ne 0)
{
Write-Host "$($process.path) is unknown"
$unknownArray+= $process.Path
}
}
}
$yourData = @(
@{known=$knownArray;Unknwon=$unknownArray;Malicious=$malArray}| % { New-Object object | Add-Member -NotePropertyMembers $_ -PassThru }
)
$yourData
我的输出:
期望的输出:
看起来像这样的东西
我尝试了多种方法,例如格式化表格、将数据放入对象而不是数组等。
有人知道我如何在其属性下的列中列出值吗?
解决方案
也许是一个for
循环遍历列表?
$filepath = "C:\Users\vansteenkistea\Desktop\scriptExerciseProcessesWindows.csv"
$data = import-csv $filepath
$processes = get-process| Select-Object Path
$known = New-Object System.Collections.Generic.List[System.Object]
$malicious = New-Object System.Collections.Generic.List[System.Object]
#Creating the arrays
$malArray = @()
$knownArray = @()
$unknownArray= @()
#fill up arrays with data
foreach ($line in $data)
{
$known.add($line.known)
$malicious.add($line.malicious)
}
foreach ($process in $processes)
{
foreach ($mal in $malicious)
{
if ([bool]($process -like '*' + $mal +'*' ))
{
Write-Host "$($process.path) is mall"
$malArray+= $process.Path
}
}
foreach ($know in $known)
{
if ([bool]($process -like '*' + $know +'*' ))
{
Write-Host "$($process.path) is known"
$knownArray += $process.Path
}
elseif ($process.Path.Length -ne 0)
{
Write-Host "$($process.path) is unknown"
$unknownArray+= $process.Path
}
}
}
for ($i=0; $i -lt ($knownArray.Count + $unknownArray.Count + $malArray.Count); $i++){
[PSCustomObject]@{
Known = $knownArray[$i]
UnKnown = $unknownArray[$i]
Malicious = $malArray[$i] }
}
推荐阅读
- xml - 注册电子表格到 xml 的转换
- c# - 如何检查列表中的值?我将在 if 语句中使用它
- http - 无法从 ESP8266 发布数据
- javascript - 如何在js中插入换行符?
- python-3.x - 如何在 python 的朴素贝叶斯分类器中对用户输入测试集进行分类?
- android - 点击登录后没有任何反应
- r - 从 xls 读取重复的列名时重命名列名
- java - Spring-Hibernate with Cassanra DB:找不到 CassandraCQL2Dialect 的类
- android - Android对讲在nexus中逐个字符地宣布一些单词
- go - 如何在main.go中找到run函数的入口?