もちろんです!以下は、指定したドライブの各フォルダに保存されているファイル数およびデータ容量を再帰的に調査し、表示するPowerShellスクリプトの例です。
# 指定したドライブのパスを設定
$drivePath = "C:\\\\YourDrivePath"
# フォルダ情報を再帰的に取得する関数
function Get-FolderInfo {
param (
[string]$path
)
$folderInfo = Get-ChildItem -Path $path -Recurse | Where-Object { -not $_.PSIsContainer } |
Group-Object -Property DirectoryName |
Select-Object @{Name="Folder";Expression={$_.Name}},
@{Name="FileCount";Expression={$_.Count}},
@{Name="TotalSize";Expression={($_.Group | Measure-Object -Property Length -Sum).Sum}}
return $folderInfo
}
# フォルダ情報を取得
$folderInfo = Get-FolderInfo -path $drivePath
# 結果を表示
$folderInfo | Format-Table -AutoSize
このスクリプトは、指定したドライブのパス(例:C:\\\\YourDrivePath
)を再帰的に調査し、各フォルダ内のファイル数と総データ容量を表示します。$drivePath
変数に調査したいドライブのパスを設定してください。
何か他にお手伝いできることがあれば教えてください!
もちろんです!以下は、インデントを全て2つの半角スペースで表現したPowerShellスクリプトです。
# 指定したドライブのパスを設定
$drivePath = "C:\\\\YourDrivePath"
# フォルダ情報を再帰的に取得する関数
function Get-FolderInfo {
param (
[string]$path
)
$folderInfo = Get-ChildItem -Path $path -Recurse | Where-Object { -not $_.PSIsContainer } |
Group-Object -Property DirectoryName |
Select-Object @{Name="Folder";Expression={$_.Name}},
@{Name="FileCount";Expression={$_.Count}},
@{Name="TotalSize";Expression={($_.Group | Measure-Object -Property Length -Sum).Sum}}
return $folderInfo
}
# フォルダ情報を取得
$folderInfo = Get-FolderInfo -path $drivePath
# 結果を表示
$folderInfo | Format-Table -AutoSize
このスクリプトは、指定したドライブのパス(例:C:\\\\YourDrivePath
)を再帰的に調査し、各フォルダ内のファイル数と総データ容量を表示します。$drivePath
変数に調査したいドライブのパスを設定してください。
他に何かお手伝いできることがあれば教えてください!
もちろんです!以下は、ドライブパスをコマンドライン引数から指定できるようにしたPowerShellスクリプトです。
# コマンドライン引数からドライブのパスを取得
param (
[string]$drivePath
)
if (-not $drivePath) {
Write-Host "ドライブのパスを指定してください。例: .\\\\script.ps1 -drivePath 'C:\\\\YourDrivePath'"
exit
}
# フォルダ情報を再帰的に取得する関数
function Get-FolderInfo {
param (
[string]$path
)
$folderInfo = Get-ChildItem -Path $path -Recurse | Where-Object { -not $_.PSIsContainer } |
Group-Object -Property DirectoryName |
Select-Object @{Name="Folder";Expression={$_.Name}},
@{Name="FileCount";Expression={$_.Count}},
@{Name="TotalSize";Expression={($_.Group | Measure-Object -Property Length -Sum).Sum}}
return $folderInfo
}
# フォルダ情報を取得
$folderInfo = Get-FolderInfo -path $drivePath
# 結果を表示
$folderInfo | Format-Table -AutoSize
このスクリプトは、コマンドライン引数からドライブのパスを指定できるようにしています。スクリプトを実行する際には、以下のようにパスを指定してください:
.\\\\script.ps1 -drivePath 'C:\\\\YourDrivePath'
他に何かお手伝いできることがあれば教えてください!
了解しました!以下は、フォルダを一つ進むごとに現在検索しているフォルダのパスを表示するようにしたPowerShellスクリプトです。
# コマンドライン引数からドライブのパスを取得
param (
[string]$drivePath
)
if (-not $drivePath) {
Write-Host "ドライブのパスを指定してください。例: .\\\\script.ps1 -drivePath 'C:\\\\YourDrivePath'"
exit
}
# フォルダ情報を再帰的に取得する関数
function Get-FolderInfo {
param (
[string]$path
)
$folderInfo = Get-ChildItem -Path $path -Recurse | Where-Object { -not $_.PSIsContainer } |
Group-Object -Property DirectoryName |
Select-Object @{Name="Folder";Expression={$_.Name}},
@{Name="FileCount";Expression={$_.Count}},
@{Name="TotalSize";Expression={($_.Group | Measure-Object -Property Length -Sum).Sum}}
return $folderInfo
}
# フォルダ情報を取得
function Get-FolderInfoWithProgress {
param (
[string]$path
)
$items = Get-ChildItem -Path $path -Recurse
foreach ($item in $items) {
if ($item.PSIsContainer) {
Write-Host "現在検索しているフォルダ: $($item.FullName)"
}
}
$folderInfo = $items | Where-Object { -not $_.PSIsContainer } |
Group-Object -Property DirectoryName |
Select-Object @{Name="Folder";Expression={$_.Name}},
@{Name="FileCount";Expression={$_.Count}},
@{Name="TotalSize";Expression={($_.Group | Measure-Object -Property Length -Sum).Sum}}
return $folderInfo
}
# フォルダ情報を取得
$folderInfo = Get-FolderInfoWithProgress -path $drivePath
# 結果を表示
$folderInfo | Format-Table -AutoSize
このスクリプトは、フォルダを一つ進むごとに現在検索しているフォルダのパスを表示するようにしています。スクリプトを実行する際には、以下のようにパスを指定してください: