$folders = Get-ChildItem | where {$_.Attributes -match 'Directory'}
foreach ($items in $folders)
{
$type = $items.name
$cat = $cat + "," + "$type/*.$type
}
$cat
这应该打印文本,文本,但它添加了一个我理解的额外逗号,因为脚本的编写方式会导致它添加额外的逗号。我试图找出是否有另一种方法来写这个删除额外的逗号。
这是用连接写的,因为我的头脑看起来更简单,因为一切都在一个变量之下,传递的东西在这种情况下效果很好。
答案 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 ","