@으로 시작하는 Windows 단축키 대상 매개 변수


12

바탕 화면 바로 가기와 일부 명령 줄 매개 변수를 사용하여 호출해야하는 Windows 응용 프로그램이 있습니다.

나는 이것을 수천 번 해왔지만 이것은 조금 다릅니다. 대신 같이 통상 커맨드 라인 파라미터를 이용 -e 12345하거나 -example 12345,이 용도 @12345(로 시작 @심볼).

Windows 바로 가기는이 매개 변수가 실행 파일 이름 바로 다음에 오는 것을 좋아하지 않으며 모든 것을 제거합니다. 이유를 모르겠습니다.

예를 들면 다음과 같습니다.

c:\example\example.exe @12345 -e9876"대상"으로 저장할 때 모든 매개 변수를 제거 c:\example\example.exe하고 대상으로 그대로 둡니다 .

그러나 c:\example\example.exe -e9876 @12345 잘 작동합니다. 저장하고 검증하며 모든 것이 좋습니다.

그러나 나는 필요한 @매개 변수를 명령에 처음으로 하나가 될 수 있습니다. 배치 파일에 명령을 래핑하고 배치를 호출하는 것과는 달리 @Windows 바로 가기에서 첫 번째 명령 줄 매개 변수 가되는 심볼을 어떻게 사용할 수 있습니까?


1
다른 옵션은 해당 프로그램이 지원한다고 가정하고 매개 변수를 개별적으로 인용하는 것입니다. 방금 테스트에서 찾은 흥미로운 행동 : 매개 변수는 대상 필드에서 사라졌지 여전히 대상 프로그램으로 전달됩니다! 실제로, 필드를 다시 편집 할 때까지 보이지 않는 매개 변수가 유지되며 .lnk파일이 실제로 다릅니다. (전달 된 매개 변수를 단순히 에코하는 배치 파일로 대상으로 테스트했습니다.)
Bob

답변:


13

누가 알았 겠어? ... Windows는 분명히 @문자를 구분 기호로 취급합니다 . Windows 명령은 명령의 첫 번째 요소 만 해석하므로 나머지는 효과적으로 잘립니다. 분명히 기호 ^이스케이프 하기 위해 앞에 를 제공하여 동작을 무시할 수 있습니다 .

c:\example\example.exe ^@12345 -e9876


3
야! 효과가있다! 호기심에서 지구상에서 그에 대한 답을 어떻게 찾았습니까?
Mark Henderson

3
작년의 Deeeep 어두운 게시물. 어떤 사람은 더 이상 존재하지 않는 문서 (또는 적어도 찾기 쉽지 않은 문서)를 언급하고 그 성가신 것들 중 일부를 언급했습니다. 또한 다른 문제를 일으킬 수 있는 $%문자 와 같은 것을 언급 했습니다. 같은 ^캐릭터를 사용하여 탈출 할 수 있습니다 . ^^예상대로 수행하여 탈출을 피할 수도 있습니다.
TheCompWiz

4
@MarkHenderson Caret 기호 "^"는 NT 3.5 이상 (정확히 기억한다면) 이후 전체 WIN32 (및 이후 64 비트) API에서 사용하는 표준 "다음 문자 이스케이프"기호입니다 (예 : 나이가 들었습니다) ). CMD- 스크립트 / 프롬프트, WIndows + R 실행 상자, 바로 가기, 서비스 및 예약 된 작업과 관련된 명령 줄에서 명령 줄을 제공 할 수있는 Windows의 어느 곳에서나 작동합니다. 조금.
Tonny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.