提前致谢。我试图导入多个.csv档案来,添加一列给他们,然后写该列基于其他列的值在Powershell中导入和修改多个CSV文件
我想要做的就是按照这样的逻辑:
- 遍历的CSV
- 对于每个CSV:
- 添加新栏
- 找一些话。
- 如果你看到的话,在新列写不同的字
- 结束循环
- 结束循环
我的代码如下:
Function getTag ([string]$vuln){
if($vuln -like "adobe-apsb-")
{return "Adobe Flash"}
if($vuln -like "jre-")
{return "Java"}
else
{return "No vulnerability code available"}
}
$in = "D:\Splunk\Inbound"
$out = 'D:\Splunk\Outbound'
Get-ChildItem $in -Filter *.csv |
ForEach-Object{
Import-Csv $_ | Select-Object *,@{Name='Tag';Expression={getTag $_.'Vulnerability ID'}} | Export-Csv $_.Name
}
现在,$ _以字符串形式出现,而不是CSV,我相信这是我的问题。有没有人有一个好的方法来访问嵌套循环内的csv文件?
''进口-CSV $ _ FullName''? – 4c74356b41
看起来你需要移动| export-csv到你的管道的末端,而不是把它放在循环中。 –
Import-Csv $ _。FullName解决了它。感谢大家! –