web-dev-qa-db-ja.com

BATスクリプトの相対パス

USBドライバーにある独自のプログラムフォルダーを次に示します。

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

Run.batを使用してIris.exeを開始したい

これを使用することはできません:F:/Program/bin/Iris.exeはショートカットのようです

魔法のように動作するには、batファイルに何を書き込む必要がありますか?私はBATファイルでそれを試しました:

 ˝\bin\Iris.exe˝ 

動作していません:(

110
user2083037

バッチファイルでこれを使用します。

%~dp0\bin\Iris.exe

%~dp0は、バッチスクリプトが存在するフォルダーの絶対パスに解決されます。

243
Ansgar Wiechers

以下のコードを使用して、必要なすべてのファイルプロパティを取得できます。

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はスクリプト自体のパスを提供します。

16
Sitri

現在のディレクトリを使用できるはずです

"%CD%"\bin\Iris.exe

10
Johan A.

bin\Iris.exe(先頭のスラッシュなし-ルートから直接開始することを意味するため)
または\Program\bin\Iris.exe(フルパス)

4
AjV Jsy