我有以下CSV文件:
link,user,password
http://1.1.1.1,user1,password1
http://2.2.2.2,user2,password2
使用此脚本,我可以提取link,user and password
标头的值
# Constants.
$DELIM = ','
#$CSV_F = 'C:\Users\user\Desktop\1.csv'
# Parse keys
$keys = (gc "${CSV_F}" -TotalCount 1).Split($DELIM)
$csv = Import-CSV "${CSV_F}"
$data = @()
# Iterate through CSV to build array of hashtables.
ForEach ($r in $csv) {
$tmp_h = @{}
# Create hash of key-value pairs.
ForEach($k in $keys) {
$tmp_h[$k] = $r.($k)
}
# Add hash to array of hashes.
$data += $tmp_h
}
# Display data
foreach($i in $data){
$link = $i.link
$user = $i.user
$password = $i.password
}
输出:
user1
password1
user2
password2
因为此CSV包含敏感数据,所以我想隐藏其内容。
我是通过以下方式实现的:
Protect-CmsMessage -To "*youralias@emailaddress.com*" -Path C:\Users\user\Desktop\1.csv -OutFile C:\Users\user\Desktop\1.csv.cms
我也可以解密它:
$CSV_F = Unprotect-CmsMessage -To "*youralias@emailaddress.com*" -Path .\1.csv.cms
我将1.csv.cms文件的未加密内容存储到$ CSV_F变量中
$CSV_F
link,password2
如何解析$ CSV_F变量以获取与解析CSV文件时得到的相同的key:value对?
我要避免将未加密的CSV内容存储到文件中。
所需的输出:
user1
password1
user2
password2