2013-12-11 51 views
1

我現在更好的寫作,竊取和修改腳本,但在這裏我是一個卡住了一點。 我的腳本在特定的文件夾中對文件進行求和並對它們進行計數。 像這樣:powershell,寫主機的文件的所有文件名

{ 
function alljournals 
{ 
$colItems = (get-childitem "$targetfolder" -include *.xlsx* -recurse | measure-object -property length -sum) 
write-host "Collected all .xlsx files from all ImportJournal folders" -foregroundcolor "green" 
"Number of files: "+ $colItems.count + [Environment]::NewLine + "Size of all files "+"{0:N2}" -f ($colItems.sum/1MB) + " MB" 
} 
alljournals 
} 

什麼用寫主機列出從該文件夾中的所有文件的最聰明的方法是什麼?我試圖把一個寫主機$ colitems.Fullname沒有好結果。

我知道我可以很容易地把文件放在循環中,而不是使用foreach並顯示文件名。但爲此我必須改變一切。那麼有沒有辦法?

現在它會顯示類似的東西:

Collected all .xlsx files from all Importjournalfolders 
Number of files 15 
Size of all files: 13,3mb 

我需要在此之前,輸出與路徑

任何意見或建議的所有文件的清單?

回答

3

您可以使用tee-object捕獲第一個管道中的文件列表,然後在其上使用foreach。

$colItems = (get-childitem "$targetfolder" -include *.xlsx* -recurse | tee-object -variable files | measure-object -property length -sum) 
$files | foreach-object {write-host $_.FullName} 
+0

這就是我想要的朋友:)謝謝! – RayofCommand

+1

順便說一句,我從來沒有使用過tee-object,除了解釋如何將它用於其他人。 –

+0

它正在工作fantastico,我會upvote更多,如果我可以 – RayofCommand

相關問題