簡體   English   中英

如何使用 powershell 導出 csv 中的文件屬性

[英]How to export file properties in csv using powershell

我想從一些 tif 文件中導出帶有文件屬性的 csv 文件。

用這個命令

Get-ChildItem -Recurse C:\tifs\ | 
ForEach-Object {$_ | add-member -name "Owner" -membertype noteproperty `
-value (get-acl $_.fullname).owner -passthru} | Sort-Object fullname | 
Select FullName,CreationTime,LastWriteTime,Length,Dimensions | 
Export-Csv -Force -NoTypeInformation C:\Test\export.csv

我可以導出 csv 就好了。 但是,只要我想添加垂直分辨率等屬性,它就會失敗。 我不太明白為什么。

為了獲得“擴展”文件屬性(如尺寸和分辨率元數據),您必須求助於使用 Windows Visual Basic shell選項從Steven內部。 這是一個應該給你結果的代碼示例:

$files = @()
$folder = (New-Object -ComObject Shell.Application).namespace("C:\tifs") 

# Loop through each file in folder
foreach ($f in $folder.Items()) {
  $a = 0

  # Print all the available properties (for debugging purposes)
  for ($a ; $a  -le 266; $a++) {  
    if($folder.GetDetailsOf($f, $a)) { 
      Write-Host "Property: $($folder.GetDetailsOf($folder.items, $a))"
      Write-Host "Value: $($folder.GetDetailsOf($f, $a))"
      Write-Host "Index: $($a)"
    }
  }

  # Store data in custom PowerShell object
  $obj = New-Object -TypeName PSOBJECT
  # Fill each property with the file metadata (by index number)
  $obj | Add-Member -MemberType NoteProperty -Name FullName -Value $folder.GetDetailsOf($f, 194)
  $obj | Add-Member -MemberType NoteProperty -Name CreationTime -Value $folder.GetDetailsOf($f, 4)
  $obj | Add-Member -MemberType NoteProperty -Name LastWriteTime -Value $folder.GetDetailsOf($f, 5)
  $obj | Add-Member -MemberType NoteProperty -Name Length -Value $folder.GetDetailsOf($f, 1)
  $obj | Add-Member -MemberType NoteProperty -Name Dimensions -Value $folder.GetDetailsOf($f, 31)
  # Add custom object to a collection
  $files += $obj
}

# Export collection to CSV
$files | Export-Csv -Force C:\Test\export.csv -NoTypeInformation -Encoding UTF8

據我所知,沒有明顯的 PowerShell/.Net 方法來獲取額外的文件元數據。 然而。 有一些基於 COM 的方法。

  1. 檢查腳本專家
  2. 他們引用了這個

您仍然需要關聯數據。 我通常通過構建 hash 表以相同的值鍵控來做到這一點,您可以使用 path 屬性索引元數據,然后使用文件信息對象的 FullName 屬性來引用它,這樣您就可以使用這些屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM