Retrieving FileVersionInfo in Powershell involves calling [System.Diagnostics.FileVersionInfo]::GetVersionInfo(). "ls ' or 'Get-childitem' has a scriptproperty named "VersionInfo" that can be used for this:
PS C:\ps1> $a=ls -recurse | % {$_.VersionInfo}
TypeName : System.IO.FileInfo
Name : VersionInfo
MemberType : ScriptProperty
Definition : System.Object VersionInfo {get=[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName);}
System.Diagnostics.FileVersionInfo contains five boolean properties for Debug,Patched,PreRelease,Private,Special builds:
PS C:\ps1> $a | gm
TypeName: System.Diagnostics.FileVersionInfo
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Comments Property System.String Comments {get;}
CompanyName Property System.String CompanyName {get;}
FileBuildPart Property System.Int32 FileBuildPart {get;}
FileDescription Property System.String FileDescription {get;}
FileMajorPart Property System.Int32 FileMajorPart {get;}
FileMinorPart Property System.Int32 FileMinorPart {get;}
FileName Property System.String FileName {get;}
FilePrivatePart Property System.Int32 FilePrivatePart {get;}
FileVersion Property System.String FileVersion {get;}
InternalName Property System.String InternalName {get;}
IsDebug Property System.Boolean IsDebug {get;}
IsPatched Property System.Boolean IsPatched {get;}
IsPreRelease Property System.Boolean IsPreRelease {get;}
IsPrivateBuild Property System.Boolean IsPrivateBuild {get;}
IsSpecialBuild Property System.Boolean IsSpecialBuild {get;}
Language Property System.String Language {get;}
LegalCopyright Property System.String LegalCopyright {get;}
LegalTrademarks Property System.String LegalTrademarks {get;}
OriginalFilename Property System.String OriginalFilename {get;}
PrivateBuild Property System.String PrivateBuild {get;}
ProductBuildPart Property System.Int32 ProductBuildPart {get;}
ProductMajorPart Property System.Int32 ProductMajorPart {get;}
ProductMinorPart Property System.Int32 ProductMinorPart {get;}
ProductName Property System.String ProductName {get;}
ProductPrivatePart Property System.Int32 ProductPrivatePart {get;}
ProductVersion Property System.String ProductVersion {get;}
SpecialBuild Property System.String SpecialBuild {get;}
We can select for these booleans easy enough:
PS C:\ps1> $a | Select Filename,Is* | fl *| more
{ls -recurse | % {$_.VersionInfo} | Select Filename,Is* | fl *| more}
FileName : C:\ps1\CTPv3\app.config
IsDebug : False
IsPatched : False
IsPrivateBuild : False
IsPreRelease : False
IsSpecialBuild : False
FileName : C:\ps1\CTPv3\AssemblyInfo.cs
IsDebug : False
IsPatched : False
IsPrivateBuild : False
IsPreRelease : False
IsSpecialBuild : False
...
No comments:
Post a Comment