数百/数千のデータベースを含む多数のSQL Serverに複数のフォルダがあります。各データベースには3つの要素を含む:ファイル/フォルダ名に基づくファイルフォルダサイズの合計
<dbname>.MDF
<dbname>.LDF
<dbname>files (Folder that contains db files/attachments)
私は一緒に、これらのファイルと結婚し、その合計サイズを追加する必要があり、誰もがこれを行う方法上の任意のアドバイスがありますか?
EDIT:私は現在、MDF/LDFファイルのファイルサイズを出力できますが、フォルダサイズを要約した別のスクリプトがあります。名前が一致すると.MDF/.LDF/DBFilesフォルダを一緒に追加する方法が必要です。すべてのファイルの前にデータベース名が付いていることに注意してください。
EDIT#2:これまでに与えられた2つのオプションは、問題なく.mdf/.ldfファイルを合計しますが、DBFilesフォルダのフォルダサイズは追加しません。誰もが同じ名前で始まるフォルダを含むようにこれらのスクリプトを修正する方法の入力を持っていますか?
まず提供されたスクリプト:
$root = 'C:\db\folder'
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
}
}
第二に提供されたスクリプト:
gci "c:\temp" -file -Include "*.mdf", "*.ldf" -Recurse |
group BaseName, DirectoryName |
%{new-object psobject -Property @{FilesAndPath=$_.Name; Size=($_.Group | gci | Measure-Object Length -Sum).Sum } }
EDIT#3:アンスガー(下記)へ
おかげで、更新されたソリューションは、完全にトリックを行っています。最終的な解決策と質問更新:あなたは(拡張子なし)dirと名前のファイルによってSISEファイルデータベースの合計をしたい場合は
$root = 'C:\db\folder'
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
}
}
[OK]をクリックします。わかりました。わかりました。私は現在、フォルダのすべてのコンテンツのファイルサイズを確認して出力することができます。私がこれらの結果で行うことができる必要があるのは、各データベースとそれに付随するファイルとを一致させ、それらを一緒に追加することです。 – KEW
これらのファイル/フォルダは散在しているのですか、データベースごとにまとめられていますか? –
これらはすべて1つのフォルダに保存されています。 – KEW