임의의 디렉토리에 존재하는 배치 파일을 작성하려고하고 있는데, 그 위의 두 레벨 위에 새로운 디렉토리가 작성됩니다. 예를 들어, 여기에 배치 파일 :배치 파일 디렉토리 확장
w:\src\project\scripts\setup.bat
을 만들 것입니다 :
w:\src\project.build
나는 경로를 확장하는 방법을 알아낼 수 없습니다. 여기에 내가 현재 무엇을하고 무엇을 :
@set SCRIPT_DIR=%~dp0
@set ROOT_DIR=%SCRIPT_DIR%\..
echo ROOT DIR: %ROOT_DIR%
@set ROOT_DIR_NAME=%ROOT_DIR:~0,-1%
@echo ROOT DIR NAME: %ROOT_DIR_NAME%
을 그리고 이것은 생산 :
내가하고 싶었던 무엇ROOT DIR: w:\src\w_dev1\scripts\\..
ROOT DIR NAME: w:\src\w_dev1\scripts\\.
, ROOT_DIR_NAME는 (후행 슬래시없이) 디렉토리 자체로 얻을 수 있었다. 나는 이것을 해킹 할 수 있고 -1을 '..'에 대한 설명으로 바꿀 수 있다는 것을 알고 있지만 이것을 처리 할 수있는보다 깨끗한 방법은없는가요?
그것은'PUSHD % script_dir %'필요가있다 (맞습니까?)? 내 간단한 테스트 스크립트에서는 필요하지 않지만 어쩌면 내가 여기에서 놀고있는 곳을 모른다. – Pat
@Pat : 다른 디렉토리에서 스크립트를 실행 중일 때'push % % script_dir % '해야합니다. 예를 들어'w : \ src'의 명령 프롬프트에서'project \ scripts \ setup.bat'을 실행할 수 있습니다. 또한 바로 가기에는 "대상"및 "시작"속성이 있으며 "시작"디렉토리는 taget 배치 파일과 같은 디렉토리 일 필요는 없습니다. – Grhm