批脚本编程——如何允许用户从文件夹中的文件列表中按编号选择文件



我有一个文件夹,里面有N个文件

显示文件列表,旁边有数字供选择:

01 - FileA.pdf
02 - FileB.pdf
03 - FileC.pdf
...

然后,让用户通过键入相应的数字来选择要使用的文件。我甚至不知道从哪里开始。

下面的批处理脚本应该做你想做的事情,解释如下:

@ECHO OFF
SET index=1
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%f IN (*.*) DO (
   SET file!index!=%%f
   ECHO !index! - %%f
   SET /A index=!index!+1
)
SETLOCAL DISABLEDELAYEDEXPANSION
SET /P selection="select file by number:"
SET file%selection% >nul 2>&1
IF ERRORLEVEL 1 (
   ECHO invalid number selected   
   EXIT /B 1
)
CALL :RESOLVE %%file%selection%%%
ECHO selected file name: %file_name%
GOTO :EOF
:RESOLVE
SET file_name=%1
GOTO :EOF

首先,这个脚本使用类似数组的东西来存储文件名。此数组填充在FOR-循环中。对于在当前目录中找到的每个文件名,循环体执行一次。

数组实际上由一组变量组成,所有变量都以file开头,并附加一个数字(如file1file2)。该数字存储在变量index中,并在每次循环迭代中递增。在循环体中,该数字和相应的文件名也会打印出

在下一部分中,SET /P命令要求用户输入一个数字,然后将其存储在变量selection中。第二个SET命令和下面的IF用于通过检查fileX变量来检查输入的数字是否会给出有效的数组索引。

最后,RESOLVE子程序用于将file+在selection中输入的数字形成的变量的内容复制到名为file_name的变量,然后该变量可用于进一步处理。

希望这能提供一些提示。

相关内容

  • 没有找到相关文章

最新更新