指定したドライブのそれぞれのフォルダにどれぐらいのファイルが保存されているかを再帰的に調査しファイル数およびデータ容量を表示するPowerShellスクリプトを作成してください

もちろんです!以下は、指定したドライブの各フォルダに保存されているファイル数およびデータ容量を再帰的に調査し、表示する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つの半角スペースで表現してください

もちろんです!以下は、インデントを全て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

このスクリプトは、フォルダを一つ進むごとに現在検索しているフォルダのパスを表示するようにしています。スクリプトを実行する際には、以下のようにパスを指定してください: