विंडोज कमांड लाइन से फ़ोल्डर का आकार प्राप्त करें


128

क्या किसी भी 3 पार्टी टूल का उपयोग किए बिना कमांड लाइन से एक फ़ोल्डर का आकार प्राप्त करना विंडोज में संभव है?

मैं वही परिणाम चाहता हूं जो आपको विंडोज़ एक्सप्लोरर → गुण में फ़ोल्डर पर राइट क्लिक करने पर मिलेगा।

जवाबों:


120

आप केवल पुनरावर्ती आकार जोड़ सकते हैं (निम्नलिखित एक बैच फ़ाइल है):

@echo off
set size=0
for /r %%x in (folder\*) do set /a size+=%%~zx
echo %size% Bytes

हालाँकि, इसमें कई समस्याएं हैं क्योंकि cmd32-बिट हस्ताक्षरित पूर्णांक अंकगणित तक सीमित है। तो यह 2 GiB गलत 1 के ऊपर आकार प्राप्त करेगा । इसके अलावा यह संभवत: सहजीवन और जंक्शनों को कई बार गिनाएगा ताकि यह सबसे अच्छा ऊपरी सीमा पर हो, न कि सही आकार (आपको किसी भी उपकरण के साथ यह समस्या होगी, हालांकि)।

एक विकल्प है PowerShell:

Get-ChildItem -Recurse | Measure-Object -Sum Length

या इससे कम:

ls -r | measure -sum Length

यदि आप इसे पसंद करते हैं:

switch((ls -r|measure -sum Length).Sum) {
  {$_ -gt 1GB} {
    '{0:0.0} GiB' -f ($_/1GB)
    break
  }
  {$_ -gt 1MB} {
    '{0:0.0} MiB' -f ($_/1MB)
    break
  }
  {$_ -gt 1KB} {
    '{0:0.0} KiB' -f ($_/1KB)
    break
  }
  default { "$_ bytes" }
}

आप इसे सीधे से उपयोग कर सकते हैं cmd:

powershell -noprofile -command "ls -r|measure -sum Length"

1 मेरे पास कहीं-कहीं बैच फाइलों में आंशिक रूप से समाप्त होने वाली बिग्नम लाइब्रेरी है, जो कम से कम मनमाना-सटीक पूर्णांक जोड़ देती है। मैं वास्तव में इसे जारी करना चाहिए, मुझे लगता है :-)


+1 मैं बस कुछ पाने के लिए * सहायता * आउटपुट में भटक रहा था।
स्टीव

2
स्टीव, मेरी नज़र में PowerShell जिस तरह से यूनिक्स की तुलना में अधिक यूनिक्स-वाई है जिसमें अधिकांश कोर कमांड वास्तव में ऑर्थोगोनल हैं। यूनिक्स duमें डायरेक्टरी साइज देता है लेकिन यह सब कर रहा है पेड़ पर चल रहा है और समेट रहा है। कुछ ऐसा जो बहुत ही सहजता से यहाँ की तरह एक पाइपलाइन में व्यक्त किया जा सकता है :-)। इसलिए PowerShell के लिए मैं आमतौर पर इस बात की तलाश करता हूं कि आप उच्च-स्तरीय लक्ष्य को उपयुक्त निचले-स्तर के संचालन में कैसे विघटित कर सकते हैं।
जॉय

3
मुझे लगता है, यह उस तरह से छिपे हुए फ़ोल्डरों को नजरअंदाज करना प्रतीत होता है। ls -force -r काम करता है अगर मैं छिपे हुए फ़ोल्डरों को भी शामिल करना चाहता हूं।
गर्ग

2
folder\*मेरे लिए उस फ़ोल्डर का आकार काम नहीं कर रहा है जिसे मैंने जगह दी है 0 बाइट्स दिखाता है, क्या कोई समाधान है?
आईटी रिसर्चर

2
थोड़ा बेहतर दिखने वाला संस्करण: शक्तियां -noprofile -command "'{0: N0}' -f (ls -r।-माप लंबाई -s लंबाई) .Sum"
zumalifeguard

120

उसके लिए एक अंतर्निहित विंडोज टूल है:

dir /s 'FolderName'

यह बहुत सारी अनावश्यक जानकारी को प्रिंट करेगा लेकिन अंत इस तरह से फ़ोल्डर का आकार होगा:

 Total Files Listed:
       12468 File(s)    182,236,556 bytes

यदि आपको छिपे हुए फ़ोल्डरों को शामिल करने की आवश्यकता है /a


7
यदि आपको पूर्णांक रिटर्न मान की आवश्यकता नहीं है तो यह सबसे सुंदर समाधान है। नोट: '/ a' स्विच में कुल आकार में छिपी हुई और सिस्टम फाइलें शामिल होंगी।
ओरान डी। लॉर्ड

1
मुझे लगता है कि कुछ और उपयोगी इकाइयों में फ़ाइल आकार प्रिंट करना संभव नहीं है, जैसे kB या MB, है ना?
डेविड फेरेंस्की रोगोजान

सिंगल कोट्स के बजाय डबल कोट्स।
user2924019

66

मैं इस लिंक http://technet.microsoft.com/en-us/sysinternals/bb896651 पर Microsoft द्वारा उपलब्ध कराए गए Sysinternals सूट से उपयोगिता DU डाउनलोड करने का सुझाव देता हूं।

usage: du [-c] [-l <levels> | -n | -v] [-u] [-q] <directory>
   -c     Print output as CSV.
   -l     Specify subdirectory depth of information (default is all levels).
   -n     Do not recurse.
   -q     Quiet (no banner).
   -u     Count each instance of a hardlinked file.
   -v     Show size (in KB) of intermediate directories.


C:\SysInternals>du -n d:\temp

Du v1.4 - report directory disk usage
Copyright (C) 2005-2011 Mark Russinovich
Sysinternals - www.sysinternals.com

Files:        26
Directories:  14
Size:         28.873.005 bytes
Size on disk: 29.024.256 bytes

जब आप इस पर होते हैं, तो अन्य उपयोगिताओं पर एक नज़र डालें। वे हर विंडोज प्रोफेशनल के लिए एक जीवन रक्षक हैं


11
मैं शायद ही "किसी भी 3-पार्टी उपकरण के बिना", मुझे लगता है।
जॉय

11
ओह सही, लेकिन यह सोचा था कि परिवार को '3 पार्टी' नहीं माना जाना चाहिए।
स्टीव

1
ठीक है, दी गई है, लेकिन यह अभी भी एक अतिरिक्त डाउनलोड है (या \\live.sysinternals.comयदि वह अभी भी मौजूद है तो इसका उपयोग करके )। मैं तहे दिल से सहमत हूँ, हालांकि, सभी sysinternals टूल को डिफ़ॉल्ट रूप से शामिल किया जाना चाहिए। हालांकि कई उपयोगों के लिए PowerShell काफी योग्य प्रतिस्थापन है।
जॉय

1
क्या किसी ने पॉवर्स कहा? निम्नलिखित को आज़माएँ: "{0: N2}" -f ((Get-ChildItem C: \ Temp -Recurse | नाप-तोल-लंबाई लंबाई -Sum) .सुम / 1 एमबी) + "एमबी"
जॉन होमर

3
मैं आपको सुझाव देता हूं कि मार्क रोसिनोविच जो कुछ भी विकसित करते हैं, उसे डाउनलोड करने के लिए :) मैं इस नाम को देखता रहता हूं जब भी मुझे कोई उपकरण मिलता है जो मेरे जीवन को बचाता है।
dkellner

46

एक लाइन:

powershell -command "$fso = new-object -com Scripting.FileSystemObject; gci -Directory | select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName | sort Size -Descending | ft @{l='Size [MB]'; e={'{0:N2}    ' -f ($_.Size / 1MB)}},FullName"

एक ही है, लेकिन केवल शक्ति:

$fso = new-object -com Scripting.FileSystemObject
gci -Directory `
  | select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName `
  | sort Size -Descending `
  | ft @{l='Size [MB]'; e={'{0:N2}    ' -f ($_.Size / 1MB)}},FullName

यह निम्नलिखित परिणाम उत्पन्न करना चाहिए:

Size [MB]  FullName
---------  --------
580,08     C:\my\Tools\mongo
434,65     C:\my\Tools\Cmder
421,64     C:\my\Tools\mingw64
247,10     C:\my\Tools\dotnet-rc4
218,12     C:\my\Tools\ResharperCLT
200,44     C:\my\Tools\git
156,07     C:\my\Tools\dotnet
140,67     C:\my\Tools\vscode
97,33      C:\my\Tools\apache-jmeter-3.1
54,39      C:\my\Tools\mongoadmin
47,89      C:\my\Tools\Python27
35,22      C:\my\Tools\robomongo

1
क्या आधार फ़ोल्डर में एमबी में सभी फ़ाइलों और आकार को दिखाने का एक तरीका है? इस मामले
थॉमस

2
इसके अलावा यह तब टूटता है जब बहुत सारे फ़ोल्डर होते हैं (उदाहरण के लिए C: ड्राइव में)
रौनक थॉमस

0.00 C:\Windowsक्या मैं सभी फोल्डर के लिए इसे ऑप्टिमाइज़ कर सकता हूं, पहले ही एडमिन के रूप में चलने की कोशिश कर चुका हूं
Tilo

यह अच्छा है, लेकिन यह मेरे घटक फ़ोल्डर नामों को काट देता है। उन्हें पूरी तरह से प्रदर्शित करने की आज्ञा क्या है?
sean.net

@ sean.net का मतलब है कि यह लंबे फ़ोल्डरों के मामले में "..." के साथ समाप्त होता है? यह है कि कैसे ft( Format-Table) काम करता है। आप flइसके बजाय ( Format-List)
frizik

16

यदि आपने अपने कंप्यूटर में स्थापित किया है (अधिक से अधिक सामान्य हो रहा है) तो MINGW32 खोलें और टाइप करें: du folder


4
du -h -d 1 folder | sort -hयदि आप मानव पठनीय आकार, केवल उपनिर्देशिका का एक स्तर, और आकार के आधार पर चाहते हैं, तो आप निम्न कमांड का उपयोग कर सकते हैं ।
vard

8

मैं https://github.com/aleksaan/diskusage उपयोगिता का उपयोग करने की सलाह देता हूं । बहुत ही सरल और सहायक। और बहुत तेज।

बस एक कमांड शेल में टाइप करें

diskusage.exe -path 'd:/go; d:/Books'

और आकार द्वारा व्यवस्थित फ़ोल्डरों की सूची प्राप्त करें

  1. | DIR: d: / go | SIZE: 325.72 एमबी | DEPTH: 1
  2. | DIR: d: / Books | आकार: 14.01 एमबी | DEPTH: 1

इस उदाहरण को HDD पर 272ms पर निष्पादित किया गया था ।

उदाहरण के लिए, आप सबफ़ोल्डर की गहराई बढ़ा सकते हैं:

diskusage.exe -path 'd:/go; d:/Books' -depth 2

और न केवल चयनित फ़ोल्डर के लिए बल्कि इसके सबफ़ोल्डर्स के लिए भी आकार प्राप्त करें

  1. | DIR: d: / go | SIZE: 325.72 एमबी | DEPTH: 1
  2. | DIR: d: / go / pkg | SIZE: 212.88 एमबी | DEPTH: 2
  3. | DIR: d: / go / src | आकार: 62.57 एमबी | DEPTH: 2
  4. | DIR: d: / go / bin | आकार: 30.44 एमबी | DEPTH: 2
  5. | DIR: d: / Books / शतरंज | आकार: 14.01 एमबी | DEPTH: 2
  6. | DIR: d: / Books | आकार: 14.01 एमबी | DEPTH: 1
  7. | DIR: d: / go / api | आकार: 6.41 एमबी | DEPTH: 2
  8. | DIR: d: / go / test | आकार: 5.11 एमबी | DEPTH: 2
  9. | DIR: d: / go / doc | आकार: 4.00 एमबी | DEPTH: 2
 10 | DIR: d: / go / misc | आकार: 3.82 एमबी | DEPTH: 2
 11. | DIR: d: / go / lib | SIZE: 358.25 Kb | DEPTH: 2

* सर्वर पर 3.5Tb को 3m12s के लिए स्कैन किया गया है


नया संस्करण जारी! github.com/aleksaan/diskusage इम्प्रूवमेंट्स: 1) सिम्लिंक के साइज़ 2 के साथ सही काम) विश्लेषण की गई वस्तुओं के बारे में ऑर्वाॅल जानकारी
अलेक्जेंडर

संस्करण 2.0.2 जारी! github.com/aleksaan/diskusage/releases/tag/v2.0.2 - इनलाइन मापदंडों के बजाय कॉन्फ़िगरेशन फ़ाइल - सरल उपयोग मोड (किसी भी फ़ोल्डर के लिए निष्पादन योग्य डिस्क कॉपी करें, इसे चलाएं और परिणाम प्राप्त करें) - सही परिणाम आउटपुट (लाइन प्रतीक का सही अंत जीत) / यूनिक्स) - कंसोल मोड में फाइल करने या प्राप्त करने के लिए परिणाम सहेजें (विकल्प 'टॉफ़ाइल')
अलेक्जेंडर

कृपया, ध्यान दें कि आप एक लेखक हैं। (से stackoverflow.com/help/promotion : "हालांकि, यदि आप अपनी संबद्धता अपने जवाब में खुलासा करना चाहिए।" )
aeracode

6

यहां एक पावरशेल कोड आता है जिसे मैं वर्तमान निर्देशिका के तहत सभी फ़ोल्डरों के लिए सूची आकार और फ़ाइल गणना के लिए लिखता हूं। अपनी आवश्यकता के अनुसार पुन: उपयोग या संशोधित करने के लिए स्वतंत्र महसूस करें।

$FolderList = Get-ChildItem -Directory
foreach ($folder in $FolderList)
{
    set-location $folder.FullName
    $size = Get-ChildItem -Recurse | Measure-Object -Sum Length
    $info = $folder.FullName + "    FileCount: " + $size.Count.ToString() + "   Size: " + [math]::Round(($size.Sum / 1GB),4).ToString() + " GB"
    write-host $info
}

मेरे लिये कार्य करता है। उपयोगी है अगर आपके एक हेडलेस सर्वर पर।
andrew pate

सरल और सुरुचिपूर्ण! मेरा संस्करण: $FolderList = Get-ChildItem -Directory -Force; $data = foreach ($folder in $FolderList) { set-location $folder.FullName; $size = Get-ChildItem -Recurse -Force | Measure-Object -Sum Length; $size | select @{n="Path"; e={$folder.Fullname}}, @{n="FileCount"; e={$_.count}}, @{n="Size"; e={$_.Sum}} } यह ऑब्जेक्ट्स प्रदान करेगा (अधिक पॉवर्सशेल-ईश), 'फाइलकाउंट' और 'साइज' पूर्णांक हैं (इसलिए आप बाद में उन्हें संसाधित कर सकते हैं, यदि आवश्यक हो), और 'आकार' बाइट्स में है, लेकिन आप इसे आसानी से बदल सकते हैं GB (या इच्छित इकाई) के साथ $Data.Size / 1GB
कर्पूर

या वन-लाइनर:$Data = dir -Directory -Force | %{ $CurrentPath = $_.FullName; Get-ChildItem $CurrentPath -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object -Sum Length | select @{n="Path"; e={$CurrentPath}}, @{n="FileCount"; e={$_.count}}, @{n="Size"; e={$_.Sum}} }
कर्पूर

2

इस कोड का परीक्षण किया जाता है। आप इसे फिर से देख सकते हैं।

@ECHO OFF
CLS
SETLOCAL
::Get a number of lines contain "File(s)" to a mytmp file in TEMP location.
DIR /S /-C | FIND "bytes" | FIND /V "free" | FIND /C "File(s)" >%TEMP%\mytmp
SET /P nline=<%TEMP%\mytmp
SET nline=[%nline%]
::-------------------------------------
DIR /S /-C | FIND "bytes" | FIND /V "free" | FIND /N "File(s)" | FIND "%nline%" >%TEMP%\mytmp1
SET /P mainline=<%TEMP%\mytmp1
CALL SET size=%mainline:~29,15%
ECHO %size%
ENDLOCAL
PAUSE

धन्यवाद, यह मेरे लिए उन फ़ोल्डरों के साथ काम करता है जो 1GB से छोटे होते हैं, लेकिन उदाहरण के लिए, मेरे पास 3,976,317,115 बाइट्स (3.70GB) का एक फ़ोल्डर है, और स्क्रिप्ट मेरे लिए यह स्ट्रिंग ") 932", क्या आप जानते हैं क्यों?
एलाडी

2

मुझे लगता है कि यह केवल तभी काम करेगा जब निर्देशिका काफी स्थिर हो और इसकी सामग्री दो dir कमांड के निष्पादन के बीच परिवर्तित न हो। शायद इससे बचने के लिए इसे एक कमांड में संयोजित करने का एक तरीका है, लेकिन यह मेरे उद्देश्य के लिए काम करता है (मुझे पूरी लिस्टिंग नहीं चाहिए; बस सारांश)।

GetDirSummary.bat स्क्रिप्ट:

@echo off
rem  get total number of lines from dir output
FOR /F "delims=" %%i IN ('dir /S %1 ^| find "asdfasdfasdf" /C /V') DO set lineCount=%%i
rem  dir summary is always last 3 lines; calculate starting line of summary info
set /a summaryStart="lineCount-3"
rem  now output just the last 3 lines
dir /S %1 | more +%summaryStart%

उपयोग:

GetDirSummary.bat c: \ temp

आउटपुट:

 Total Files Listed:
          22 File(s)         63,600 bytes
           8 Dir(s)  104,350,330,880 bytes free

1

मैं du.exeअपने git वितरण के साथ मिला । एक अन्य स्थान पर Microsoft या Unxutils लिखा जा सकता है ।

एक बार जब आप अपने मार्ग में du.exe मिला। यहाँ आपका fileSizes.bat:-)

@echo ___________
@echo DIRECTORIES
@for /D %%i in (*) do @CALL du.exe -hs "%%i"
@echo _____
@echo FILES
@for %%i in (*) do @CALL du.exe -hs "%%i"
@echo _____
@echo TOTAL
@du.exe -sh "%CD%"

___________
DIRECTORIES
37M     Alps-images
12M     testfolder
_____
FILES
765K    Dobbiaco.jpg
1.0K    testfile.txt
_____
TOTAL
58M    D:\pictures\sample

1

मुझे लगता है कि आपका एकमात्र विकल्प diruse (एक अत्यधिक समर्थित तृतीय पक्ष समाधान) होगा:

कमांड लाइन से फ़ाइल / निर्देशिका आकार प्राप्त करें

विंडोज सीएलआई दुर्भाग्य से काफी प्रतिबंधक है, आप वैकल्पिक रूप से Cygwin स्थापित कर सकते हैं जो कि cmd की तुलना में उपयोग करने का एक सपना है। यह आपको पोर्ट किए गए यूनिक्स टूल डू तक पहुंच देगा जो कि विंडोज़ पर ड्यूर्यूज़ का आधार है।

क्षमा करें, मैं आपके प्रश्नों का उत्तर सीधे उस आदेश के साथ देने में सक्षम नहीं था, जिसे आप मूल पंजा पर चला सकते हैं।


1
अगर आपको बस जरूरत है duतो Cygwin की ओवरकिल की। बस GnuWin32 के साथ जाएं
जॉय

2
वास्तव में यह ओवरकिल है, लेकिन यह भी भयानक है। @Joey के ऊपर आपकी पोस्ट के लिए +1 (इसे सचमुच करने के लिए प्रतिनिधि नहीं मिला :()
इलिज़ियन

मेरी विनम्र राय में सिग्विन कुछ के लिए उपयोगी हो सकता है लेकिन यह भयानक और भयानक से बहुत दूर है। लेकिन मुझे लगता है कि यूनिक्स उपयोगकर्ता वाइन के बारे में भी यही कहते हैं।
जॉय

1
"शराब" - कंपकंपी, मैं अपने विकास के लैपटॉप पर साइगविन का उपयोग करता हूं क्योंकि बैटरी जीवन लिनक्स के नीचे भयावह है और इस पर एक वीएम चलाने के लिए सुविधाजनक नहीं है। इसे स्थापित करने में कुछ समय लगता है, लेकिन साइगविन उन लोगों के लिए शानदार है, जो विंडोज में निक्स शेल को याद करते हैं, व्यक्तिगत रूप से मुझे पॉवर्सशेल पसंद नहीं है, हालांकि मुझे ग्नूविन की जांच करनी पड़ सकती है। धन्यवाद @ जॉय।
इलिज़ियन

1

:: ऐसी कई पंक्तियाँ प्राप्त करें, जो Dir कमांड देती हैं (/ संख्या विभाजकों को समाप्त करने के लिए -c:,)] ["टोकन = 3", जो कि Dir में प्रत्येक पंक्ति के तीसरे कॉलम को देखने के लिए है]

FOR /F "tokens=3" %%a IN ('dir /-c "%folderpath%"') DO set /a i=!i!+1

प्रायद्वीप रेखा की संख्या, फ़ाइलों की संख्या के बाइट्स की संख्या है:

set /a line=%i%-1

अंत में पेन लाइन में बाइट्स की संख्या प्राप्त करें - 3 कॉलम:

set i=0
FOR /F "tokens=3" %%a IN ('dir /-c "%folderpath%"') DO (
  set /a i=!i!+1
  set bytes=%%a
  If !i!==%line% goto :size  
)
:size
echo %bytes%

चूंकि यह शब्द खोज का उपयोग नहीं करता है इसलिए इसमें भाषा की समस्याएं नहीं होंगी।

सीमाएं:

  • केवल 2 जीबी से कम के फ़ोल्डरों के साथ काम करता है (cmd 32 से अधिक बिट्स की संख्या को हैंडल नहीं करता है)
  • आंतरिक फ़ोल्डर्स के बाइट्स की संख्या को नहीं पढ़ता है।

1

प्रयत्न:

SET FOLDERSIZE=0
FOR /F "tokens=3" %A IN ('DIR "C:\Program Files" /a /-c /s ^| FINDSTR /C:" bytes" ^| FINDSTR /V /C:" bytes free"') DO SET FOLDERSIZE=%A

यदि आप चाहते हैं कि किसी भी फ़ोल्डर में C: \ Program Files बदलें और बैच फ़ाइल में उपयोग करने पर% A%% A में बदलें

यह पूरे फ़ोल्डर का आकार देता है, जिसमें सबफ़ोल्डर्स और छिपी हुई और सिस्टम फाइलें शामिल हैं, और 2GB से अधिक फ़ोल्डरों के साथ काम करता है

यह स्क्रीन पर लिखता है, इसलिए यदि आप ऐसा नहीं चाहते हैं तो आपको एक अंतरिम फ़ाइल का उपयोग करना होगा।


1

निम्नलिखित स्क्रिप्ट का उपयोग किसी दिए गए फ़ोल्डर के तहत प्रत्येक फ़ाइल का आकार लाने और संचित करने के लिए किया जा सकता है।
फ़ोल्डर %folder%स्क्रिप्ट को इस स्क्रिप्ट के तर्क के रूप में दिया जा सकता है ( %1)।
अंततः, परिणाम पैरामीटर में आयोजित किया जाता है%filesize%

@echo off
SET count=1
SET foldersize=0
FOR /f "tokens=*" %%F IN ('dir /s/b %folder%') DO (call :calcAccSize "%%F")
echo %filesize%
GOTO :eof

:calcAccSize
 REM echo %count%:%1
 REM set /a count+=1
 set /a foldersize+=%~z1
 GOTO :eof

नोट: विधि calcAccSizeफ़ोल्डर की सामग्री को भी प्रिंट कर सकती है (ऊपर उदाहरण में टिप्पणी की गई है)


1

तो यहाँ आपके अनुरोधों के लिए एक समाधान है जिस तरीके से आपने मूल रूप से पूछा था। यह मानव पठनीयता को फाइलों की सीमा के बिना फाइल कर देगा जो सभी को अनुभव हो रहा है। विस्टा या नए के साथ संगत। यदि Robocopy स्थापित है तो केवल XP उपलब्ध है। बस इस बैच फ़ाइल पर एक फ़ोल्डर ड्रॉप करें या नीचे बताए गए बेहतर तरीके का उपयोग करें।

@echo off
setlocal enabledelayedexpansion
set "vSearch=Files :"

For %%i in (%*) do (
    set "vSearch=Files :"
    For /l %%M in (1,1,2) do ( 
        for /f "usebackq tokens=3,4 delims= " %%A in (`Robocopy "%%i" "%%i" /E /L /NP /NDL /NFL ^| find "!vSearch!"`) do (
            if /i "%%M"=="1" (
                set "filecount=%%A"
                set "vSearch=Bytes :"
            ) else (
                set "foldersize=%%A%%B"
            )
        )
    )
    echo Folder: %%~nxi FileCount: !filecount! Foldersize: !foldersize!
    REM remove the word "REM" from line below to output to txt file
    REM echo Folder: %%~nxi FileCount: !filecount! Foldersize: !foldersize!>>Folder_FileCountandSize.txt
)
pause

इस बैच फ़ाइल का उपयोग करने में सक्षम होने के लिए इसे अपने SendTo फ़ोल्डर में रखें। यह आपको फ़ोल्डर या फ़ोल्डर के चयन पर राइट-क्लिक करने, SendTo विकल्प पर क्लिक करने और फिर इस बैच फ़ाइल का चयन करने की अनुमति देगा।

अपने कंप्यूटर पर SendTo फोल्डर को सबसे सरल तरीके से खोजने के लिए cmd को खोलना है फिर इस लाइन में कॉपी करें।

explorer C:\Users\%username%\AppData\Roaming\Microsoft\Windows\SendTo


किसी के लिए चिंतित Robocopy फ़ाइलों को स्थानांतरित करेगा .. नहीं। / l विकल्प केवल सूचीबद्ध करता है। इसके अलावा, रोबोकॉपी 3 जी पार्टी नहीं है, रोबोकॉपी विंडोज में विस्टा अप से डिफ़ॉल्ट रूप से स्थापित है, एक्सपी आपको इसे स्थापित करने की आवश्यकता है।
जूल्सवेर्न

जोड़ के लिए धन्यवाद। खुशी है कि इस धागे को अभी भी ध्यान आकर्षित कर रहा है; ;-) को जोड़ना चाहते हैं कि रोबोकॉपी (महान उपकरण) कैसे स्थापित करें।
एल्डैड असिस

0

मैंने इसी तरह की समस्या को हल किया। इस पृष्ठ की कुछ विधियाँ धीमी हैं और कुछ बहुभाषी वातावरण में समस्याग्रस्त हैं (सभी मान लेते हैं कि अंग्रेजी)। मुझे cmd में vbscript का उपयोग करके सरल वर्कअराउंड मिला। इसका परीक्षण W2012R2 और W7 में किया गया है।

>%TEMP%\_SFSTMP$.VBS ECHO/Set objFSO = CreateObject("Scripting.FileSystemObject"):Set objFolder = objFSO.GetFolder(%1):WScript.Echo objFolder.Size
FOR /F %%? IN ('CSCRIPT //NOLOGO %TEMP%\_SFSTMP$.VBS') DO (SET "S_=%%?"&&(DEL %TEMP%\_SFSTMP$.VBS))

यह पर्यावरण चर S_ सेट करता है। आप निश्चित रूप से अंतिम पंक्ति को बदल कर सीधे परिणाम के उदाहरण के लिए प्रदर्शित कर सकते हैं

FOR /F %%? IN ('CSCRIPT //NOLOGO %TEMP%\_SFSTMP$.VBS') DO (ECHO "Size of %1 is %%?"&&(DEL %TEMP%\_SFSTMP$.VBS))

आप इसे सबरूटीन के रूप में या स्टैंडअलोन सेमीड के रूप में उपयोग कर सकते हैं। पैरामीटर उद्धरणों में बंद परीक्षण किए गए फ़ोल्डर का नाम है।


-3

केवल कुल आकार प्राप्त करने के लिए सबसे आसान तरीका शक्तियां है, लेकिन अभी भी इस तथ्य से सीमित है कि 260 वर्णों से अधिक लंबे मार्ग कुल में शामिल नहीं हैं


2
यह एक खराब और घटिया जवाब है। कमांड लाइन या कोड क्या है?
तातारिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.