2011-06-06 31 views
2

我正在與gzip.exe以下問題,無論是從UnxUtils或的GnuWin32:任何人都可以通過cmd.exe和gzip來解釋這種奇怪的變量擴展行爲嗎?

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 

我完全不理解變量名的選擇如何影響擴展後運行的命令行。

總之,我的批處理腳本的行爲以不同的方式當我改變的變量的名字!

有沒有人對這種現象有解釋?

+0

這是一個與命令具有相同名稱的變量'gzip'的問題嗎? 'gzip.exe.gz已存在'的消息非常令人不安。你不是要求'gzip'來壓縮自己? – pavium 2011-06-06 07:57:04

+0

@pavium:已編輯的問題。 gzip不應該嘗試壓縮自己,但它確實如此。 – Benoit 2011-06-06 08:03:43

回答

相關問題