は各フォルダの..
親フォルダを指すため、現在のフォルダから 2 つ上のレベルは..\..
です。ここで、相対参照を絶対フル パスに変換するには、指定されたファイル/フォルダーへの参照を取得する必要があります。for
それを行うには、相対参照を引数としてサブルーチンに渡すか、コマンドを使用できます
@echo off
setlocal enableextensions disabledelayedexpansion
set "newDir=..\..\bin"
rem With a subroutine
call :resolve "%newDir%" resolvedDir
echo %resolvedDir%
rem With a for - retrieve the full path of the file/folder being
rem referenced by the for replaceable parameter
for %%f in ("%newDir%") do echo %%~ff
endlocal
goto :EOF
:resolve file/folder returnVarName
rem Set the second argument (variable name)
rem to the full path to the first argument (file/folder)
set "%~2=%~f1"
goto :EOF
編集
送信されたコードは、バッチ ファイル ディレクトリではなく、現在のディレクトリの相対パスを取得します。バッチファイル相対が必要な場合は、試してください
set "newDir=%~dp0\..\..\bin\"
where%~dp0
は現在のバッチ ファイルのドライブとパス (%0
は現在のバッチ ファイルへの参照) であり、同じ/類似のコードで処理を進めます