将IF条件放在批处理文件中?

时间:2011-09-14 06:00:13

标签: batch-file if-statement

我想检查C:驱动器中的空间是否超过60 GB,然后应该完成下一步,如果空间少,它应该显示一条消息?

为了检查磁盘空间,我可以使用“fsutil volume diskfree c:”但我不知道如何在上述条件下使用它。

2 个答案:

答案 0 :(得分:2)

假设您将1 GB视为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 :(得分:1)