2013-12-17 67 views
1

我再次:),我仍在學習,但慢慢變好PowerShell腳本來總結文件夾內的文件。給我的文件夾名和文件數

這一次我在一個腳本來收集文件夾內的文件,但2個上層文件夾名我不知道。所以我有一個雙通配符。

我需要的是:顯示配置文件夾內的文件數量,並命名我之前的兩個文件夾。

完美的將是這樣的:... \文件夾1 \文件夾2 \配置\文件數:3

我的劇本至今工作正常,但它只是給了我一個長長的名單,如果我有50個項目一個文件夾比它太多。

$sumconfigs = (get-childitem -recurse "C:\appfolder\data\*\*\configurations" | where-object {$_.Name -ne "configuration.zip"} | Where {$_.psIsContainer -eq $false}) 

foreach ($config in $sumconfigs) 
{ 
write-host $config.FullName 
} 

回答

2

首先獲得您的文件夾列表,然後遞歸到他們:

Get-Item 'C:\appfolder\data\*\*\configurations' | % { 
    $dir = $_.FullName 
    $cnt = Get-ChildItem $dir -Recurse | ? { 
      $_.Name -ne 'configuration.zip' -and -not $_.PSIsContainer 
     } | Measure-Object | select -Expand Count 
    if ($cnt -gt 0) { "{0} number of files: {1}" -f $dir, $cnt } 
} 
+0

感謝,我可以用它非常好,重新整理了一下。但我無法避免顯示結果爲0的文件夾。 (或至少爲零的非「configuration.zip」),你知道如何實現這一點嗎?我試着計數-gt 1等:/ – RayofCommand

+1

@RayofCommand簡單地把輸出放在一個條件表達式中,看看更新後的答案。 –

+0

再次感謝!理解每天都在增長:) – RayofCommand

相關問題