powershell - Powershell - 将数组导出到不同列中的 CSV
问题描述
我正在尝试从 csv 文件自动执行以下 API 调用。
http_uri
/ModuleName/api/12345/moverequest/MoveRequestQueue?batchSize=200
/ModuleName/api/Portal/GetGarageLocations?email=Dummy@mail.com
/ModuleName/api/DeliveryDate/CommitEta?ref=H7J3M1EA4LF
/ModuleName/api/35345/moverequest/MoveRequestQueue?batchSize=500
csv 文件中的输出应如下所示。
ScenarioName Parameter Value
MoveRequestQueue batchSize 200
GetGarageLocations email Dummy@mail.com
CommitEta ref H7J3M1EA4LF
MoveRequestQueue batchSize 500
我正在使用下面的代码
$csv = Import-Csv C:\Powershell\Documents\Source.csv
$scenario = @()
ForEach ($row in $csv){
$httpuri = $($row.http_uri)
#Iterating through CSV rows and segregate values
if ($httpuri -match "="){
$equalarr = $httpuri -split '='
if ($equalarr[0] -match "\?"){
$questionarr = $equalarr[0] -split '\?'
$scenarionamearr = $questionarr[0] -split '/'
$totalelements = $scenarionamearr.Count
$scenarioname = $scenarionamearr[$totalelements-1]
$Scenario += $scenarioname
$Scenario += $questionarr[1]
$Scenario += $equalarr[1]
}
}
}
#Adding columns to csv
$columnName = '"Scenario","Parameter","Value"'
Add-Content -Path C:\Powershell\Documents\Output.csv -Value $columnName
#Writing values to CSV
$Scenario | foreach { Add-Content -Path C:\Powershell\Documents\Output.csv -Value $_ }
但 Outout 生成如下
Scenario Parameter Value
DequeueMoveRequestQueue
batchSize
200
GetCarrierLocations
email
x-qldanxqldanx
由于我是新手,因此进行了很多搜索以解决此问题,但未能成功。请对此有所了解。
提前致谢....
解决方案
如果您将场景存储在结构化对象中,则可以使用 Powershell 的内置Export-Csv
命令来生成 csv。
所以,而不是
$Scenario += $scenarioname
$Scenario += $questionarr[1]
$Scenario += $equalarr[1]
存储一组 powershell 对象:
$Scenario += [PSCustomObject]@{
"Scenario" = $scenarioname;
"Parameter" = $questionarr[1];
"Value" = $equalarr[1];}
然后,在创建 csv 文件时,只需使用Export-Csv
:
$Scenario | Export-Csv -NoTypeInformation -Path C:\Powershell\Documents\Output.csv
推荐阅读
- r - 如何使用 ggplot 输入 2 位数的条形图百分比 (%)?
- python - anaconda 不允许我导入文件,因此我无法删除它或重新下载它
- c# - VS Code C# XML 文档
- c# - 单元测试 ASP.NET Core 3.1 MVC 控制器 - 值不能为空。(参数“提供者”)
- html - 将多个 select from 绑定在一起
- primefaces - Primefaces 确认消息中的新行
- javascript - 为什么 ownKeys 代理陷阱不能与 Object.keys() 一起使用?
- c# - 从 .NET Core 2.1 更新后的 EF .Core 3.1 复合主/外键问题
- python - 检查一个数据帧字符串是否存在于同一位置的第二个数据帧(甚至作为子字符串)字符串中
- python - 为什么 matplotlibrc 中关于 font.family 的设置没有反映?