【发布时间】:2021-10-31 09:29:13
【问题描述】:
我正在尝试创建一个带有子菜单的菜单,其名称不带扩展名来自目录。但是,我无法将变量设置为数字。这段代码无论如何都不起作用。我还想在菜单中每个文件名的开头显示一个数字;事实上,文件的数量也将是用户选择作为输入的数量之一。我无法克服这个问题。
@echo off
cd C:\Users\Murray\Documents\ConfigFiles\
for /f %%A in ('dir /a-d-s-h /b *conf ^| find /v /c ""') do set count=%%A
echo File count = %count%
for %%F in ("C:\Users\Murray\Documents\ConfigFiles\*.conf") do echo %%~nxF
set choice=
set /C /N="Please choice: "
if "%choice%" == "%count%" goto SUBMENU
if NOT EXIST "C:\Users\Murray\Documents\ConfigFiles\%choice%" goto NOFILE
:SUBMENU
Echo You are here
goto end
:NOFILE
echo %choice% could not be found.
goto END
:end
任何帮助将不胜感激。
【问题讨论】:
-
这不是一个有效的命令:
set /C /N="Please choice: "。我建议您在尝试使用不存在的选项之前阅读您尝试使用的命令的帮助文件。 -
我做到了,但找不到解决方案来克服这个问题:如果我设置像 CHOICE C/12345 这样的选择数量,它适用于错误级别,但选择的数量必须取决于文件的数量。
-
您永远不会在代码中使用
CHOICE命令。仅当您使用数字时,选择命令也将限制为 9 个选项。如果您使用字母,您可以有 52 个选项,因为您可以有大写和小写。因此,如果您想要一个最大限制为 9 个文件选择的动态菜单,那么这是您需要查看的问答。 Create a menu from folder file list -
我来看看网址。但是,如果我的文件夹中存在 90 个文件怎么办?那么,这意味着用户无法选择选项 11。我可以使用什么来克服此限制?
标签: batch-file command