我有一些代码可以显示允许用户选择的选项。目前,代码显示整个路径。反正只是在路径的末尾显示文件夹吗?
到目前为止,这是我的代码
: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
答案 0 :(得分:1)
只需使用%%~nxD
获取文件的名称和扩展名,无需驱动器或路径信息。
set "Subfolders[!Index!]=%%~nxD"
有许多修饰符可以应用于FOR变量,类似于可以应用于%1
等参数的修饰符。
您可以通过执行help for
或for /?
从命令行阅读相关内容。