2016-11-15 13 views
1

フォルダ内に含まれるファイルのすべての属性を含むCSVファイルを埋めようとしています。私はあなたがこれを使用する必要がFILEVERSIONを得るためにFILEVERSION &アセンブリpowershellリストはcsvに属性を再帰的にファイルします

$arr = @() 
gci C:\Temp -recurse | ? {$_.PSIsContainer -eq $False} | % { 
$obj = New-Object PSObject 
$obj | Add-Member NoteProperty Directory $_.DirectoryName 
$obj | Add-Member NoteProperty Name $_.Name 
$obj | Add-Member NoteProperty Size (Get-Item $_.Length/1MB) 
$obj | Add-Member NoteProperty Owner ((Get-ACL $_.FullName).Owner) 
$obj | Add-Member NoteProperty LastAccess $_.LastAccessTime 
$obj | Add-Member NoteProperty Extension $_.Extension 
$obj | Add-Member NoteProperty Creation $_.CreationTime 
$obj | Add-Member NoteProperty LastWrite $_.LastWriteTime 
$obj | Add-Member NoteProperty ReadOnly $_.IsReadOnly 
$obj | Add-Member NoteProperty FullName $_.FullName 
$obj | Add-Member NoteProperty Date (Get-Date -format "yyyy-MM-d HH:mm") 
$obj | Add-Member NoteProperty Version ($_.FileVersion) 
$obj | Add-Member NoteProperty Assembly ($_.AssemblyVersion) 
$arr += $obj 
} 
$arr | Export-CSV -notypeinformation "c:\temp\File\report.csv" 
+0

エラーは何ですか? – 4c74356b41

+0

バージョンでフォルダにdllがあっても、フィールドは空です。ありがとう。 – OwenS

答えて

1

1)あなたが直面している問題は許可のためです。昇格モードで(管理者として実行)スクリプトを実行してみてください。 2)C:\ tempフォルダには何も保存しないでください。 D:\またはE:\にフォルダを作成し、そこにD:\ temp_dump \ report.csvとして置きます。 3)get-itemをサイズに入れている場合、それは有効なものではありませんフォルダ内のものを選択する必要があります。

以下スクリプトが正常に動作しています。

########################################################## 

$arr = @() 
$Folder_path="E:\PS" 

gci $Folder_path | ? {$_.PSIsContainer -eq $False} | % { 

$obj = New-Object PSObject 

$obj | Add-Member NoteProperty Directory $_.DirectoryName 

$obj | Add-Member NoteProperty Name $_.Name 

$obj | Add-Member NoteProperty Size (Get-ChildItem $Folder_path | Measure-Object -property length -sum) 

$obj | Add-Member NoteProperty Owner ((Get-ACL $_.FullName).Owner) 

$obj | Add-Member NoteProperty LastAccess $_.LastAccessTime 

$obj | Add-Member NoteProperty Extension $_.Extension 

$obj | Add-Member NoteProperty Creation $_.CreationTime 

$obj | Add-Member NoteProperty LastWrite $_.LastWriteTime 

$obj | Add-Member NoteProperty ReadOnly $_.IsReadOnly 

$obj | Add-Member NoteProperty FullName $_.FullName 

$obj | Add-Member NoteProperty Date (Get-Date -format "yyyy-MM-d HH:mm") 

$obj | Add-Member NoteProperty Version ($_.FileVersion) 

$obj | Add-Member NoteProperty Assembly ($_.AssemblyVersion) 

$arr += $obj 

} 

$arr | Export-CSV -notypeinformation "E:\report.csv" 
0

を回復トラブルをしている:

$obj | Add-Member NoteProperty Version ($_.VersionInfo.FileVersion) 

あなたがのVersionInfoからのAssemblyVersionを取得することはできません

2

この

$arr = @() 
gci C:\Temp -recurse -File -Filter *.dll | % { 
$obj = New-Object PSObject 
$obj | Add-Member NoteProperty Directory $_.DirectoryName 
$obj | Add-Member NoteProperty Name $_.Name 
$obj | Add-Member NoteProperty Size (Get-Item $_.Length/1MB) 
$obj | Add-Member NoteProperty Owner ((Get-ACL $_.FullName).Owner) 
$obj | Add-Member NoteProperty LastAccess $_.LastAccessTime 
$obj | Add-Member NoteProperty Extension $_.Extension 
$obj | Add-Member NoteProperty Creation $_.CreationTime 
$obj | Add-Member NoteProperty LastWrite $_.LastWriteTime 
$obj | Add-Member NoteProperty ReadOnly $_.IsReadOnly 
$obj | Add-Member NoteProperty FullName $_.FullName 
$obj | Add-Member NoteProperty Date (Get-Date -format "yyyy-MM-d HH:mm") 
$obj | Add-Member NoteProperty Version ($_.VersionInfo.FileVersion) 
$obj | Add-Member NoteProperty Assembly ([Reflection.AssemblyName]::GetAssemblyName($_.FullName).Version) 
$arr += $obj 
} 
$arr | Export-CSV -notypeinformation "c:\temp\File\report.csv" 
を試してみてください

このようなコードを簡略化することができます

gci C:\Temp -recurse -File -Filter *.dll | % { 
New-Object PSObject -Property @{ 
Directory= $_.DirectoryName 
Name= $_.Name 
Size= $_.Length/1MB 
Owner= ((Get-ACL $_.FullName).Owner) 
LastAccess= $_.LastAccessTime 
Extension= $_.Extension 
Creation= $_.CreationTime 
LastWrite= $_.LastWriteTime 
ReadOnly= $_.IsReadOnly 
FullName= $_.FullName 
Date= (Get-Date -format "yyyy-MM-d HH:mm") 
Version= ($_.VersionInfo.FileVersion) 
Assembly= ([Reflection.AssemblyName]::GetAssemblyName($_.FullName).Version) 
} 
} | Export-CSV -notypeinformation "c:\temp\File\report.csv" 
+0

あなたの答えはそれを釘付けにしました... –

関連する問題