Кто-нибудь может объяснить это странное поведение расширения переменной с помощью cmd.exe с помощью gzip? - PullRequest
2 голосов
/ 06 июня 2011

Я столкнулся со следующей проблемой с gzip.exe, будь то из UnxUtils или из GnuWin32:

set gzip=.\util\gzip.exe
%gzip% test.txt
%gzip% test2.txt

Вторая команда gzip выдаст следующее предупреждение:

gzip:. \ Util \ gzip.exe.gz уже существует;Вы хотите перезаписать (y или n)?

Итак: gzip пытается сжать себя (и он все еще сжимает test2.txt).Это как если бы командная строка была: .\util.gzip.exe .\util.gzip.exe test2.txt.

Однако, когда в моей партии моя переменная не называется gzip, она работает правильно.

set gzip_prg=.\util\gzip.exe
%gzip_prg% test.txt
%gzip_prg% test2.txt

Я не понимаювообще, как выбор имени переменной может влиять на командную строку, запускаемую после раскрытия.

Короче говоря, мой пакетный скрипт ведет себя по-другому , когда я изменяюимя переменной !

Кто-нибудь объяснил это явление?

1 Ответ

3 голосов
/ 06 июня 2011

Я нашел ответ сам.

gzip.exe читает переменную окружения GZIP , которая помогает устанавливать параметры.

Здесь gzip читает переменную средыпоэтому считает, что он должен сжимать себя.

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