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 /?
대신).이를 지원해야합니까, 아니면 그냥 오류를보고 즉시 종료해야합니까?
알고 있어야 할 다른주의 사항은 무엇입니까? ("debug \ program.exe"가있는 경우에도 "debug/program.exe"가 PATH에서 debug.exe를 실행한다고해서 아래의 Anon.의 주석 외에도)
솔직히 말해서, 나는 당신이 말하는 것을 이해하지 못합니다. – zneak
@ zneak : "이 일을하는 이유가 있었습니까, 아니면 사고였습니까? 이유가 있다면, 그것은 무엇이며, 내가 쓰는 프로그램에 적용됩니까?" 당신에게 더 좋은 방법이 되겠습니까? –
아니요. 그러나 무의미한 Windows가 아닌 사용자에게 xcopy가 수행해야하는 작업과 그 대신에 수행 할 작업이라는 사실을 말하면 거의 차이가없는 두 개의 명령 줄을 표시하는 대신 좋을 것입니다. Windows가 argv [0]에서 명령 줄 스위치를 파싱하는 결론에 도달했는지는 알 수 없습니다. – zneak