如何在连接字符串时删除额外的逗号

时间:2017-07-07 02:58:03

标签: powershell

$folders = Get-ChildItem | where {$_.Attributes -match 'Directory'}
foreach ($items in $folders)
{
$type = $items.name
$cat = $cat + "," + "$type/*.$type
}
$cat

这应该打印文本,文本,但它添加了一个我理解的额外逗号,因为脚本的编写方式会导致它添加额外的逗号。我试图找出是否有另一种方法来写这个删除额外的逗号。

这是用连接写的,因为我的头脑看起来更简单,因为一切都在一个变量之下,传递的东西在这种情况下效果很好。

2 个答案:

答案 0 :(得分:1)

如果您使用的是较新的PowerShell:

(Get-ChildItem -Directory) -join ', '

(gci -dir) -join ', '

年长/更严重:

(Get-ChildItem | Where-Object { $_.PsIsContainer } | Select-Object -ExpandProperty Name) -join ', '

因为为什么不:

$OFS=', ';"$(gci -di)"

答案 1 :(得分:0)

尝试一下:

$cat = (Get-ChildItem | where {$_.Attributes -match 'Directory'}).Name -join ","

修改

我正在尝试理解评论和问题编辑。也许这就是你想要的?

(gci -dir) | select {"$($_.Name)/*.$($_.Name)"}

编辑2

我不擅长PowerShell,但总而言之,至少这似乎有用:

$cat = ((gci -dir -name) | select @{Name="Item";Expression={"$($_)/*.$($_)"}}).Item -join ","

编辑3

这终于开始看起来像一个很好的解决方案:

$cat = ((gci -dir -name) | foreach {"$($_)/*.$($_)"}) -join ","