2013-05-14 29 views
2
how can i get the length of the full path of a filename? 

我遞歸讓所有的文件目錄結構成功地長度,現在我試圖讓FULLPATH長度:如何顯示FULLNAME

get-childitem y:\ -rec | where {!$_.PSIsContainer} | 
select-object FullName, LastWriteTime, $($_.fullname).length | export-csv -notypeinformation -delimiter '|' -path file.csv 

我的問題是,與此:$($_.fullname).length

Select-Object : Null parameter. Expecting one of the following types: {System.String, System.Management.Automation.Scri ptBlock}. At line:2 char:14 
+ select-object <<<< FullName, LastWriteTime, $($_.fullname).length | export-csv -notypeinformation -delimiter '|' -pa th file.csv 
    + CategoryInfo   : InvalidArgument: (:) [Select-Object], NotSupportedException 
    + FullyQualifiedErrorId : DictionaryKeyUnknownType,Microsoft.PowerShell.Commands.SelectObjectCommand 

如何將我得到的文件的全名的長度?

+0

'$($ _。fullname).length'是什麼問題? –

+0

@RobertHarvey我已經包括這個問題。羅伯特,我不知道你回答了PowerShell問題! –

+0

我不知道。 。 。 。 。 –

回答

5

在select cmdlet中創建自定義表達式。像這樣:

get-childitem y:\ -rec | where {!$_.PSIsContainer} | 
select-object FullName, LastWriteTime, @{n="FullNameLength";e={ $_.fullname.length }} | 
export-csv -notypeinformation -delimiter '|' -path file.csv 

n =名和e =表達。你也可以使用他們的全名。 llabelname的替代品。沒有哪種方式你寫他們,你最終得到一個自定義的屬性。 :)

+0

精彩!非常感謝!!!爲什麼我們不能只使用$ _。fullname.length –

+0

,因爲'select'需要一個屬性名稱。 '$ _。fullname.length'和'fullname.length'不是屬性名稱。 '$ _'是一個對象,所以'$ _。fullname.length'是一個命令。這就是爲什麼我們使用自定義表達式 –

+0

哇!你能推薦一本powershell書 –