据我所知,我可以使用:
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
。