|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка свободного места на диске |
|
CMD/BAT - [решено] Проверка свободного места на диске
|
Новый участник Сообщения: 29 |
Профиль | Отправить PM | Цитировать Есть команда fsutil volume diskfree C:
которая выводит на экран свободное место. Вопрос, как дальше можно работать с этими данными? В итоге надо чтобы в переменной, допустим f, было число с количеством свободного места в байтах |
|
Отправлено: 17:53, 08-04-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать white155, разбором, наподобие:
@echo off setlocal enableextensions enabledelayedexpansion for /f "skip=2 tokens=2 delims=:" %%i in ('fsutil volume diskfree C:') do set sFreeSize=%%i if defined sFreeSize echo [%sFreeSize%] endlocal exit /b 0 На практике же, например, для сравнения, данный подход не очень годится вследствие того, что «sFreeSize» — строка, а попытка перевести его в псевдочисло («set /a …») упирается в ограниченную разрядность командного процессора (числа ограничены 32 битами точности). |
Отправлено: 18:29, 08-04-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать а если сделать следующие
@echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq tokens=2 delims==" %%i in (`wmic.exe LogicalDisk where "Name='c:'" get FreeSpace /value`) do set sFreeSize=%%i if defined sFreeSize echo %sFreeSize:~0,-7%> C:\FreeSpace.log endlocal exit /b 0 можно, будет применить команду set q= и вытащить число каким-то образом из созданного файла |
Отправлено: 23:54, 08-04-2011 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Можно без вывода в файл:
@echo off setlocal enableextensions enabledelayedexpansion for /f "usebackq tokens=2 delims==" %%i in ( `wmic.exe LogicalDisk where "Name='c:'" get FreeSpace /value` ) do set sFreeSize=%%i if defined sFreeSize ( set sFreeSizePseudoMb=%sFreeSize:~0,-7% echo [!sFreeSizePseudoMb!] ) endlocal exit /b 0 |
Отправлено: 05:34, 09-04-2011 | #4 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Iska, Можно добавить в этом батнике проверку на отсутствие файлов или нулевой размер в определенной папке.
Просто запускаемая программа зависает если файлов в папке нет, надо чтобы она просто не запускалась. Программу запускаю перед endlocal |
|
Отправлено: 17:59, 24-10-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:05, 24-10-2011 | #6 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать |
Отправлено: 08:37, 25-10-2011 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:15, 25-10-2011 | #8 |
Пользователь Сообщения: 72
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 09:50, 25-10-2011 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Ошибка - [решено] Не удается скопировать FILE. Недостаточно свободного места на диске | nikitos83 | Microsoft Windows 2000/XP | 6 | 18-12-2010 18:00 | |
Разное - [решено] Не могу найти 30 Гб свободного места на диске | Diving | Microsoft Windows 7 | 2 | 20-07-2010 13:16 | |
Проверка свободного места на диске | WoRG | AutoIt | 2 | 25-03-2010 17:28 | |
Разное - Предупреждения о недостатке свободного места на диске. | deltov | Microsoft Windows Vista | 21 | 02-10-2008 21:24 | |
Определение свободного места на диске | IGROK | Microsoft Windows 2000/XP | 8 | 21-10-2003 15:24 |
|