如果找到卷D,并且卷大小大于1tb,则查找D,运行DISKPART / S文件名

时间:2018-11-13 04:46:16

标签: batch-file wmic

据我了解,我可以使用:

WMIC /node:"%computername%" LOGICALDISK GET Name

获取名称,我可以使用:

WMIC /node:"%computername%" LOGICALDISK GET size

获取尺寸。

我很难使用批处理脚本来完成这项工作。

2 个答案:

答案 0 :(得分:3)

由于要比较1TB大小的批量处理会很困难,因此让wmic来做

WMIC /node:"%computername%" LOGICALDISK where "Name='D:' AND Size>1099511627776" Get  Name|findstr "^D:" && (
    DISKPART /S filename
) || (
    Echo Partition is less than 1TB
)

否则,您不会说自己遇到的困难。

答案 1 :(得分:3)

>nul 2>nul (
    wmic logicaldisk where "caption='d:' and size > 1099511627776" | find "Win32_LogicalDisk" 
) && (
    echo Drive found
) 

此代码仅执行指示的wmic查询(驱动器d:,大小大于1TB),并使用find命令检查输出,以发现是否找到任何驱动器,同时隐藏通过将标准输出流和错误流重定向到nul设备来输出任何消息或错误。

如果wmic命令的输出包含Win32_LogicalDisk,则找到匹配的驱动器,并且find将清除0(设置为errorlevel) 。如果没有匹配的驱动器,则find将失败并提高errorlevel(设置为1

条件执行操作符&&(如果前一个命令未设置errorlevel,则执行下一个命令)用于检查find的成功/失败并确定diskpart应该执行。