Показать полную графическую версию : Свободное место на диске
InnoSanctum
16-02-2009, 15:48
Стоит задача - слежение за свободным местом на жестких дисках серверов под управлением windows 2003.
У меня была идея испольщовать команду dir, но уж больно хлопотно вырезать оттуда циферки.
Замечательно удобная программа Conrtol Agent несет в себе такой функционал - позволяет следить за местом, не особенно загружая при этом систему, но увы - безбожно врет.
Смотрел SpaceQuard Quota Server - отличная софтина, мощная, наглядная, но уж больно тяжеловесная и не дружит с Акронисом.
Подскажите, пожалуйста, есть ли какой-то удобный способ узнать количество свободного (или занятого) места на диске из командной строки win2003? или, быть может, какое-то готовое решение?
Спасибо.
"fsutil volume diskfree c:\"
Delirium
17-02-2009, 02:21
в добавление к посту Lex7er: fsutil volume diskfree c:\ >C:\freespace.txt
Данные запишутся в C:\freespace.txt, можно данную задачу запихать в планировщик и потом просто смотреть содержимое файла.
А представить информацию не в байтах, а в КБ или МБ можно?
Telepuzik
17-02-2009, 10:02
Могу предложить скрипт free.js:
var fso, d, s;
var stdout = WScript.StdOut;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName("c:"));
stdout.WriteLine(d.FreeSpace + " Bytes");
s = d.FreeSpace/1024;
stdout.WriteLine(s + " Kbytes");
s = s/1024;
stdout.WriteLine(s + " MBytes");
s = s/1024;
stdout.WriteLine(s + " GBytes");
Запускать: cscript free.js
тогда еще вариант:
WMIC LogicalDisk Where (Name = "C:") GET FreeSpace
куда он будет передавать это значение?
куда он будет передавать это значение »
куда угодно, хоть в переменную... но проблема в том, что размер хранится 64-битным числом, а CMD понимает только 32-битные целые числа, что соответствует лишь 4Гб размера в байтах... а если учесть только положительные, то и того меньше - до 2-х Гб точного значения свободного места в байтах
@Echo Off
For /F "UseBackQ" %%i In (`WMIC LogicalDisk Where Name^="C:" GET FreeSpace`) Do Set FreeSpace=%%i
SET /A FreeSpace=%FreeSpace% 2>Nul
IF ERRORLEVEL 1 (
Set Message=На диске свободно более 4-х Гб
GoTo MESSAGE
)
IF %FreeSpace% LSS 0 (
Set Message=На диске свободно от 2-х до 4-х Гб
GoTo MESSAGE
)
Set /A FreeSpaceKb = %FreeSpace% / 1024
Set /A FreeSpaceMb = %FreeSpaceKb% / 1024
Set Message=На диске свободно %FreeSpaceMb% Mb
:MESSAGE
@Echo %Message%
ADD: к слову, в репозитарии Microsoft есть варианты на VBScript (в процентах):
How Can I Determine the Percentage of Free Space on a Drive? (http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct04/hey1013.mspx)
How Can I Determine the Percentage of Free Space on a Drive? (http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct07/hey1015.mspx)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.