Я хотел бы получить уведомление, информирующее меня о том, что на жестком диске мало места. Я использую Windows 7 Professional и думаю, что быстрый пакетный файл мог бы справиться с этим. Я планирую запускать его раз в день. Это то, что я до сих пор:
Находит оставшееся дисковое пространство с помощью команды "dir" и команды "find". Сохраняет значение в Var1. (Это работает для меня)
@echo off
FOR /F "tokens=*" %%i in ('dir ^| find "free"') do SET WinVer=%%i
FOR /F "tokens=1-3 delims=]-" %%A IN ("%WinVer%" ) DO (
SET Var1=%%A
)
Это вытягивает число из результата и удаляет запятые. Результат будет выглядеть как «111222333444» без кавычек: (это работает для меня)
set Var1=%Var1:~10,15%
set Var1=%Var1:,=%
Это проверяет, меньше ли значение в Var1 меньше 100 ГБ (мой гипотетический минимальный объем дискового пространства). Если это так, он создает файл с именем "lowSpace.txt", который я увижу в какой-то момент. (Это не работает для меня)
if %Var1% leq 100000000000 dir > lowSpace.txt
Это утверждение "если" вызывает у меня проблемы. Мое свободное дисковое пространство составляет около 150 ГБ (или 150000000000), поэтому условие if должно завершиться неудачно, и файл «dir> lowSpace.txt» не должен быть запущен, но в любом случае он работает.
Если я увеличу константу в операторе «if» с 100000000000 до 500000000000, файл «lowSpace.txt» будет создан, как я ожидал.
Или, если я снова увеличу константу с 100000000000 до 500000000000 и изменим условие с «leq» на «geq», файл «lowSpace.txt» будет создан, когда я ожидаю, что он не будет создан.
Я неправильно сравниваю свои числа? Или что-то не так с моим утверждением "если"? Кажется, что код рассматривает 150 ГБ как больше, так и меньше, чем 100 ГБ.
Вот мой полный сценарий:
@echo off
FOR /F "tokens=*" %%i in ('dir ^| find "free"') do SET WinVer=%%i
FOR /F "tokens=1-3 delims=]-" %%A IN ("%WinVer%" ) DO (
SET Var1=%%A
)
set Var1=%Var1:~10,15%
set Var1=%Var1:,=%
if %Var1% leq 100000000000 dir > lowSpace.txt
@echo on
@echo %Var1%
Обратите внимание, что 100 ГБ - это не мой настоящий объем пространства на жестком диске. Я просто использую этот номер для проверки своего кода.