programing

Windows에서 배치 스크립트의 경로를 가져오는 방법은 무엇입니까?

linuxpc 2023. 5. 16. 22:14
반응형

Windows에서 배치 스크립트의 경로를 가져오는 방법은 무엇입니까?

나는 그것을 알고 있습니다.%0에는 배치 스크립트의 전체 경로가 포함됩니다.c:\path\to\my\file\abc.bat

난 그럴거야.path와 동등한c:\path\to\my\file

어떻게 하면 그것을 이룰 수 있을까요?

%~dp0디렉토리가 됩니다.다음은 모든 경로 수정자에 대한 설명서입니다.재미있는 것 :-)

최종 백슬래시를 제거하려면 다음을 사용할 수 있습니다.:n,m하위 문자열 구문(예:

SET mypath=%~dp0
echo %mypath:~0,-1%

나는 그것을 결합할 방법이 없다고 생각합니다.%0와의 구문:~n,m불행히도 구문.

%~dp0상대 경로일 수 있습니다.이 경로를 전체 경로로 변환하려면 다음과 같은 방법을 사용합니다.

pushd %~dp0
set script_dir=%CD%
popd

다음 스크립트를 사용하여 "\" 뒤로 이동하지 않고 경로를 가져올 수 있습니다.

for %%i in ("%~dp0.") do SET "mypath=%%~fi"

%~dp0 - 스크립트가 실행된 경로를 반환합니다.

그러나 다음 중 하나에 대해서도 알아야 합니다.

%CD% - 런타임에 현재 경로를 반환합니다. 예를 들어 "cd folder1"을 사용하여 다른 폴더에 들어간 다음 "cd folder2"를 사용하면 스크립트가 위치한 원래 경로가 아닌 folder2까지 전체 경로를 반환합니다.

사용할 수 있습니다.%~dp0d는 드라이브만, p는 경로만, 0은 배치 파일의 전체 파일 이름에 대한 인수입니다.

예를 들어 파일 경로가 C:\Users\Oliver\Desktop\example.bat 인수는 C:\Users\Oliver\Desktop\ 명령을 사용할 수도 있습니다.set cpath=%~dp0 && set cpath=%cpath:~0,-1%다음을 사용합니다.%cpath%후행 슬래시를 제거할 변수입니다.

%cd%스크립트가 실행 중인 디렉터리의 경로를 제공합니다.

그냥 실행:

echo %cd%

그것이 그것이 될 것입니다.%CD%변수.

@echo off
echo %CD%

%CD%배치 스크립트가 있는 현재 디렉터리를 반환합니다.

언급URL : https://stackoverflow.com/questions/3827567/how-to-get-the-path-of-the-batch-script-in-windows

반응형