我是Powershell的新手...我正在尝试根据特定值过滤我的扫描结果(.csv)之一,我能够对简单的CSV文件执行此操作。但是自动扫描结果看起来像是嵌套的。
我需要过滤值为“ Vuln”(添加了图像)的“ F”列,并将其写入新的CSV文件。
任何人都可以给我一些线索。
我尝试了以下简单的行:(但没有得到任何结果)
导入CSV-路径“ C:\ test.csv” |哪里对象{$ _。Type -ey“ Vuln”}
答案 0 :(得分:1)
您几乎在那儿,看来问题出在该String encoded = toBase64(image, "TIFF");
文件中。
坦率地说,它不是真正有效的csv文件,因为它不仅是简单的逗号分隔值表,而是具有多种数据类型。
但是,看起来像是逼真的.CSV从第6行开始,所以我们需要做的是跳过文件的前几行,然后然后尝试从.csv。我像您一样制作了自己的.csv
我可以读取文件,并跳过前五行,如下所示:
.CSV
然后使用以下命令仅过滤Get-Content C:\temp\input.csv | Select-Object -Skip 5 | ConvertFrom-Csv
HostName OS Type
-------- -- ----
SomePC123 WinXp Vuln
SomePC234 Win7 Vuln
SomePc345 Win10 Patched
Type
的项目:
Vuln
要使用此功能,只需递减行数,直到电子表格在您的Get-Content C:\temp\input.csv | Select-Object -Skip 5 | ConvertFrom-Csv | Where-Object Type -eq 'Vuln'
HostName OS Type
-------- -- ----
SomePC123 WinXp Vuln
SomePC234 Win7 Vuln
中开始并编辑.CSV
参数即可。
如果要保留标题信息,可以使用以下方法:
-Skip
答案 1 :(得分:0)
这是最后的脚本:)
$ import =获取内容。\ Scan.csv
$ import1 = $ import |选择对象-前7 $ import |选择对象-跳过7 | ConvertFrom-Csv |哪里对象{$ _。Type -eq“ Vuln”} | Export-Csv Output1.csv -NoClobber -NoTypeInformation
$ import1 +(获取内容Output1.csv)|设置内容Output2.csv