我在批处理脚本中遇到了一些问题。我知道/我使IF语句没有上限敏感但是类似于使它不是空间敏感的东西?
答案 0 :(得分:1)
定义了talk
变量后,可以使用字符串替换来删除空格。如下:
set "_temp=%talk: =%"
然后使用%_temp%
变量进行IF
比较。
提示:完整set
命令周围的双引号只是为了使您的变量声明更精确,避免不必要的后续空格。
答案 1 :(得分:1)
无需删除空格。只需在两个表达式周围加上双引号即可进行比较:
if /I "%talk%"=="How are you" goto HOWAREYOU
双引号还避免了对命令提示符特有的其他字符(例如 SPACE , TAB ,,
,;
,{ {1}},=
,^
,&
,(
,)
,<
,>
)。
答案 2 :(得分:1)
您可以将findstr
与conditional execution一起使用来执行正则表达式匹配。
setlocal enabledelayedexpansion
echo(!talk! | findstr /i "how *are *you" && (
rem Match.
) || (
rem No match.
)
延迟扩展可防止过早评估变量的内容(用户输入的符号或其他内容)。将echo(
与括号一起使用可防止评估/?
的用户输入。