Используя Сценарий парня код , я могу создать CSV, который показывает метаданные, связанные с файлами на моем компьютере:
Я хотел бы добавить дополнительный столбец в этот CSV, который содержит все содержимое файла.Я нашел Get-Content cmd и смог заставить его работать, но я не могу понять, как вставить его в код.
Я пробовал разные подходы:
if($objFolder.getDetailsOf($File, $a))
{
$hash += @{$($objFolder.getDetailsOf($objFolder.items, $a)) =
$($objFolder.getDetailsOf($File, $a))
& $($objFolder.get-content($File, $a)) }
$FileMetaData | Add-Member $hash
$hash.clear()
} #end if
Код ошибки: Литерал хеша был неполным.
if($objFolder.getDetailsOf($File, $a))
{
$hash += @{$($objFolder.getDetailsOf($objFolder.items, $a)) =
$($objFolder.getDetailsOf($File, $a)) }
$FileMetaData | Add-Member $hash
$FileMetData | Get-Content($objFolder)
$hash.clear()
} #end if
Код ошибки: позиционный параметр не может бытьобнаружил, что принимает аргумент 'recurse'
edit: вот полный код:
Function Get-FileMetaData
{
Param([string[]]$folder)
foreach($sFolder in $folder)
{
$a = 0
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.namespace($sFolder)
foreach ($File in $objFolder.items())
{
$FileMetaData = New-Object PSOBJECT
for ($a ; $a -le 266; $a++)
{
if($objFolder.getDetailsOf($File, $a))
{
$hash += @{$($objFolder.getDetailsOf($objFolder.items, $a)) =
$($objFolder.getDetailsOf($File, $a))}
$FileMetaData | Add-Member $hash
$hash.clear()
} #end if
} #end for
$a=0
$FileMetaData
} #end foreach $file
} #end foreach $sfolder
} #end Get-FileMetaData
$picMetadata = Get-FileMetaData -folder (Get-childitem C:\Olivia\ -Recurse -Directory).FullName
$picMetadata |
Select Name,'Date created','Folder name'|
Export-CSV -Path C:\Olivia\metadata.csv -NoTypeInformation