Sugiro usar um script do PowerShell para isso.
wmic
retorna o tamanho em bytes, o lote é limitado a comparações de números de inteiros de 32 bits assinados, muito abaixo de 100 GB. Você teria que truncar o número primeiro.
PowerShell
if ((Get-WMIObject Win32_Logicaldisk -filter "deviceid='C:'").FreeSpace -gt 100GB){
"yes enough free space"
} else {
"not enough free space"
}
Eu tenho que estender as informações acima sobre comparação de números em lote .
Se os números estiverem contidos em sequências de comprimento igual, eles poderão ser comparados de maneira válida como strings.
Uma comparação de string ocorre caractere por caractere, um espaço inicial / zero é menor que 1.
No momento, o maior tamanho de disco rígido é 10TB = 10995116277760 bytes, com 14 casas decimais - o lote a seguir usa 15 locais para todos os números.
@Echo off
Rem 543210987654321
Set "Blank= "
Set "GB100= 107374182400"
Set "TB_10= 10995116277760"
for /f "tokens=2" %%A in (
'wmic LogicalDisk Get DeviceID^,FreeSpace ^| find /i "C:"'
) Do Set "FreeSpace=%Blank%%%A"
Set "FreeSpace=%FreeSpace:~-15%"
Echo FreeSpace="%FreeSpace%"
Echo 100 GB="%GB100%"
If "%FreeSpace%" gtr "%GB100%" (
Echo yes enough free space
) else (
Echo not enough free space
)
Exemplo de saída:
> Check-FreeSpace.cmd
FreeSpace=" 101606346752"
100 GB=" 107374182400"
not enough free space
> Check-FreeSpace.cmd
FreeSpace=" 1181504520192"
100 GB=" 107374182400"
yes enough free space