2013-07-16 6 views
11

मेरा लक्ष्य यह पता लगाने के लिए है कि मेरे नेटवर्क ड्राइव पर सभी छवियां कितनी जगह ले रही हैं।Get-ChildItem लिस्टिंग के फ़ाइल आकारों को जोड़ना

तो सभी छवियों की सूची प्राप्त करने के लिए अपने आदेश यह है:

Get-ChildItem -recurse -include *jpg,*bmp,*png \\server01\folder 

तब मैं सिर्फ फ़ाइल आकार (Length) को पुनः प्राप्त करना चाहते हैं।

Get-ChildItem -recurse -include *jpg,*bmp,*png \\server01\folder | Select-Object -property Length 

अब इस आउटपुट:

          Length 
             ------ 
             85554 
             54841 
             87129 
             843314 

मैं क्यों यह सही करने के लिए गठबंधन किया है पता नहीं है, लेकिन मैं प्रत्येक की लंबाई आकर्षित करने और उन्हें सब एक साथ जोड़ना चाहते हैं। मैं खो गया हूं और मुझे पता है कि हर चीज की कोशिश की है (जो कि पीएस के लिए नया नहीं है), Google की खोज करने की कोशिश की लेकिन कोई प्रासंगिक परिणाम नहीं मिला।

कोई भी मदद या वैकल्पिक तरीकों की सराहना की जाती है!

उत्तर

20

Measure-Object cmdlet का उपयोग करें:

$files = Get-ChildItem -Recurse -Include *jpg,*bmp,*png \\server01\folder 
$totalSize = ($files | Measure-Object -Sum Length).Sum 

प्राप्त करने के लिए जीबी में आकार 1GB द्वारा मूल्य विभाजित:

$totalSize = ($files | Measure-Object -Sum Length).Sum/1GB 
+0

धन्यवाद !! आश्चर्यजनक रूप से काम करता है, अब इसे जीबी में बदलने का कोई तरीका है? – user2517266

+0

मुझे लगता है कि मुझे $ SizeInGigs = $ कुल आकार/1 जीबी के साथ नहीं मिला – user2517266

2

आप कुछ इस तरह के साथ एक एक लाइनर के रूप में ऐसा कर सकता है।

Get-Childitem -path "C:\Program Files\Internet Explorer" | Select-Object 
Name, @{Name="KBytes";Expression={ "{0:N0}" -f ($_.Length/1KB) }} 

Name   KBytes 
----   ------ 
en-US   0 
images  0 
SIGNUP  0 
ExtExport.exe 52 
hmmapi.dll 53 
iediagcmd.exe 500 
ieinstal.exe 490 
ielowutil.exe 219 
IEShims.dll 398 
iexplore.exe 805 
sqmapi.dll 49 
संबंधित मुद्दे