[batch-file] BAT 스크립트의 상대 경로

내 USB 드라이브의 내 프로그램 폴더는 다음과 같습니다.

Program\
     run.bat
     bin\
         config.ini
         Iris.exe
         library.dll
         etc.

run.bat시작하는 데 사용 하고 싶습니다Iris.exe

나는 이것을 F:/Program/bin/Iris.exe드라이브로 연결하지 않기 때문에 바로 가기처럼 사용할 수 없습니다 F:( 예 : E: 또는 G:)

드라이브 문자와 상관없이 작동하려면 bat 파일에 무엇을 작성해야합니까?

나는 BAT 파일에서 이것을 시도했다 :

"\bin\Iris.exe"

그러나 작동하지 않습니다.



답변

배치 파일에서 이것을 사용하십시오.

%~dp0\bin\Iris.exe

%~dp0 배치 스크립트가있는 폴더의 전체 경로로 확인됩니다.


답변

아래 코드를 사용하여 필요한 파일 속성을 모두 얻을 수 있습니다.

FOR %%? IN (file_to_be_queried) DO (
    ECHO File Name Only       : %%~n?
    ECHO File Extension       : %%~x?
    ECHO Name in 8.3 notation : %%~sn?
    ECHO File Attributes      : %%~a?
    ECHO Located on Drive     : %%~d?
    ECHO File Size            : %%~z?
    ECHO Last-Modified Date   : %%~t?
    ECHO Parent Folder        : %%~dp?
    ECHO Fully Qualified Path : %%~f?
    ECHO FQP in 8.3 notation  : %%~sf?
    ECHO Location in the PATH : %%~dp$PATH:?
)


답변

%CD%스크립트의 경로가 아니라 스크립트가 호출 된 경로를 %~dp0제공 하지만 스크립트 자체 의 경로 를 제공 한다는 것을 알았 습니다 .


답변

현재 디렉토리를 사용할 수 있어야합니다

“% CD %”\ bin \ Iris.exe


답변


bin\Iris.exe
(NO 슬래시를 선도하는 – 그 수단이 루트에서 바로 시작하기 때문에)
또는 \Program\bin\Iris.exe(전체 경로)


답변