سؤال

أريد أن أعرف مقدار مساحة القرص المستخدمة بواسطة ملفات ZIP (أو أي ملحق آخر) في شجرة دليل معين. هل هذا ممكن في سطر الأوامر (في برنامج دفعة)؟

يمكنني سردها، أي: DIR / S * .ZIP أو باستخدام "Forfiles": Forfiles / PD: WinCAP / S / M * .ZIP / C "CMD / C ECHOFSize"

أحتاج إليها في برنامج دفعة، لأنني أريد تشغيله على 100+ خوادم (W2K3). أنا معتاد على UNIX / Linux، ويعطيني DOS صداعا؛)

الأفكار؟

شكرا! رون

هل كانت مفيدة؟

المحلول

إليك نسخة معدلة من الشخص الموجود:http://en.kioskea.net/forum/affich-42442-dos-command-batch-file-to-find-a-folder-size.

@echo off
setLocal EnableDelayedExpansion
set /a value=0
set /a sum=0 
FOR /R %1 %%I IN (%2) DO (
set /a value=%%~zI/1024/1024
set /a sum=!sum!+!value!
)
@echo Size is: !sum!  MB

من أجل تجنب الفائض، فإنه يحول القيم إلى ميغابايت على الفور، لذا فستتقرح، وبالتالي الإبلاغ عن الإجمالي ولكن نأمل أن يضعك هذا على المسار الصحيح على الأقل. حفظها كما dirsize.bat واتصل به مع الدليل باعتباره المعلمة الأولى والنمط لتتناسب مع الثانية:

dirsize c:\ *.zip

نصائح أخرى

يمكنك المحاولة في أمر، ربما يمكن أن يساعد في تشغيل الأمر عن بعد.

مثال : على DOS موجه الكتابة > at \\localhost dir /s *.zip (يمكن أن يكون localhost 192.bla.bla.bla، ما تريد استدعاء جهاز التحكم عن بعد)


مساعدة إضافية

The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

إذا كنت تستطيع تنزيل المواد على جهازك، فلا يزال بإمكانك استخدام أدوات يونيكس، مثل DU.

du *zip

الدفع أدوات جنو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top