使用PowerShell将CSV结果连接到单个变量中

使用PowerShell将CSV结果连接到单个变量中,powershell,csv,Powershell,Csv,我正在尝试使用PowerShell将我们公司的URL部署到Google Chrome中,作为“托管书签”。为了使用IE收藏夹完成同样的事情,我创建了一个CSV文件,其中有两列分别包含名称和URL。我导入CSV,然后我有一个foreach语句,它将遍历每一行,并在用户的收藏夹中创建一个.url文件。为了尽可能减少我的员工的工作量,我想对Chrome书签使用相同的CSV文件,这样我们只有一个文件需要维护。这样我们就没有必要修改和重新部署脚本,我们可以在网络共享上发布CSV文件,以便根据需要进行更新

我正在尝试使用PowerShell将我们公司的URL部署到Google Chrome中,作为“托管书签”。为了使用IE收藏夹完成同样的事情,我创建了一个CSV文件,其中有两列分别包含名称和URL。我导入CSV,然后我有一个foreach语句,它将遍历每一行,并在用户的收藏夹中创建一个.url文件。为了尽可能减少我的员工的工作量,我想对Chrome书签使用相同的CSV文件,这样我们只有一个文件需要维护。这样我们就没有必要修改和重新部署脚本,我们可以在网络共享上发布CSV文件,以便根据需要进行更新

Chrome有一个注册表值,允许我做我需要的事情。以3个搜索引擎为例,我知道如何“硬编码”并使其工作

$PolicyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies'
$GoogleKey = 'Google'
$ChromeKey = 'Chrome'
$ManagedBookmarks = '[ { "name": "Bing", "url": "http://www.bing.com" }, { "name": "Google", "url": "http://www.google.com" },{ "name": "Yahoo", "url": "http://www.yahoo.com" } ]'

Set-ItemProperty -Path "$($PolicyPath)\$($GoogleKey)\$($ChromeKey)" -Name 'ManagedBookmarks' -Value "$ManagedBookmarks" -Type String
有没有办法执行foreach并将结果连接到单个变量中?这将导致以下格式:

$ManagedBookmarks = "[ { "name:" "$($line.name)", "url": "$($line.url)"}, { "name:" "$($line+n.name)", "url": "$($line+n.url)"} ]"
如果您有一个如下所示的CSV(称之为CSV.CSV)文件,您可以导入CSV来创建一个对象数组,然后将整个内容转换为JSON对象

名称、URL
必应,
谷歌,
雅虎,

根据,如果您不喜欢该输出中的换行符和/或回车符以及额外的间距,可以使用
-Compress
开关

$ManagedBookmarks = Import-Csv csv.csv | ConvertTo-Json -Compress
$ManagedBookmarks = Import-Csv csv.csv | ConvertTo-Json -Compress