PowerShell/ディレクトリ単位でファイル容量の合計を出力する
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* ディレクトリ(フォルダ)単位でファイル容量の合計を出力す...
PowerShellを用い、ディレクトリ単位でファイル容量を出力す...
本資料では、簡単なサンプルを公開しています。~
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 参考サイト記事 [#f76520f2]
-[[PowerShellのカスタムオブジェクト(PSCustomObject)の使...
* 関連記事 [#a66d6f5f]
-[[PowerShellでファイル数・ディレクトリ数をカウントする方...
* ディレクトリ内のファイル合計サイズを出力する [#y01555d6]
以下のスクリプトは、現在いるカレントディレクトリ内にある...
$o = @()
Get-ChildItem . | Where-Object PSisContainer | %{ $PATH=...
$o
上記のスクリプトを起動すると以下のように出力されます。~
尚、カレントディレクトリ(.)上にある、ファイルは対象外とな...
以下の例では、C:\Windows\Microsoft.NET を対象にファイルサ...
PS C:\> cd C:\Windows\Microsoft.NET
PS C:\Windows\Microsoft.NET> $o = @()
PS C:\Windows\Microsoft.NET> Get-ChildItem . | Where-Obj...
PS C:\Windows\Microsoft.NET> $o
PATH SUM
---- ---
C:\Windows\Microsoft.NET\assembly 168640526
C:\Windows\Microsoft.NET\Framework 263581306
C:\Windows\Microsoft.NET\Framework64 551896484
ディレクトリ構造を確認します。~
&color(red){バグ発見です!};~
以下のスクリーンショットの通り、4つのフォルダがあるのに、...
調べてみると、Get-ChildItemで指定したフォルダ内にファイル...
後方の処理に渡らない事が判明しました。
#ref(01.png)
* Functionで実現・Get-DirTotalFileSize() [#a0ec21a5]
if else を使うとパイプラインがうまく動作しなかったので、...
以下のように関数として作成しました。
#ref(func.ps1)
Function Get-DirTotalFileSize() {
if ($args.Length -ne 1) {
$Host.UI.WriteErrorLine("Usage: Get-DirectorySize <p...
return
}
$pathto = $args[0]
if (!(Test-Path -PathType Container $pathto)) {
$Host.UI.WriteErrorLine("Cannot access $pathto : No ...
return
}
$o = @()
$dirs = Get-ChildItem $pathto | Where-Object PSisConta...
$dirs | % {
$PATH=$_;
if ((Get-ChildItem $_.FullName).Length -ne 0) {
$measure = Get-ChildItem -Force -Recurse $_.FullNa...
$o += [PSCustomObject]@{ PATH=$PATH.FullName; SUM=...
} else {
$o += [PSCustomObject]@{ PATH=$PATH.FullName; SUM...
}
}
$o
}
** 実行してみる [#e7dc49aa]
上記のスクリプトをダウンロードするか、テキストエディタに...
尚、拡張子はps1にしてください。~
以下の例は、デスクトップに保存し使用した例です。~
面倒であれば、上記スクリプトをPowerShellのコンソールに貼...
-スクリプトの取込み~
dotににより、スクリプトを取込みます。(Linuxなどのshellと...
. PS C:\> . C:\Users\sakura\Desktop\func.ps1
-エラー処理およびディレクトリを指定して実行
PS C:\> Get-DirTotalFileSize
Usage: Get-DirectorySize <path>
PS C:\> Get-DirTotalFileSize hoge
Cannot access hoge : No such directory
PS C:\> Get-DirTotalFileSize C:\Windows\Microsoft.NET
PATH SUM
---- ---
C:\Windows\Microsoft.NET\assembly 168640526
C:\Windows\Microsoft.NET\authman 0
C:\Windows\Microsoft.NET\Framework 263581306
C:\Windows\Microsoft.NET\Framework64 551896484
- ファイル合計値が正しいか確認
エクスプローラで1つ確認し、値が正しいか確認しました。
#ref(02.png)
* CSVにしてみる [#e6d22568]
上記の関数により、ファイルサイズ一覧が取得できたので、CSV...
PS C:\> $d = Get-DirTotalFileSize C:\Windows\Microsoft.NET
PS C:\> $d | Export-Csv -NoTypeInformation -Encoding Def...
PS C:\> notepad.exe .\list.csv
csv出力されているのが確認できます。
#ref(03.png)
以上、PowerShellでディレクトリ内のファイル総合計容量を確...
#htmlinsertpcsp(win-btm.html,win-sp.html)
終了行:
#navi(../)
* ディレクトリ(フォルダ)単位でファイル容量の合計を出力す...
PowerShellを用い、ディレクトリ単位でファイル容量を出力す...
本資料では、簡単なサンプルを公開しています。~
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 参考サイト記事 [#f76520f2]
-[[PowerShellのカスタムオブジェクト(PSCustomObject)の使...
* 関連記事 [#a66d6f5f]
-[[PowerShellでファイル数・ディレクトリ数をカウントする方...
* ディレクトリ内のファイル合計サイズを出力する [#y01555d6]
以下のスクリプトは、現在いるカレントディレクトリ内にある...
$o = @()
Get-ChildItem . | Where-Object PSisContainer | %{ $PATH=...
$o
上記のスクリプトを起動すると以下のように出力されます。~
尚、カレントディレクトリ(.)上にある、ファイルは対象外とな...
以下の例では、C:\Windows\Microsoft.NET を対象にファイルサ...
PS C:\> cd C:\Windows\Microsoft.NET
PS C:\Windows\Microsoft.NET> $o = @()
PS C:\Windows\Microsoft.NET> Get-ChildItem . | Where-Obj...
PS C:\Windows\Microsoft.NET> $o
PATH SUM
---- ---
C:\Windows\Microsoft.NET\assembly 168640526
C:\Windows\Microsoft.NET\Framework 263581306
C:\Windows\Microsoft.NET\Framework64 551896484
ディレクトリ構造を確認します。~
&color(red){バグ発見です!};~
以下のスクリーンショットの通り、4つのフォルダがあるのに、...
調べてみると、Get-ChildItemで指定したフォルダ内にファイル...
後方の処理に渡らない事が判明しました。
#ref(01.png)
* Functionで実現・Get-DirTotalFileSize() [#a0ec21a5]
if else を使うとパイプラインがうまく動作しなかったので、...
以下のように関数として作成しました。
#ref(func.ps1)
Function Get-DirTotalFileSize() {
if ($args.Length -ne 1) {
$Host.UI.WriteErrorLine("Usage: Get-DirectorySize <p...
return
}
$pathto = $args[0]
if (!(Test-Path -PathType Container $pathto)) {
$Host.UI.WriteErrorLine("Cannot access $pathto : No ...
return
}
$o = @()
$dirs = Get-ChildItem $pathto | Where-Object PSisConta...
$dirs | % {
$PATH=$_;
if ((Get-ChildItem $_.FullName).Length -ne 0) {
$measure = Get-ChildItem -Force -Recurse $_.FullNa...
$o += [PSCustomObject]@{ PATH=$PATH.FullName; SUM=...
} else {
$o += [PSCustomObject]@{ PATH=$PATH.FullName; SUM...
}
}
$o
}
** 実行してみる [#e7dc49aa]
上記のスクリプトをダウンロードするか、テキストエディタに...
尚、拡張子はps1にしてください。~
以下の例は、デスクトップに保存し使用した例です。~
面倒であれば、上記スクリプトをPowerShellのコンソールに貼...
-スクリプトの取込み~
dotににより、スクリプトを取込みます。(Linuxなどのshellと...
. PS C:\> . C:\Users\sakura\Desktop\func.ps1
-エラー処理およびディレクトリを指定して実行
PS C:\> Get-DirTotalFileSize
Usage: Get-DirectorySize <path>
PS C:\> Get-DirTotalFileSize hoge
Cannot access hoge : No such directory
PS C:\> Get-DirTotalFileSize C:\Windows\Microsoft.NET
PATH SUM
---- ---
C:\Windows\Microsoft.NET\assembly 168640526
C:\Windows\Microsoft.NET\authman 0
C:\Windows\Microsoft.NET\Framework 263581306
C:\Windows\Microsoft.NET\Framework64 551896484
- ファイル合計値が正しいか確認
エクスプローラで1つ確認し、値が正しいか確認しました。
#ref(02.png)
* CSVにしてみる [#e6d22568]
上記の関数により、ファイルサイズ一覧が取得できたので、CSV...
PS C:\> $d = Get-DirTotalFileSize C:\Windows\Microsoft.NET
PS C:\> $d | Export-Csv -NoTypeInformation -Encoding Def...
PS C:\> notepad.exe .\list.csv
csv出力されているのが確認できます。
#ref(03.png)
以上、PowerShellでディレクトリ内のファイル総合計容量を確...
#htmlinsertpcsp(win-btm.html,win-sp.html)
ページ名: