批量选择菜单

时间:2018-12-30 21:39:52

标签: batch-file for-loop user-input

我批量制作了一个菜单,该菜单显示文件夹中的所有 .txt 文件,并为每个文件分配一个编号。基于本教程: Batch Script Programming -- How to allow a user to select a file by number from a list of files in a folder? -效果很好,但我想选择1个以上的文件。例如,用户可以选择 1,2,4 ,在新变量中,我将获得列出的第一个文件,第二个和第四个文件的所有文件名。

此外, .txt 文件的数量正在更改,所以我不知道文件夹中有多少 .txt 个文件,我想让用户选择所需数量的文件-1个或更多。我需要1变量中的文件,因为我希望在用户选择使用需要第1行中所有文件名的第3部分应用程序之后,因此我要编写类似以下内容的文件:

"Do this command with %all_files_from_batch_menu%"

我希望这很清楚... 谢谢!

这里是一个例子 可以说我的文件夹中有5个文件 a.txt b.txt c.txt d.txt e.txt -我希望菜单显示它们并为每个文件分配编号,如果用户愿意选择 1,2,4 它会写信给他,您选择 a.txt b.txt e.txt

1 个答案:

答案 0 :(得分:0)

您没有显示任何代码行。您刚刚请求的代码,任何代码 ......对我来说,这意味着我可以编写任何我想编写的代码。所以这里是:

@echo off
setlocal EnableDelayedExpansion

rem Create array / show the list
cls
set "n=0"
for %%a in (*.txt) do (
   set /A n+=1
   set "file!n!=%%a"
   echo !n!- %%a
)

set /P "files=Enter desired files: "

rem Extract the files
set "result=!file%files:,=! !file%!"

echo %result%

输出示例:

1- a.txt
2- b.txt
3- c.txt
4- d.txt
5- e.txt
Enter desired files: 1,2,4
a.txt b.txt d.txt

注意:文件编号4为 d.txt ,不是不是 e.txt ,如您在问题中所指出的那样...