Como adiciono fileversão a um objeto que contém vários nomes de arquivos?

1

Eu procurei uma resposta para essa pergunta, mas não consegui descobrir como adicionar um objeto ao criar um par de conjunto de dados de nome e versão de arquivo, e o nome original do arquivo wsp ou cab.

Eu tenho um script que envia através dos arquivos wsp em uma pasta, muda a extensão para cab e então envia para csv, o nome do arquivo cab & as dlls contidas nele para csv. Fui solicitado a incluir a versão do arquivo dll com o nome do arquivo dll separado por um espaço (ou algum outro caractere), por exemplo, myfirst.dll 1.02.03; mysecond.dll 1.2.0.0 etc emparelhado com o nome do arquivo cab.

Roteiro original (sem versão do arquivo):

Get-ChildItem C:\WSP\* -Include *.wsp,*.cab | Rename-Item -NewName {$_.basename+".cab"} -PassThru | Foreach {
        $files = (expand -d ($_.fullname)) -match "dll$" | Foreach {($_ -split ": ")[1]}
        New-Object PsObject -Property @{
            CabName = $_.basename
            DllNames = $files -join ";"
        }
    } | Export-Csv C:\WSP\result.csv -NoTypeInformation

Roteiro alterado:

Get-ChildItem C:\WSP\* -Include *.wsp,*.cab | Rename-Item -NewName {$_.basename+".cab"} -PassThru | Foreach {
        $files = (expand -d ($_.fullname)) -match "dll$" | Foreach {($_ -split ": ")[1]}
        $allinfo=(New-Object PsObject -Property @{
            CabName = $_.basename
            DllNames = $files -join ";"
        })
        $version=(Get-Command $files) |$_.FileVersionInfo.fileversion
        $allinfo add-member -membertype noteproperty -name Version -value Sversion -join "; "
            } | Export-Csv C:\WSP\result.csv -NoTypeInformation

Quando executar - o PS apenas fica lá - eu tenho que digitar ctrl + C para fazer com que ele saia da execução.

Alguém pode, por favor, informar o que estou fazendo de errado?

Obrigado,

Graham

    
por Graham 04.04.2012 / 15:26

0 respostas

Tags