[초보] 배치파일 for 구문 관련 질문

yisongh의 이미지

안녕하십니까?

MS-Word 파일에서 특정 데이터를 추출해 MS-Excle(.xlsx) 파일로 만들어주는 agua라는 프로그램이 있습니다.
배치파일을 이용해서 특정 폴더에 있는 MS-Word 파일 전체를 agua 프로그램으로 자동으로 변환하려고 합니다.

즉 특정 폴더에 a.docx, b.docx, c.docx라는 파일이 있고, 여기에 있는 특정 데이터를 agua라는 프로그램을 이용해 a.xlsx, b.xlsx, c.xlsx로 저장하고 싶습니다. (agua는 -i, -o 옵션을 이용해 입력과 출력 파일을 지정해야 합니다.)

그래서 아래와 같이 배치파일을 만들었는데

for /r %%a in (*.docx) do agua -i %%a -o %%a.xlsx

이렇게 하니, xlsx 파일 이름이 (너무 당연하게) a.xlsx가 아니라 a.docx.xlsx가 되더군요.
파일 이름을 a.docx.xlsx가 아니라 a.xlsx로 만들려면 어떻게 해야 하나요.

고수님들의 의견 부탁드리겠습니다.

미리 감사드립니다.

yisongh의 이미지

여기저기 물어보고 답을 얻었습니다.

변수 앞에 "~n"을 붙이면 변수에서 extension을 제외하고 이름만 가져오네요.

그래서 위 구문을

for /r %%a in (*.docx) do agua -i %%a -o %%~na.xlsx

와 같이 표기하면 됩니다.

읽어주셔서 고맙습니다.