批处理文件:如何只显示文件夹名称而不显示整个路径

时间:2017-01-05 17:47:33

标签: list batch-file

我有一些代码可以显示允许用户选择的选项。目前,代码显示整个路径。反正只是在路径的末尾显示文件夹吗?

到目前为止,这是我的代码

:incorrect1
@echo 3. Select a folder from the list below
echo[
setlocal enabledelayedexpansion

set Index=1
for /d %%D in ("C:\Projects\Google\Automation\TestResults\*") do (
  set "Subfolders[!Index!]=%%D"
  set /a Index+=1
)
set /a UBound=Index-1

setlocal enabledelayedexpansion

for /l %%i in (1,1,%UBound%) do echo %%i. !Subfolders[%%i]!
:choiceloop
set /p Choice=Your choice: 
if "%Choice%"=="" goto chioceloop
if %Choice% LSS 1 goto choiceloop
if %Choice% GTR %UBound% goto choiceloop

set Subfolder=!Subfolders[%Choice%]!
echo[
set /P c=Are you happy with your selection[Y/N]?

if /I "%c%" EQU "N" goto :incorrect1
if /I "%c%" EQU "Y" goto :happy so move on1

:happy so move on1

1 个答案:

答案 0 :(得分:1)

只需使用%%~nxD获取文件的名称和扩展名,无需驱动器或路径信息。

  set "Subfolders[!Index!]=%%~nxD"

有许多修饰符可以应用于FOR变量,类似于可以应用于%1等参数的修饰符。

您可以通过执行help forfor /?从命令行阅读相关内容。