为什么 Windows 程序会从可执行文件的路径中解析命令行开关?(后者就是通常所说的argv[0]
。)
例如,xcopy:
C:\Temp\foo>c:/windows/system32/xcopy.exe /f /r /i /d /y * ..\bar\
Invalid number of parameters
C:\Temp\foo>c:\windows\system32\xcopy.exe /f /r /i /d /y * ..\bar\
C:\Temp\foo\blah -> C:\Temp\bar\blah
1 File(s) copied
我应该在自己的程序中遵循什么行为?
是否有许多用户希望键入没有空格的命令行开关(例如,program/?
而不是program /?
),我应该尝试支持这一点,还是应该只报告错误并立即退出?
我还需要注意哪些其他警告?(除了 Anon. 在下面的评论之外,即使“debug\program.exe”存在,“debug/program”也会从 PATH 运行 debug.exe。)