Windows批处理文件中获取指定目录名

游客 发布于 2023-12-05 阅读(25)
在Windows批处理文件中,要获取指定目录的名称,可以使用以下几种方法:

使用for /D循环

如果你想要获取当前目录下的某个子目录的名称,可以使用 for /D 循环。例如,如果你想获取名为 "SubFolder" 的子目录的完整路径,可以使用如下代码:

batch

@echo off

setlocal enabledelayedexpansion

for /D %%i in ("SubFolder") do (

set "folderPath=%%~fi"

echo Folder path: !folderPath!

)

endlocal

使用 dir 命令和管道(pipe)

如果你想要获取当前目录下的所有子目录的名称,可以使用 dir 命令结合管道(pipe)和 findstr 命令进行过滤。例如,如果你想获取所有的子目录名,可以使用如下代码:

batch

@echo off

setlocal enabledelayedexpansion

for /F "tokens=*" %%i in ('dir /B /AD') do (

set "folderName=%%i"

echo Folder name: !folderName!

)

endlocal

这里,/B 参数表示以简单的格式输出,/AD 参数表示只显示目录。

使用 pushd 和 popd 命令

如果你想要获取一个绝对路径的目录名,你可以使用 pushd 命令将路径推送到堆栈,并使用 popd 命令从堆栈中取出路径。这种方法的优点是可以处理包含空格的路径。

batch

@echo off

set "folderPath=C:\Path\To\Folder"

pushd "%folderPath%"

set "folderName=!CD!"

popd

echo Folder name: %folderName%

请根据你的具体需求调整这些代码片段。