在.bat文件中使空格无关紧要

时间:2015-12-06 22:57:43

标签: batch-file

我在批处理脚本中遇到了一些问题。我知道/我使IF语句没有上限敏感但是类似于使它不是空间敏感的东西?

3 个答案:

答案 0 :(得分:1)

定义了talk变量后,可以使用字符串替换来删除空格。如下:

set "_temp=%talk: =%"

然后使用%_temp%变量进行IF比较。

提示:完整set命令周围的双引号只是为了使您的变量声明更精确,避免不必要的后续空格。

来源: http://www.dostips.com/DtTipsStringManipulation.php

答案 1 :(得分:1)

无需删除空格。只需在两个表达式周围加上双引号即可进行比较:

if /I "%talk%"=="How are you" goto HOWAREYOU

双引号还避免了对命令提示符特有的其他字符(例如 SPACE TAB ,;,{ {1}},=^&()<>)。

答案 2 :(得分:1)

您可以将findstrconditional execution一起使用来执行正则表达式匹配。

setlocal enabledelayedexpansion
echo(!talk! | findstr /i "how *are *you" && (
    rem Match.
) || (
    rem No match.
)

延迟扩展可防止过早评估变量的内容(用户输入的符号或其他内容)。将echo(与括号一起使用可防止评估/?的用户输入。