获取变量的输出,然后是百分号符号批处理脚本

时间:2016-05-01 07:18:14

标签: windows batch-file

我正在创建一个脚本,只要磁盘空间达到阈值就会发送邮件。我找到了一个简单的工具来获取磁盘驱动器的空间使用。但我想过滤输出并为驱动器设置一个超过定义阈值的条件。

使用psinfo.exe工具,我可以获得磁盘使用量输出。此外,我想只获取下面输出中的百分号(%)后面的数字,并为超出阈值的可用空间设置一个条件。

Volume Type       Format     Label                      Size       Free   Free
   C: Fixed      NTFS       OS                    181.62 GB   91.69 GB  50.5%
   D: Fixed      NTFS       New Volume            273.90 GB  183.22 GB  66.9%

请你帮我完成脚本。

2 个答案:

答案 0 :(得分:0)

如果您的磁盘标签不包含空格或圆点,您可以尝试:

@echo off

set "threshold=50"

for /f "skip=1 tokens=1,11,12 delims=:.%% " %%a in ('psinfo') do (
    echo -%%a-%%b-%%c-
    if %%b geq %threshold% (
        echo disk %%a exceeds the threshold %threshold%
        echo free disk space is %%b.%%c%%
        echo some other code here
    )

)

答案 1 :(得分:0)

@echo off
setlocal EnableDelayedExpansion

set "treshold=50"

for /F "skip=1 delims=" %%a in ('psinfo') do (
   set "disk="
   for %%b in (%%a) do (
      if not defined disk set "disk=%%b"
      set "percent=%%b"
   )
   set /A "num=percent,num=num*10+!percent:~-2,1!"
   if !num! gtr %treshold%0 (
      echo Disk !disk! exceed %treshold%%%: !percent!
   )
)