使用 powershell 解码 csv 中的 base64 编码字段

使用 powershell 解码 csv 中的 base64 编码字段

如果这是一个愚蠢的问题或者我在错误的地方问了这个问题,请原谅。

我有一个 .csv 文件,其中包含一堆网络日志,格式如下:sourceIP、port、destinationIP、port、packetdata。“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 数据的标准变量作为数据源,则可以工作

我将非常感激任何人能提供的帮助,这将使阅读这些文件变得不那么痛苦。

答案1

将其保存为import.ps1并按如下方式使用:.\import.ps1 C:\test.csv。它将在当前目录中输出一个名为输出.csv

您还需要更改港口列,所以一个是源端口一个是目的端口- 使用时不能有 2 个同名的列Import-Csv

$csv = Import-Csv $args[0]

$csv | ForEach-Object { $_.PacketData = [text.encoding]::utf8.getstring([convert]::FromBase64String($_.PacketData)) }

$csv | Export-Csv "Output.csv" -NoTypeInformation

相关内容