2014-11-14 2 views
0

명령 줄에서 배치를 호출 할 때 사용자 입력에서 인수를 취하는 배치 파일이 있습니다. 나는 일괄 처리가 잘되지 않아서, 왜 내가 여기에 왔을 까. C++ 코드를 컴파일하는 데 사용할 파일이 여러 개 있습니다. 필요한 파일이 몇 개인지를 지정하지 않고 여러 인수를 얻는 방법이 필요합니다. \ .. compile_sing helloworld main배치 - 사용자 입력에서 여러 인수 가져 오기

이에 MAIN.CPP를 컴파일하여 HelloWorld \ 및 생성 된 .o 인 파일 .. \ helloworld를의 \ 이동 :

echo | set /p=g++ -c %1\%2.cpp > run.bat 
pkg-config --cflags --libs gtkmm-3.0 >> run.bat 
echo PAUSE >> run.bat 
echo exit >> run.bat 

start /wait run.bat 
del run.bat 

move %2.o %1\ 

예 실행합니다.

또한 프로그램을 실행하는 다른 배치가 있습니다.

echo | set /p=g++ %1\%2.o %1\%3.o -o %1\%4 > run.bat 
pkg-config --cflags --libs gtkmm-3.0 >> run.bat 
echo PAUSE >> run.bat 
echo exit >> run.bat 

start /wait run.bat 
del run.bat 

start %1\%4 

예 실행 : run_mult helloworldv2 main file2 execute

이 실행 execute를 만들고 실행됩니다.

내가 원했던 것은 % #을 넣지 않아도 여러 파일 이름을 입력하는 방법입니다. 파일의 수는 1-n입니다.

두 번째로는 마지막 인수 앞에 끝 문자를 넣으려면 특수 문자가 필요합니다.

+2

[정보] (http://ss64.com/nt /shift.html) SHIFT 명령, 일괄 처리 등. [here] (http://ss64.com/nt/) – JosefZ

+0

@JosefZ 팁 주셔서 감사. 내 대답을 추가했습니다. – CodeMonkey

답변

0

그래, SHIFT을 학습 한 후, 팁 덕분에 JosefZ, 내 대답을했습니다.

여러 개의 파일을 컴파일하려면, 나는이

set folder_path=%1 
SHIFT 
:start 
echo | set /p=g++ -c %folder_path%\%1.cpp > run.bat 
pkg-config --cflags --libs gtkmm-3.0 >> run.bat 
echo exit >> run.bat 

start /wait run.bat 
del run.bat 
move %1.o %folder_path% 
SHIFT 
if not "%1"=="" (goto :start) 

PAUSE 

그리고 컴파일 된 파일을 실행하려면 다음, 내가 사용하는 사용하는 다음

set folder_path=%1 
set files= 
set var= 
SHIFT 
:set_files 
set files=%files% %folder_path%\%1.o 
SHIFT 
set var=%1 
if not "%var:~0,1%"=="/" (goto :set_files) 

echo | set /p=g++ %files% -o %folder_path%\%var:~1% > run.bat 
pkg-config --cflags --libs gtkmm-3.0 >> run.bat 
echo PAUSE >> run.bat 
echo exit >> run.bat 

start /wait run.bat 
del run.bat 

start %folder_path%\%var:~1% 
관련 문제