절대 경로 Windows 스크립트에서 하위 문자열 제거

절대 경로 Windows 스크립트에서 하위 문자열 제거

저는 Windows 스크립트를 처음 사용하고 다음과 같은 절대 경로를 가지고 있습니다. /bin/debug/test/abc.xyz.dll파일 이름을 제거하고 다음과 같은 경로만 얻고 싶습니다 /bin/debug/test/.

어떻게 해야 하나요?

답변1

이를 위해 루프 의 확장 기능을 사용할 수 있습니다 FOR. "루프"가 아니더라도 다음과 같습니다.

@echo off
setlocal EnableExtensions
set "arg=%~1"
for /f %%A in ('echo %arg%') do echo %%~pA

여기서는 전체 파일 이름으로 이 스크립트를 호출하며, 내부 공백을 보호하기 위해 인용할 수도 있습니다.

편집하다:echo %%~nxA분명히 잘못된 원래 코드를 사용했습니다 . 죄송합니다. 경로에서 파일 이름을 분리하고 파일 이름을 반환합니다. 위의 코드는 이제 드라이브 문자 없이 경로만 반환합니다.

편집2: 이것이 다음과 같이 축약될 수 있음을 지적한 @Karan에게 감사드립니다.

@echo off
setlocal EnableExtensions
echo %~p1

확장된 변수 확장 구문은 FOR루프 뿐만 아니라인수 확장또한 (CALL /? 참조).

관련 정보