web-dev-qa-db-ja.com

Windowsバッチの親フォルダーを取得する方法

バッチファイルを作成しています。このbatファイルの親フォルダを取得する必要があります。可能ですか? NBつまり、バッチを呼び出すプロンプトの現在のディレクトリではなく、バッチファイルの親フォルダです。

ありがとう

15
Tobia

バッチの親フォルダは、変数%~dp0にあります。例:

@echo off&setlocal
for %%i in ("%~dp0.") do set "folder=%%~fi"
echo %folder%
34
Endoro

Endoroの答えも私にはうまくいきませんが、これはうまくいきます。これは私がこれを行うために私が使用するものです。

V3

これらの1つは正しいことを行う必要があります

for %%I in ("%~dp0.") do for %%J in ("%%~dpI.") do set ParentFolderName=%%~nxJ
echo %ParentFolderName%

for %%I in ("%~dp0.") do for %%J in ("%%~dpI.") do set ParentFolderName=%%~dpnxJ
echo %ParentFolderName%

V2

for %%I in ("%~dp0\.") do set ParentFolderName=%%~nxI
echo %ParentFolderName%

V1

これは現在の作業ディレクトリの親ディレクトリを取得します

for %%I in (..) do set ParentFolderName=%%~nI%%~xI
echo %ParentFolderName%

リファレンス: For | Microsoft Docs

1
cpcolella