提问人:Æthan 提问时间:4/29/2023 最后编辑:Æthan 更新时间:4/29/2023 访问量:69
为包含空格的字符串创建批处理文件数组?
Creating a batch file array for strings that have spaces in them?
问:
我正在尝试编写一个批处理文件,允许用户根据有效名称数组选择字体。这些是我希望它如何工作的一些要求;
- 用户输入字体名称(区分大小写,带空格,键入时不带引号)
- 批处理文件检查数组或列表,以查看输入的内容是否为有效的字体名称,如果未返回步骤 1,是否继续有效
- 将有效的字体名称输出到我以后可以使用的变量(字体名称需要区分大小写并有空格)
这就是我目前所拥有的;
@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
答:
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
评论