#gzip #cmd
#gzip #cmd
Вопрос:
Я сталкиваюсь со следующей проблемой с gzip.exe будь то из UnxUtils или из GnuWin32:
set gzip=.utilgzip.exe
%gzip% test.txt
%gzip% test2.txt
Вторая команда gzip выдаст предупреждение, подобное следующему:
gzip: .utilgzip.exe.gz уже существует; вы хотите перезаписать (y или n)?
Итак: gzip пытается сжать себя (и он все еще сжимается test2.txt ). Это похоже на то, как если бы командная строка была: .util.gzip.exe .util.gzip.exe test2.txt
.
Однако, когда в моем пакете моя переменная не называется gzip, тогда она работает правильно.
set gzip_prg=.utilgzip.exe
%gzip_prg% test.txt
%gzip_prg% test2.txt
Я вообще не понимаю, как выбор имени переменной может повлиять на командную строку, которая запускается после расширения.
Короче говоря, мой пакетный скрипт ведет себя по-другому, когда я меняю имя переменной!
У кого-нибудь есть объяснение этому явлению?
Комментарии:
1. Проблема с переменной
gzip
с тем же именем, что и у команды? Сообщениеgzip.exe.gz already exists
очень тревожное. Вы не проситеgzip
сжать себя??2. @pavium: отредактированный вопрос. gzip не должен пытаться сжать себя, однако это происходит.
Ответ №1:
Я сам нашел ответ.
gzip.exe считывает GZIP
переменную окружения, которая помогает устанавливать параметры.
Здесь gzip считывает переменную среды и поэтому считает, что она должна сжаться сама.