任何人都可以通过gzip用cmd.exe解释这个奇怪的变量扩展行为吗?

时间:2011-06-06 07:48:13

标签: gzip cmd

我遇到了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 个答案:

答案 0 :(得分:3)

我自己找到了答案。

gzip.exe reads the GZIP environment variable有助于设置选项。

这里,gzip读取环境变量,因此认为它必须压缩自己。