Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   [решено] как можно проверить, сколько свободного места осталось на %systemdrive%? (http://forum.oszone.net/showthread.php?t=97784)

AnGI_Burn 10-01-2008 13:26 713216

Подскажите, пожалуйста, как можно проверить, сколько свободного места осталось на %systemdrive% и, допустим, если больше 10 гигов, то выполнить какое-либо действие? На батнике такое возможно?

vserd 11-01-2008 00:36 713812

Цитата:

Цитата AnGI_Burn
На батнике такое возможно? »

Да. Dir %systemdrive%
оттуда можно вытащить свободное место.
Посмотрите на forum.ru-board.ru в программах тему по bat/cmd и связанные темы из шапки. Там такие задания встречались.

Debugger 11-01-2008 08:29 713944

Цитата:

Цитата vserd
Посмотрите на forum.ru-board.ru »

Точнее, forum.ru-board.com :)

Vadikan 11-01-2008 10:03 714009

vserd, Debugger
Очень патриотично :)

Имхо, проще будет
Код:

fsutil volume diskfree %systemdrive%
Ну а дальше там уже скомбинировать с FOR... IN. У меня с этим плохо, но если что - CMD/BAT - нужна помощь в написании *.bat файлов

vserd 11-01-2008 10:25 714020

Цитата:

Цитата Vadikan
Очень патриотично »

Звиняйте батьку :)), советую те инструменты которыми пользуюсь и которые помогли. А где они расположены, на "дружественных" или "не дружественных" сайтах мне фиолетово.

Debugger, именно, видно вчерась мозги выключались, или "один пишем, два в уме" :))))

AnGI_Burn 11-01-2008 14:48 714185

Вот таким вот образом можно выделить нужный элемент:
Код:

for /F "Tokens=6  Delims= " %%a in ('fsutil volume diskfree %systemdrive%') do echo Free: %%a
но вот в конце значения переменной %%a болтаются 2 лишних символа... как их можно убрать?

vserd 11-01-2008 15:11 714211

AnGI_Burn,
подробно смотри
cmd /k help set

кратко
Set aa=1234567
echo %Aa% A=%aa:~0,-2%
остальные вопросы по bat/cmd задавай в соответствующей теме.

Только учти что на FAT32 fsutil volume diskfree не работает.

AnGI_Burn 11-01-2008 16:10 714246

Ок! Тогда отвечу на свой же вопрос...
Как можно проверить, сколько свободного места осталось на %systemdrive% и, допустим, если больше n гигов, то выполнить какое-либо действие?
Вот такой батник получился... если на диске больше 5 гигабайт, то выполняется какое-то действие...
Код:

@echo off
Set SPACE=5368709120
for /F "Tokens=6  Delims= " %%a in ('fsutil volume diskfree %systemdrive%') do (
echo Free space: %%a
Set fr=%%a
)
if %fr% GTR %SPACE% goto DEISTVIE
exit

:DEISTVIE
echo Doing something...

Работает покрайней мере на NTFS :)

SirSmoker 14-09-2009 18:32 1218884

AnGI_Burn,
Странно что это у тебя работает.
Т.к. в bat есть ограничение - числа только 32 bit. Т.е. нельзя сравнивать числа больше 4GB.
И строка
if %fr% GTR %SPACE% goto
ошибок выдавать не будет, но и сравнивать правильно тоже не будет.


Время: 10:51.

Время: 10:51.
© OSzone.net 2001-