2

ディレクトリの階層の 1 レベル上にあるフォルダーのパスを取得し、それを変数に設定しようとしています。

今私が持っています:

set LOCALFOLDER=%project.root%\builds\%BUILDFOLDER%

ここで、%project.root% はプロジェクト ディレクトリのフル パスです (バッチ文字列で?)。

%project.root%としましょう"C:\Hardware\project"

%project.root%(つまり) を1 レベル戻し、C:\Hardwreそのパスを変数に格納したいと思います。方法はありますか?

4

2 に答える 2

4

パス操作は少し面倒になります。1つのオプションは次のとおりです。

set "project.root=C:\Hardware\project"
set "X=%project.root%"
:l
if "%X:~-1%"=="\" goto al
set "X=%X:~0,-1%"
goto l
:al
set "X=%X:~0,-1%"
set "project.parent=%X%"
echo %project.parent%

これは、aが削除されるまで最後の文字を連続して削除し\ます。

ファイルシステム内の実際のパスを処理している場合は、次のpushdアプローチを使用すると思います。

pushd %project.root%
cd ..
set project.parent=%CD%
popd

これにより、現在のディレクトリが一時的に設定され、パスが保存されて戻ります。

于 2013-01-18T08:26:57.607 に答える
-1

これは非常に簡単です:

変数で現在のディレクトリを取得するには、 set /a VARIABLE=cd と言うだけです。レベルを戻すには、次のように言います: cd ..

今、「set /a VARIABLE=cd」と言えば前のディレクトリに設定されます

于 2013-01-18T01:15:19.647 に答える