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

Look for volume D if found and volume size is greater than 1tb run 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 将清除(设置为 0errorlevel.如果没有匹配的驱动器 find 将失败并引发 errorlevel(设置为 1

条件执行运算符&&(如果前一个命令没有设置errorlevel则执行下一个命令)用于检查find sucess/failure并判断是否diskpart应该被执行。