为其中有空格的字符串创建批处理文件数组?

问题描述 投票:0回答:1

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

  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

当您输入

Arial
作为字体名称时它会起作用,但在输入
Arial Italic
时像崩溃一样关闭窗口 任何帮助都会非常感激,因为我对制作批处理文件真的很陌生。

arrays list variables batch-file crash
1个回答
0
投票

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

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
© www.soinside.com 2019 - 2024. All rights reserved.