如标题所述,是否有人如何检查变量是否仅包含批处理空格?
答案 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