我正在目录中搜索文件夹,并将其名称输出到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