我有一个文件夹,里面有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
并附加一个数字(例如file1
, file2
。该数字存储在变量中index
并且在每次循环迭代中递增。在循环体中,该数字和相应的文件名也被打印出来
在下一部分中SET /P
命令要求用户输入一个数字,然后将其存储在变量中selection
。第二SET
命令和以下内容IF
用于通过检查输入的数字是否给出有效的数组索引fileX
多变的。
最后RESOLVE
子程序用于复制由以下形式形成的变量的内容file
+ 输入的数字selection
到一个名为file_name
然后可用于进一步处理。
希望能给一些提示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)