什么时候使用.exe而不是?

时间:2012-06-22 10:16:03

标签: windows shell cygwin

我真的不明白最新情况,但看不出差异:

我下载了base64.exe,用于在windows下创建base64文本。我将其复制到C:\Windows\,因为它位于%PATH%变量中。

现在我想尝试一下:echo Hello | base64效果很好。好的,我不需要附加.exe,据我所知,我也不需要使用.bat.com文件。

但是现在我安装了一些cygwin工具,例如尝试了which base64,但它没有用,因为它说base64 is not in path。然后我输入which base64.exe并获得C:\Windows

所以现在我的问题是:当我需要使用.exe时,我什么时候不用?是否只有当我使用cygwin工具时才需要附加.exe?

1 个答案:

答案 0 :(得分:1)

Cygwin是一个模拟UNIX行为的shell。 UNIX对.exe一无所知,这就是为什么Cygwin找不到base64.exe的原因。在UNIX下,存储二进制文件时不会在文件名中添加extionsion,例如只是base64

Windows CMD会自动将.bat.com.exe等附加到您的文件名中。 Cygwin没有。因此,如果您使用的是Linux shell,则必须手动附加它。

由于Cygwin意识到它总是在Windows下运行,如果你想在shell本身执行某些操作(例如打开一个文件),它可能会追加.exe,对那些期望这种行为的Windows用户表现得更友好。 。但是,在Cygwin下运行的程序可能无法集成这些功能,因为它们主要用于UNIX下的使用。这可能是which base64失败的原因。