使用PowerShell在csv中解码base64编码的字段

道歉,如果这是一个愚蠢的问题,或者我问错的地方。

我有一个.csv文件,其中包含一系列networking日志,格式为sourceIP,port,destinationIP,port,packetdata。 “数据包数据”字段包含已经被base64编码的ASCII信息。 我需要导入CSV文件,将单个字段从base64转换回原始文件,然后导出整个文件而不触及其他行。

我知道我需要使用import-csv来获取数据,我知道有一个FromBase64String转换方法,但我有点迷路。

这是我目前所拥有的,这是从其他代码非常黑客一起,并没有实际上完成时,我试图运行它…

import-csv c:\testbase64.csv|foreach-object {$_.packetdata = [text.encoding]::utf8.getstring([convert]::FromBase64String($_.packetdata))|Export-Csv -Path "C:\outputtest.csv" -NoTypeInformation 

[text.encoding]::utf8.getstring([convert]::FromBase64String($variable))如果在命令行上单独运行一个带有base64数据的标准variables作为数据源

我会很感激任何人可以给予的帮助,这将使阅读这些文件更不痛苦。

将其另存为import.ps1并按如下所示使用: .\import.ps1 C:\test.csv 。 它将在当前目录中输出一个名为Output.csv的CSV。

您还需要更改端口列,使其中一个是SourcePort ,另一个是DestPort – 使用Import-Csv时不能有2个具有相同名称的列。

 $csv = Import-Csv $args[0] $csv | ForEach-Object { $_.PacketData = [text.encoding]::utf8.getstring([convert]::FromBase64String($_.PacketData)) } $csv | Export-Csv "Output.csv" -NoTypeInformation