Вопрос или проблема
Я запускаю следующую команду:
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-битной версии для работы с большими файлами может привести к ошибкам, связанным с нехваткой памяти.
Возможные источники ошибок
-
Использование неподходящей версии 7-Zip: Если вы используете 32-битную версию 7-Zip и пытаетесь задать параметры, которые требуют больше памяти, чем доступно в 32-битном адресном пространстве, это может вызвать ошибку.
-
Неправильный синтаксис: Убедитесь, что синтаксис вашей команды соответствует стандартам 7-Zip.
-
Проблемы с путями к файлам: Если файл или папка, которые вы пытаетесь сжать, имеют особые символы в названии или находятся в путях с пробелами, используйте кавычки.
Например:
7za a -t7z -m0=lzma2 -mx=9 "test.7z" "C:\Путь к файлу\test.txt"
Заключение
Если вы столкнулись с ошибкой "System error: The parameter is incorrect" при использовании 7-Zip, убедитесь в корректности указанных вами параметров. Следуя приведенным рекомендациям, вы сможете успешно осуществить сжатие без ошибок. Если проблемы сохраняются, попробуйте использовать другую версию программы или проверьте доступность файлов и папок, которые вы пытаетесь обработать.