.BAT 파일의 인수를 실행 된 .EXE 파일로 전달 [중복]


0

이 질문에는 이미 답변이 있습니다.

모든 인수를 .exe 프로그램으로 전송하는 DOS .bat 스크립트가 필요합니다.

예를 들어 .exe program.exe를 호출하는 DOS 스크립트 main.bat는 다음과 같습니다.

program.exe ????

문제는 무엇입니까 ??? 해야한다. 인수는 모두 따옴표로 묶어야합니다. 공백이있는 파일 이름이 있으면 그대로 두어야합니다. 인수가 배열 (ARGV [x])을 형성하고 각 인수를 인용해야하기 때문에 UNIX / POSIX에서는이를 "인용 배열"이라고합니다.


안녕하세요, SuperUser에 오신 것을 환영합니다. 우리는 "저에게 스크립트를 작성하십시오"종류의 웹 사이트가 아닙니다. 스크립트를 공유하면 작동하지 않는 이유를 좁힐 수 있습니다. 즉, 목표를 이해하는 것이 약간 어렵고 동반 스크립트가 분명히 도움이 될 것입니다.
LPChip

기본적인 문제는 2 개의 .exe가 있다는 것입니다. 하나는 32 비트 버전 용이고 다른 하나는 64 비트 버전 용입니다. 그것들을 program32.exe와 program64.exe라고하겠습니다. 이 이름은 현재 변경할 수 없습니다. 그러나 설치에 따라 the .exe를 호출하는 일반 스크립트를 작성하고 싶습니다. DOS에서 인용 된 방식으로 인수를 전달할 수있는 방법을 알아야합니다. 나는 실제 스크립트가 필요하지 않습니다. 1 명의 온라인 사용자가 필요합니다. 예 : 내가 입력하는 경우 :
Francky Leyn

'main.bat "filename with spaces.jpg"', 64 비트 버전의 경우 DOS 시스템 호출 'program64.exe "filename with spaces.jpg"에 반복되어야 함
Francky Leyn

답변:


0

% *를 사용하여 .bat 파일에 전달 된 모든 것을 다른 것으로 전달할 수 있습니다.

"공백이있는 단어"를 배치 파일로 전달하면 따옴표로 묶은 1 개의 매개 변수로 표시되고 그대로 전달됩니다. ""를 생략해도 배치는 여전히 프로그램으로 전달하지만 프로그램은이를 별도의 매개 변수로 간주합니다. 실제로 따옴표가 있는지 여부와 필요한 경우 배치 파일을 호출하는 방법에 따라 다릅니다. 예를 들어 탐색기에서 파일을 배치 파일로 끌어다 놓으면 탐색기가 따옴표를 추가합니다. 명령 프롬프트에서 수동으로 입력하면 사용자가 따옴표를 확인해야합니다.

그래서:

program.exe %0

귀하의 경우 충분해야합니다.

또한 명령 줄에서 탭을 사용하여 파일 이름을 자동 완성하면 따옴표가 필요할 경우 자동으로 추가되며 따옴표로 인해 계속 입력하기 위해 따옴표를 편집 해야하는 것처럼 보이지만 실제로 입력 할 필요는 없습니다. 에. 명령 프롬프트는 충분히 똑똑합니다.

예 : 여기에 prog를 입력하고 tab을 두 번 누른 다음 계속 입력하고 tab을 한 번 더 누릅니다.

C:\>_

C:\>cd prog_  (tab)

C:\>cd "Program Files"_  (tab)

C:\>cd "Program Files (x86)"_

C:\>cd "Program Files (x86)"\Micro_    (tab)

C:\>cd "Program Files (x86)\Microsoft Office"_    (enter)

C:\Program Files (x86)\Microsoft Office>_

.bat 스크립트가있는 경우 상태 코드를 반환해야합니까?
Francky Leyn

아니요, 상태 코드를 반환하지 않아도됩니다. 기본적으로 스크립트의 모든 명령은 결과에 따라 상태 코드를 변경하며 % errorlevel % ^에 저장됩니다. 박쥐 파일 자체는 특별히 변경하지 않는 한 변경하지 않으며 필요하지 않습니다.
LPChip

주석은 코드를 게시하기위한 것이 아닙니다. 원래 질문에 대한 답변이 있습니다. 코드 블록에 코드로 새로운 질문을 게시하는 것이 좋습니다. 예상대로 작동하지 않는 이유를 알려 드릴 수 있습니다.
LPChip

질문으로 만 게시 할 수 있습니다. 코드 블록은 줄의 시작 부분에 4 개 이상의 공백을 입력하여 작성됩니다. 새로운 질문을 할 때 서식 도움말도 참조하십시오.
LPChip
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.