为什么 WinSCP 对 CLI 版本使用 .com 二进制文件,而对 GUI 版本使用 .exe 二进制文件?

为什么 WinSCP 对 CLI 版本使用 .com 二进制文件,而对 GUI 版本使用 .exe 二进制文件?

我以为 .com 是可执行文件的一种古老格式,是早期 MS-DOS 时代遗留下来的?为什么他们现在在 WinSCP 中使用它?为什么只用于 CLI 版本?

我尝试在他们的聊天室询问这个问题,但几天都没有收到任何回复。一如既往。

答案1

这两个 WinSCP 文件实际上都是标准 Windows PE 格式的常规 Win32 可执行文件。

(Windows 实际上并不要求格式与扩展名匹配 - 只要 shell 检测到它是A已知的“可执行”扩展,它只会告诉操作系统执行它,而操作系统内核本身将负责处理格式细节。)

但是,当 Windows Cmd.exe 在 %PATH% 中搜索匹配的可执行文件时,它会按照 %PATHEXT% 环境变量指定的顺序进行搜索 - 该顺序列出了.COM .EXE

因此,如果您只是输入winscpCmd,那么命令 shell 将优先运行winscp.com(CLI 工具)而不是winscp.exe(图形化)。

相关内容