공부중

[Batch] ~은(는) 예상되지 않았습니다. [IF EXIST] 본문

Programing/Batch

[Batch] ~은(는) 예상되지 않았습니다. [IF EXIST]

곤란 2023. 10. 29. 22:48
반응형

회사에서 batch 스크립트를 작성중이었는데 if exist를 이용해 해당 폴더의 경로가 존재하는지 확인해서 분기를 태우려고 했었다.. 하지만 ~은(는) 예상되지 않았습니다. 라고 나오는 문제가 발생했고 그 이후 라인은 엉망이 되었는데 어떤 문제인지 확인해 보자.

 

테스트는 아래와 같다.

이와 같은 폴더가 있고 각각의 폴더 안에 "001" 이라는 폴더가 존재한다.

 

두 batch 스크립트는 아래와 같다.

@echo off
@rem exist_Test.bat

set FIND_DIR=G:\Batch\testDir_1_\001

@echo FIND_DIR : %FIND_DIR%

if exist "%FIND_DIR%" (
	echo EXIST PATH : %FIND_DIR% 
) else (
	echo NOT EXIST PATH : %FIND_DIR%
)
@echo off
@rem exist_Test_1.bat

set FIND_DIR=G:\Batch\testDir_(1)_\001

@echo FIND_DIR : %FIND_DIR%

if exist "%FIND_DIR%" (
	echo EXIST PATH : %FIND_DIR% 
) else (
	echo NOT EXIST PATH : %FIND_DIR%
)

 

실행 결과는 아래와 같다.

두 스크립트의 차이는 찾으려고 하는 경로에 괄호가 들어갔다는 점이다..

이 괄호가 batch 스크립트에서 if범위 같은것을 표현하는것으로 인식하다보니 이상하게 해석되어서 실행되는것이다.

이 뿐만이 아니라 파일에도 괄호가 들어가 있으면 저렇게 안된다 -_-...

 

이거 뭐 해결법이 없나 했는데....

그냥 경로에 괄호를 사용하지 않기로 했다 -_-... 다른 좋은 방법이 있다면 알려주세요....

 

반응형