关于Windows 7 Droplet,桌面上的批处理文件。 我在其上拖动文件夹,需要找到父文件夹。
拖动:C:\ abc \ def \ ghi \ jkl< - jkl是一个文件夹! 寻找" ghi" 不是" C:\ abc \ def \ ghi"
拖动:C:\ abc \ def \ ghi \ jkl \ mno \ pqr< - pqr是一个文件夹! 寻找" mno"
此代码提供最后一个文件夹。 但我需要倒数第二个。
仅限父文件夹名称,而不是该父文件夹的完整路径。
感谢。
@echo off
setlocal enableDelayedExpansion
echo Command line:
echo !cmdcmdline!
echo.
echo Whole path: "%~1"
set MYDIR=%~1
set MYDIR1=%MYDIR:~0%
for %%f in (%MYDIR1%) do set myfolder=%%~nxf
echo Most right folder: %myfolder%
pause
exit
答案 0 :(得分:2)
您的代码无法可靠地为您提供最右侧文件夹的名称。如果文件夹名称包含空格,则会失败。
这是正确提供最右边文件夹的代码,以及该文件夹的父文件。
@echo off
setlocal enableDelayedExpansion
echo Command line:
echo !cmdcmdline!
echo.
echo Whole path: "%~1"
:: Here is the correct code to get the right most node (folder in your case)
echo Most right folder: "%~nx1"
:: Here is the code to get the parent of the right most node
for %%F in ("%~1\..") do echo Parent folder: "%%~nxF"
pause
exit
答案 1 :(得分:0)
两个步骤:首先等于你的。第二步:删除最后的\
并再次执行相同的操作:
for %%i in ("%~1") do set "parent=%%~pi"
for %%i in ("%parent:~0,-1%") do echo %%~nxi