0

我真的不明白发生了什么,也看不出有什么区别:

我下载了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 吗?

4

1 回答 1

1

Cygwin 是一个模拟 UNIX 行为的 shell。UNIX 什么都不知道.exe,这就是 Cygwin 找不到的原因base64.exe。在 UNIX 下,存储二进制文件时不会在其文件名中添加扩展名,例如仅base64.

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

由于 Cygwin 知道它总是在 Windows 下运行,.exe如果您想在 shell 本身中执行某些操作(例如打开文件),它可能会附加,以便对期望这种行为的 Windows 用户表现得更加友好。然而,在 Cygwin 下运行的程序可能不会集成这些功能,因为它们主要是为在 UNIX 下使用而开发的。which base64这可能是失败的一个原因。

于 2012-06-22T10:19:33.707 回答