web-dev-qa-db-ja.com

パスを分割し、バッチスクリプトで最後のフォルダー名を取得

文字列(パスを含む)を\で分割し、最後のフォルダー名を変数に入れます。助けてください。

例えば
mypath = D:\ FOLDER1\FOLDER2\FOLDER3 \

変数にFOLDER3が必要です。

最後の文字が\でない場合に機能する以下のコマンドを試してみました。

for %f in (C:\FOLDER1\FOLDER2\FOLDER3) do set myfolder=%~nxf

最後の文字が\の場合は機能しません

また、変数が次のように使用されている場合も機能しません:%f for(%mypath%)do set myfolder =%〜nxf

22
user2013
@echo off

set MYDIR=C:\FOLDER1\FOLDER2\FOLDER3\
set MYDIR1=%MYDIR:~0,-1%

for %%f in (%MYDIR1%) do set myfolder=%%~nxf
echo %myfolder%

出力

FOLDER3
29
user93353

試してください:

for %f in (C:\FOLDER1\FOLDER2\FOLDER3\.) do set myfolder=%~nxf

も動作します:

for %f in (C:\FOLDER1\FOLDER2\FOLDER3.) do set myfolder=%~nxf
17
Endoro

現在のフォルダーにスペースが含まれている場合は、これを試してください:

@echo off
for %%f in ("%CD%") do set LastPartOfFolder=%%~nxf

echo %LastPartOfFolder%
7
Dirk