我真的不明白最新情况,但看不出差异:
我下载了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?
答案 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
失败的原因。