如何检查变量只包含空格?

时间:2016-03-03 02:26:43

标签: batch-file

如标题所述,是否有人如何检查变量是否仅包含批处理空格?

1 个答案:

答案 0 :(得分:3)

试试这个:

if "%variable: =%"=="" (
    rem variable contains only spaces
)

%variable: =%%haystack:needle=replace%的一种形式,搜索空间并替换为空。因此,如果在变量中没有任何内容替换所有空格且结果等于空,那么该变量仅包含空格。

编辑: Aacini是对的。如果变量仅包含空格,则上述if语句将为true,如果未定义变量,则为false。可能应该明确检查变量是否首先定义。这是一种方式:

if not defined variable (
    rem variable is not defiend
) else if "%variable: =%"=="" (
    rem variable contains only spaces
)

这是另一个:

if defined variable if not "%variable: =%"=="" goto valid
rem variable is either undefined or contains only spaces

:valid