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

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

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

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

program.exe ????

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



답변

% *를 사용하여 .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>_


답변