Ищите том D, если он найден, а размер тома больше 1 ТБ. Выполните DISKPART / S имя файла - PullRequest
0 голосов
/ 13 ноября 2018

Насколько я понимаю, я могу использовать:

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

, чтобы получить имя, и я могу использовать:

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

чтобы получить размер.

У меня возникли трудности, чтобы заставить это работать с помощью пакетного скриптинга.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018
>nul 2>nul (
    wmic logicaldisk where "caption='d:' and size > 1099511627776" | find "Win32_LogicalDisk" 
) && (
    echo Drive found
) 

Этот код просто выполняет указанный запрос wmic (диск d: и размер больше 1 ТБ) и проверяет вывод с помощью команды find, чтобы определить, был ли найден какой-либо диск, скрывая при этом вывод любого сообщения или ошибка путем перенаправления стандартного потока вывода и потока ошибок на устройство nul.

Если выходные данные команды wmic содержат Win32_LogicalDisk, найден соответствующий диск, и find очистит (установив 0) errorlevel. Если нет подходящего диска, find выйдет из строя и поднимет errorlevel (установите на 1)

Оператор условного выполнения && (выполнить следующую команду, если предыдущая не установила errorlevel) используется для проверки find успехов / неудач и определения необходимости выполнения diskpart.

0 голосов
/ 13 ноября 2018

Поскольку сравнивать размер 1 ТБ с партией будет сложно, пусть wmic сделает всю работу

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

В противном случае вы не расскажете о трудностях, которые у вас есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...