Powershell:对于每个文件夹,附加所有文件名



我正在目录中搜索文件夹,并将其名称输出到Excel文件中。现在我想列出每个文件夹包含的所有文件(在一个字符串中(。如何将文件名写入";Masken";在$UserObject中?

我希望我的Excel看起来像这样:

Datum      |Nummer|...|Masken
2020-01-01 | 43   |...|filename1, filename2
2020-02-05 | 44   |...|filenamex, filenamey, filenamez

这是我的Powershell脚本:

$Folder="C:DATENPowershell"
$FolderNames=Get-ChildItem -Path $Folder -Directory| Select-Object -ExpandProperty Name
$Daten = ForEach($FolderName in $FolderNames){
$UserObject = New-Object -TypeName PSObject | Select-Object Datum,Nummer,Art,Programmierer,Name,Masken

$UserObject.Datum = $FolderName.Substring(0,10)
$UserObject.Nummer =  ($FolderName.Split(' '))[1]
$FolderName = $FolderName.Substring(14)
If($FolderName -like "M*" ) { 
$UserObject.Art = 'Modul'
}
If($FolderName -like "F*" ) {
$UserObject.Art = 'Programmierung'
}
$FolderName = $FolderName.Substring(2)
$UserObject.Programmierer = ($FolderName.Split(' '))[0]
$UserObject.Name = ($FolderName.Split(' ', 2))[1]
$UserObject

}
$Daten | Export-CSV -NoTypeInformation -Path "$env:Tempdaten.csv" -UseCulture -Encoding Default
& "$env:Tempdaten.csv"

尝试这个

$Folder="C:DATENPowershell"
$ResultFile="$env:Tempdaten.csv"
Get-ChildItem $Folder -Directory | %{
$UserObject = New-Object -TypeName PSObject | Select-Object Datum,Nummer,Art,Programmierer,Name,Masken

$UserObject.Datum = $_.Name.Substring(0,10)
$UserObject.Nummer =  ($_.Name.Split(' '))[1]
$FolderName = $_.Name.Substring(14)
If($FolderName -like "M*" ) { 
$UserObject.Art = 'Modul'
}
ElseIf($FolderName -like "F*" ) {
$UserObject.Art = 'Programmierung'
}
$FolderName = $FolderName.Substring(2)
$UserObject.Programmierer = ($FolderName.Split(' '))[0]
$UserObject.Name = ($FolderName.Split(' ', 2))[1]
#your search i think
$UserObject.Masken=(Get-ChildItem -File).Name -join ', '
$UserObject

} | Export-CSV -NoType $ResultFile -UseCulture -Encoding Default
& $ResultFile

最新更新