获取文件夹名称
Get folder name
我有一些字符串,这是一些路径 C:\A\B\C\D\
如何获取文件夹名称,例如 "A" 或 "B" 或其他需要的名称。
我只有 "D":
的解决方案
@echo off
setlocal enabledelayedexpansion
FOR /f %%i IN ("C:\A\B\C\D\") DO (
set parent=%%~dpi
for /F "tokens=*" %%f in ("!parent:~0,-1!") do echo %%~nf
)
下一个代码片段将字符串拆分为用 \
反斜杠字符分隔的子字符串。在字符串(路径)中使用或不使用尾部反斜杠,使用或不使用空白 space(s)。注意 set
命令中的正确引用:
@ECHO OFF
SETLOCAL enableextensions
set "fullpath=C:\Aa\B b\Cc\D d\"
set "to_parse="%fullpath:\=" "%""
for %%G in (%to_parse%) do (
echo %%~G %%G
)
输出:
==>30285354.bat
C: "C:"
Aa "Aa"
B b "B b"
Cc "Cc"
D d "D d"
""
==>
资源(必读):
你的问题不清楚("other folder needed" 不是 一个规范)所以我假设 你想分开所有文件夹放入数组元素中,因此可以通过其索引获取任何所需的文件夹。
@echo off
setlocal EnableDelayedExpansion
set "string=C:\A\B\C\D\"
rem Separate all folders in the string into "folder" array
set i=-1
for %%a in ("%string:\=" "%") do (
if %%a neq "" (
set /A i+=1
set "folder[!i!]=%%~a"
)
)
rem Show some folders
echo The first folder: %folder[1]%
echo The second folder: %folder[2]%
echo The last folder: !folder[%i%]!
有关批处理文件中数组的更多详细信息,请参阅 this post。
我有一些字符串,这是一些路径 C:\A\B\C\D\ 如何获取文件夹名称,例如 "A" 或 "B" 或其他需要的名称。 我只有 "D":
的解决方案@echo off
setlocal enabledelayedexpansion
FOR /f %%i IN ("C:\A\B\C\D\") DO (
set parent=%%~dpi
for /F "tokens=*" %%f in ("!parent:~0,-1!") do echo %%~nf
)
下一个代码片段将字符串拆分为用 \
反斜杠字符分隔的子字符串。在字符串(路径)中使用或不使用尾部反斜杠,使用或不使用空白 space(s)。注意 set
命令中的正确引用:
@ECHO OFF
SETLOCAL enableextensions
set "fullpath=C:\Aa\B b\Cc\D d\"
set "to_parse="%fullpath:\=" "%""
for %%G in (%to_parse%) do (
echo %%~G %%G
)
输出:
==>30285354.bat
C: "C:"
Aa "Aa"
B b "B b"
Cc "Cc"
D d "D d"
""
==>
资源(必读):
你的问题不清楚("other folder needed" 不是 一个规范)所以我假设 你想分开所有文件夹放入数组元素中,因此可以通过其索引获取任何所需的文件夹。
@echo off
setlocal EnableDelayedExpansion
set "string=C:\A\B\C\D\"
rem Separate all folders in the string into "folder" array
set i=-1
for %%a in ("%string:\=" "%") do (
if %%a neq "" (
set /A i+=1
set "folder[!i!]=%%~a"
)
)
rem Show some folders
echo The first folder: %folder[1]%
echo The second folder: %folder[2]%
echo The last folder: !folder[%i%]!
有关批处理文件中数组的更多详细信息,请参阅 this post。