为包含空格的字符串创建批处理文件数组?

Creating a batch file array for strings that have spaces in them?

提问人:Æthan 提问时间:4/29/2023 最后编辑:Æthan 更新时间:4/29/2023 访问量:69

问:

我正在尝试编写一个批处理文件,允许用户根据有效名称数组选择字体。这些是我希望它如何工作的一些要求;

  1. 用户输入字体名称(区分大小写,带空格,键入时不带引号)
  2. 批处理文件检查数组或列表,以查看输入的内容是否为有效的字体名称,如果未返回步骤 1,是否继续有效
  3. 将有效的字体名称输出到我以后可以使用的变量(字体名称需要区分大小写并有空格)

这就是我目前所拥有的;

@echo off 
set validFonts=Arial,Arial Italic,Arial Bold,Arial Bold Italic
:fontB
set /p fontName=Enter Desired Font Name:
(for %%a in (%validFonts%) do (
    if %fontName% == %%a goto:fontG
))
echo "Invalid Font Name"
goto :fontB
:fontG
echo.
pause

当您输入字体名称时,它可以工作,但在输入时会像崩溃一样关闭窗口,任何帮助都将不胜感激,因为我对制作批处理文件非常陌生。ArialArial Italic

数组 列表 变量 批处理文件 崩溃

评论


答:

0赞 Æthan 4/29/2023 #1

我发现我做错了什么,我需要在我的数组字符串周围加上引号,当我调用该数组时;

set validFonts="Arial","Arial Italic","Arial Bold","Arial Bold Italic"    
:fontB
set /p fontName=Enter Desired Font Name:
(for %%a in (%validFonts%) do (
    if /i "%fontName%" == %%a goto:fontG
))
echo "Invalid Font Name"
goto :fontB

评论

4赞 Aacini 4/29/2023
我建议您:1-通过数字下标定义有效字体名称数组以及2-使用命令通过其下标选择所需的字体choice