私はファイルがいっぱいのディレクトリをループしており、ディレクトリ内のすべてのファイルの合計を取得する必要があります。しかし、キロバイトをフェッチ/計算する方法のために変換の問題が発生しています。ここでいくつかのファイルの合計Kバイト数
が私のコードです:私はこれを実行すると
$destinationDir = "\\server\folder"
$filename = "FILE_1234567.xls"
$filesize = 0
$totalfilesize = 0
$filesize = Get-ChildItem ($destinationDir + "\" + $filename) | Select-Object @{Name="Kbytes";Expression={"{0:N0}" -f ($_.Length/1Kb)}}
$totalfilesize += [int]($filesize)
Write-Host $filesize
Write-Host $totalfilesize
は、しかし、私は次のようなエラーメッセージが出ます:
Cannot convert the "@{Kbytes=93}" value of type "Selected.System.IO.FileInfo" to type "System.Int32".
At C:\Sample.ps1:7 char:18
+ $totalfilesize += <<<< $filesize
+ CategoryInfo : NotSpecified: (:) [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
を私はPowerShellのにかなり新しいですが、私は$filesize
をキャストすることはできませんように思えます合計するための整数に変換する。誰かが私が間違ったところで助けてくれる?
ありがとう!この$ totalfilesize + = $ filesize.Kbytesを使用するのは、まさに私が必要とするものです。 「ForEach-Object」オプションが機能しないように、各ディレクトリ内の特定のファイルのみを集計しています。助けを感謝します! – ProfessionalAmateur