winscp.com
. 那不是域,而是 Windows 上的可执行文件。
为什么它使用(我认为)古老的和 MS-DOS 时代的.com
可执行文件,而不是.exe
像过去 30 多年中的所有其他程序一样?
尽管有扩展名,但它实际上是一个PE 文件,就像典型的 EXE 文件一样,而不是一个 COM 文件。PATHEXT
环境变量中列出的任何扩展都将被视为可执行文件,然后在打开文件时 Windows 或该扩展的注册应用程序将检查签名以确定它是什么类型的可执行文件(PE、NE、COM...)和相应地执行。尝试将任何 *.exe 文件重命名为 *.com 甚至 *.cmd、*.bat,它仍然会正常运行
如果您注意到同一文件夹中还有WinSCP.exe。原因是因为WinSCP.exe
是 GUI 并且WinSCP.com
用于从命令行运行
WinSCP 有两个可执行文件:
- winscp.exe:主要可执行文件,支持GUI和控制台操作;
- winscp.com:控制台接口工具,仅支持控制台操作,允许输入/输出重定向。
Windows 应用程序不允许同时是 GUI 和控制台应用程序,因此必须使用一些技巧。默认情况下,COM 列在 EXE 之前,PATHEXT
因此当您运行没有扩展名的命令时,将首先考虑 *.com 文件。这类似于Visual Studio 中的devenv.com/devenv.exe技巧,或 Libre Office 中的 soffice.com/soffice.exe。请参阅一个可执行文件可以既是控制台又是 GUI 应用程序吗?
归档时间: |
|
查看次数: |
407 次 |
最近记录: |