Powershell - 从 CSV 变量创建 key/value 对
Powershell - create key/value pair from CSV variable
我有以下 CSV 文件:
link,user,password
http://1.1.1.1,user1,password1
http://2.2.2.2,user2,password2
使用这个脚本我可以提取 link,user and password
headers
的值
# Constants.
$DELIM = ','
#$CSV_F = 'C:\Users\user\Desktop.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.csv -OutFile C:\Users\user\Desktop.csv.cms
我也能解密:
$CSV_F = Unprotect-CmsMessage -To "*youralias@emailaddress.com*" -Path ..csv.cms
我将 1.csv.cms 文件的未加密内容存储到 $CSV_F 变量中
$CSV_F
link,user,password
http://1.1.1.1,user1,password1
http://2.2.2.2,user2,password2
如何解析 $CSV_F 变量以获得与解析 CSV 文件时相同的 key:value 对?
我想避免将未加密的 CSV 内容存储到文件中。
期望的输出:
user1
password1
user2
password2
在 运行 Unprotect-CmsMessage
之后,您将文件内容作为纯文本保存在 $CSV_F
变量中。您只需将它从 CSV 转换为您可以使用的对象:
...
$CSV_F = Unprotect-CmsMessage -To "*youralias@emailaddress.com*" -Path ..csv.cms
$Data = $CSV_F | ConvertFrom-Csv
$Data
我有以下 CSV 文件:
link,user,password
http://1.1.1.1,user1,password1
http://2.2.2.2,user2,password2
使用这个脚本我可以提取 link,user and password
headers
# Constants.
$DELIM = ','
#$CSV_F = 'C:\Users\user\Desktop.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.csv -OutFile C:\Users\user\Desktop.csv.cms
我也能解密:
$CSV_F = Unprotect-CmsMessage -To "*youralias@emailaddress.com*" -Path ..csv.cms
我将 1.csv.cms 文件的未加密内容存储到 $CSV_F 变量中
$CSV_F
link,user,password
http://1.1.1.1,user1,password1
http://2.2.2.2,user2,password2
如何解析 $CSV_F 变量以获得与解析 CSV 文件时相同的 key:value 对?
我想避免将未加密的 CSV 内容存储到文件中。
期望的输出:
user1
password1
user2
password2
在 运行 Unprotect-CmsMessage
之后,您将文件内容作为纯文本保存在 $CSV_F
变量中。您只需将它从 CSV 转换为您可以使用的对象:
...
$CSV_F = Unprotect-CmsMessage -To "*youralias@emailaddress.com*" -Path ..csv.cms
$Data = $CSV_F | ConvertFrom-Csv
$Data