文字列(パスを含む)を\
で分割し、最後のフォルダー名を変数に入れます。助けてください。
例えば
mypath = D:\ FOLDER1\FOLDER2\FOLDER3 \
変数にFOLDER3が必要です。
最後の文字が\
でない場合に機能する以下のコマンドを試してみました。
for %f in (C:\FOLDER1\FOLDER2\FOLDER3) do set myfolder=%~nxf
最後の文字が\
の場合は機能しません
また、変数が次のように使用されている場合も機能しません:%f for(%mypath%)do set myfolder =%〜nxf
@echo off
set MYDIR=C:\FOLDER1\FOLDER2\FOLDER3\
set MYDIR1=%MYDIR:~0,-1%
for %%f in (%MYDIR1%) do set myfolder=%%~nxf
echo %myfolder%
出力
FOLDER3
試してください:
for %f in (C:\FOLDER1\FOLDER2\FOLDER3\.) do set myfolder=%~nxf
も動作します:
for %f in (C:\FOLDER1\FOLDER2\FOLDER3.) do set myfolder=%~nxf
現在のフォルダーにスペースが含まれている場合は、これを試してください:
@echo off
for %%f in ("%CD%") do set LastPartOfFolder=%%~nxf
echo %LastPartOfFolder%