Ошибка неверного параметра при использовании 7-zip из командной строки в Windows

Вопрос или проблема

Я запускаю следующую команду:

7z.exe a -t7z -m9=LZMA2 test.7z test.txt

Однако я получаю эту ошибку: Системная ошибка: Параметр неверен. Ошибка возникает только в случае, если я использую параметры -m9=LZMA2 или -m9=LZMA. Если я убираю это, все работает прекрасно. В чем я ошибаюсь?

Я выполняю команду из Windows XP, 7 и 2008.

Я думаю, вы неправильно интерпретируете значение переключателя -m?
-m9=lzma2 не дает вам лучшего сжатия, чем -m0=lzma2, это переключатель -mx.

Попробуйте это:

7za a -t7z -m0=lzma2 -mx=9 archive.7z files

Это не точный ответ на проблему автора, но просто заметка для людей, ищущих эту ошибку. Она может быть вызвана множеством причин.

В моем случае это произошло, когда я сжимал множество папок с помощью скрипта в пакетном режиме и случайно использовал 32-разрядную версию 7zip вместо 64-разрядной. Параметры моего скрипта задавали размер словаря, который невозможно выделить на 32-битной системе, однако большинство моих папок были меньше, и поэтому эта ошибка проявлялась только на некоторых папках, а не на всех. Надеюсь, это поможет кому-то, потому что это может быть сложная интермитирующая проблема, и сообщение об ошибке не совсем полезно, чтобы указать, какой параметр является виновником.

Ответ или решение

Ошибка "Некорректный параметр" при использовании 7-Zip из командной строки в Windows

Когда вы сталкиваетесь с ошибкой "System error: The parameter is incorrect." при выполнении команды с использованием 7-Zip из командной строки, это может быть связано с несколькими причинами. Анализируя ваш запрос, вы используете следующую команду:

7z.exe a -t7z -m9=LZMA2 test.7z test.txt

Рассмотрим это более подробно.

Проблема с параметрами сжатия

Ошибка происходит из-за неправильного использования параметров сжатия. В частности, использование ключа -m9=LZMA2 является некорректным. Параметр -m задает метод сжатия, но для указания уровня сжатия следует использовать другой формат. Вам нужно использовать комбинацию:

  • -m0=lzma2 — это задает метод сжатия LZMA2.
  • -mx=9 — это указывает уровень сжатия (от 0 до 9, где 9 – максимальный уровень).

Таким образом, правильная команда для достижения максимального уровня сжатия с использованием метода LZMA2 будет выглядеть так:

7za a -t7z -m0=lzma2 -mx=9 test.7z test.txt

Дополнительные замечания

Важно помнить, что версия 7-Zip, которую вы используете, также может оказать влияние на доступные параметры. Проверьте, используете ли вы 32-битную или 64-битную версию 7-Zip, так как это может быть причиной проблемы при сжатии больших файлов или папок из-за ограничения адресного пространства. Использование 32-битной версии для работы с большими файлами может привести к ошибкам, связанным с нехваткой памяти.

Возможные источники ошибок

  1. Использование неподходящей версии 7-Zip: Если вы используете 32-битную версию 7-Zip и пытаетесь задать параметры, которые требуют больше памяти, чем доступно в 32-битном адресном пространстве, это может вызвать ошибку.

  2. Неправильный синтаксис: Убедитесь, что синтаксис вашей команды соответствует стандартам 7-Zip.

  3. Проблемы с путями к файлам: Если файл или папка, которые вы пытаетесь сжать, имеют особые символы в названии или находятся в путях с пробелами, используйте кавычки.

    Например:

    7za a -t7z -m0=lzma2 -mx=9 "test.7z" "C:\Путь к файлу\test.txt"

Заключение

Если вы столкнулись с ошибкой "System error: The parameter is incorrect" при использовании 7-Zip, убедитесь в корректности указанных вами параметров. Следуя приведенным рекомендациям, вы сможете успешно осуществить сжатие без ошибок. Если проблемы сохраняются, попробуйте использовать другую версию программы или проверьте доступность файлов и папок, которые вы пытаетесь обработать.

Оцените материал
Добавить комментарий

Капча загружается...