Уч.
У вас много проблем.
Вывод LIST PARTITION дает размер и смещение каждого раздела. Я не очень знаком с DISKPART, но я не верю, что размер дает количество свободного места внутри раздела. Он указывает, насколько велик раздел, но не указывает, сколько места уже выделено для существующих файлов. Смещение указывает местоположение раздела. Так что, кажется, вы не в ту ногу с самого начала.
При этом у вас есть некоторые серьезные проблемы с синтаксисом в вашем скрипте.
Похоже, вы пытаетесь прочитать файл в своем операторе FOR, но на самом деле ваш синтаксис пытается выполнить команду, потому что вы заключили имя файла в одинарные кавычки. Вам нужно набрать HELP FOR
из командной строки и внимательно прочитать описание команды FOR.
Вы хотите либо
for /f "tokens=3" %%f in (log.txt) do (
или, если имя файла содержит пробелы (которых у вас нет), то
for /f "usebackq tokens=3" %%f in ("file name with spaces.txt") do (
Ваша строка FIND /C /I "GB" .\log.txt > %isComplete%
пытается записать вывод команды FIND в файл с именем «0». Я сомневаюсь, что это твое намерение. Команда FIND распечатает полный текст любой строки, содержащей строку поиска "GB". Он также установит для ERRORLEVEL значение 0, если найдет хотя бы одну совпадающую строку, или 1, если не найдет совпадающую строку. Я не уверен, что вы пытаетесь сделать.
Ваше заявление IF - беспорядок. Здесь снова вам нужно набрать HELP IF
из командной строки и внимательно прочитать, как его использовать. Ваша существующая попытка содержит много ошибок
Вы не можете расширять оператор IF на несколько строк, если только вы не используете продолжение строки ^
или круглые скобки.
Вы не можете использовать >
в качестве оператора сравнения, вам нужно использовать GTR
Я не могу понять, какое именно сравнение вы пытаетесь сделать.
Я не знаю, как указать вам правильное направление, потому что я не понимаю, какова ваша общая миссия. Возможно, если вы опишите более подробно, что вы пытаетесь сделать, кто-то может предоставить сценарий, который выполнит задачу, и вы сможете извлечь уроки из этого примера.
DISKPART - потенциально опасный инструмент. Я не понимаю, как вы можете навредить с помощью команды LIST, но другие команды могут создать проблемы при неправильном использовании. Пока вы изучаете основы пакетного скриптинга, я советую вам избегать DISKPART. Я бы не хотел, чтобы вы случайно повредили жесткий диск из-за ошибки пакетного программирования.