List 批处理文件以列出文件夹中的子文件夹

List 批处理文件以列出文件夹中的子文件夹,list,file,batch-file,selection,List,File,Batch File,Selection,我希望得到一个批处理文件,其中显示目录中的子文件夹列表,并允许用户从该文件夹列表中进行选择。进行选择后,应显示该文件夹的内容,并允许用户进行选择。有人能帮忙吗 问候 约翰 示例:列出C:\ECU下的所有文件夹,可能是ECU1、ECU2和ECU3。假设选中了ECU1,则批处理文件将在该批处理文件中显示amy文件夹,例如,在ECU1下有文件夹:EU1、EU2和EU3。到目前为止,我有这些文件夹 @回音 setlocal enabledelayedexpansion 设置索引=1 对于(C:\ECU*

我希望得到一个批处理文件,其中显示目录中的子文件夹列表,并允许用户从该文件夹列表中进行选择。进行选择后,应显示该文件夹的内容,并允许用户进行选择。有人能帮忙吗

问候 约翰


示例:列出C:\ECU下的所有文件夹,可能是ECU1、ECU2和ECU3。假设选中了ECU1,则批处理文件将在该批处理文件中显示amy文件夹,例如,在ECU1下有文件夹:EU1、EU2和EU3。

到目前为止,我有这些文件夹

@回音

setlocal enabledelayedexpansion

设置索引=1 对于(C:\ECU*)中的/d%%d,请执行以下操作( 设置“子文件夹[!索引!]=%D” 集合/a索引+=1 ) set/a UBound=Index-1

setlocal enabledelayedexpansion

对于(1,1,%UBound%)中的/l%%i,请执行回显%%i!子文件夹[%%i]! :choiceloop 设置/p选项=您的选择: 如果“%Choice%”==“转到循环” 如果%Choice%LSS 1转到choiceloop 如果%Choice%GTR%UBound%goto choiceloop


设置子文件夹=!子文件夹[%Choice%]

这应该是可行的,输出并不漂亮,但基本上它只是使用dir命令来输出目录中的文件夹。我建议您阅读dir命令的文档,让它完全按照您的要求执行

@echo off
set "dir=%cd%"
:loop
echo ---Folders
dir /b /a:d %dir%
echo ---
set /p "folder=Enter a folder from the list: "
if not exist %folder% echo Not a valid folder & goto :loop
set "dir=%dir%\%folder%"
echo ---Subfolders
dir /b /a:d %dir%
echo ---
pause

谢谢Matthew。这很好,但我需要一个布局,允许用户选择与列表上的项目对齐的数字,即1、2、3等。我将在这里添加另一篇文章,稍后详细说明我需要什么。再次感谢。