2016-11-28 48 views
0

我以前曾問過關於將文件和文件夾用通用名稱相加並將其與總大小(Sum of file folder size based on file/folder name)進行總結的問題。這成功地回答了下面的PS腳本:將PowerShell輸出傳遞給CSV/Excel

$root = 'C:\DBFolder' 
Get-ChildItem "$root\*.mdf" | Select-Object -Expand BaseName | 
    ForEach-Object { 
    New-Object -Type PSObject -Property @{ 
     Database = $_ 
     Size  = (Get-ChildItem "$root\$_*\*" -Recurse | 
       Measure-Object Length -Sum | 
       Select-Object -Expand Sum )/1GB 
    } 
    } 

這現在給我留下了一個列表,默認情況下按'數據庫'屬性排序。我曾嘗試使用Sort-Object後綴來使用「大小」屬性,沒有喜悅。我也試圖使用Export-Csv,結果令人困惑。

理想情況下,如果我可以將此腳本的結果傳遞給Excel/CSV,以便可以在多個SQL Server上衝洗/重複並整理數據並在Excel中排序,那麼我會一直笑到小暗角我可以入睡的辦公室。

只是爲了清楚起見,輸出沿着這個線路尋找:

Database            Size 
--------            ---- 
DBName1            2.5876876 
DBName2            4.7657657 
DBName3            3.5676578
+0

究竟*你有沒有試圖使用'Sort-Object' /'Export-Csv'「?顯示您的代碼以及實際和期望的輸出。 –

+0

我已經回答了我的問題,我在Export-csv'Pathname \ test.csv'後面添加了腳本,但沒有在它之前添加管道符號。再次感謝。 – KEW

回答

0

好吧,這是使用Export-CSV功能時,我已經錯過了一個豎線。這解決了我的問題。

$root = 'C:\DB\Databases' 
Get-ChildItem "$root\*.mdf" | Select-Object -Expand BaseName | 
    ForEach-Object { 
    New-Object -Type PSObject -Property @{ 
     Database = $_ 
     Size  = (Get-ChildItem "$root\$_*\*" -Recurse | 
       Measure-Object Length -Sum | 
       Select-Object -Expand Sum )/1GB 
    } 
    } | Export-Csv 'C:\Test\test.csv'