%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
합니다.
답변
“\”뒤에 오는 경로를 얻기 위해 다음 스크립트를 사용할 수 있습니다
for %%i in ("%~dp0.") do SET "mypath=%%~fi"
답변
%~dp0
상대 경로 일 수 있습니다. 전체 경로로 변환하려면 다음과 같이 해보십시오.
pushd %~dp0
set script_dir=%CD%
popd
답변
당신이 사용할 수있는 %~dp0
, D 수단 드라이브 만 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%
배치 스크립트가있는 현재 디렉토리를 반환합니다.
답변
Windows 7 컴퓨터에서 작업 중이며 아래 줄을 사용하여 bash 스크립트의 절대 폴더 경로를 얻었습니다.
http://www.linuxjournal.com/content/bash-parameter-expansion 을 보고이 솔루션에 도달했습니다 .
#Get the full aboslute filename.
filename=$0
#Remove everything after \. An extra \ seems to be necessary to escape something...
folder="${filename%\\*}"
#Echo...
echo $filename
echo $folder