Положить условие IF в пакетный файл? - PullRequest
1 голос
/ 14 сентября 2011

Я хочу проверить, больше ли места на диске C: более 60 ГБ, затем следует выполнить следующий шаг, а если места меньше, должно появиться сообщение?

Для проверки дискового пространства я могу использовать «fsutil volume diskfree c:», но я не знаю, как использовать его внутри вышеуказанного условия.

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

Предполагая, что у вас все в порядке с обработкой 1 ГБ как 10 9 байтов, а не как 2 30 байтов, вы можете просто

1) передать результаты FSUTIL в утилиту FIND для фильтрации несущественных строк,

2) использовать измененную командную строку в цикле FOR /F для сохранения вывода в переменной,

3) вырезатьвычеркните последние 9 символов из значения переменной и сравните остальные с требуемым количеством.

И вот моя попытка соединить вышеупомянутые шаги:

@ECHO OFF
SET required=60
FOR /F "tokens=2 delims=:" %%A IN ('fsutil volume diskfree c: ^| find "# of bytes"') DO SET "space=%%A"
IF %space:~0,-9% LSS %required% ECHO Space is less than %required% GB!

Приведенный выше скрипт обрабатывает общее количествопространство.Если вы хотите проверить свободное место, измените "# of bytes" на "# of free".

1 голос
/ 14 сентября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...