Mengapa cuplikan berikut hanya menambahkan ukuran byte dari file terakhir ke 0 dan bukan ukuran semua file yang cocok?
$sizeOfVhds = 0
(Get-Item "\\blahhh.com\foo\bar\*.vhd") |
ForEach-Object {
$sizeOfVhds = $sizeOfVhds + $_.length
}
Saya mencoba untuk menjumlahkan ukuran dua atau lebih file VHD dalam direktori yang diberikan. Saya tidak mencoba menghitung ukuran yang dapat dibaca manusia.
powershell
koma5
sumber
sumber
get-item
hanya akan mendapatkan satu objek. Tidakkah Anda menginginkannyaget-childitem
karena Anda menginginkan array dengan semua VHD?Jawaban:
Ada cara yang lebih mudah untuk melakukan ini menggunakan
measure-object
cmdlet. Berikut adalah contoh di mana Anda dapat menganggap$Files
berisi kumpulan objek FileInfo .Berikut ini contoh menggunakan input yang Anda berikan yang mengekstraksi jumlah dalam satu pernyataan:
sumber