如果找到卷D并且卷大小大于1tb,请运行DISKPART/S filename



据我所知,我可以使用:

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

获取名称,我可以使用:

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

以获取尺寸。

我很难使用批脚本来实现这一点。

由于将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
)

否则你就不会说出你遇到的困难。

>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

最新更新