首页 > 解决方案 > 如何批量检查多个空变量

问题描述

我在批处理文件中使用多个变量,我需要检查它们是否包含任何值。

目前我正在使用: -

IF [%TEST%] == [] (
echo The Value of Test is empty!
exit /b )

但是使用它会增加代码行数,是否有某种方式可以使用,比如 OR in batch (就像我们对 shell 所做的那样)。

标签: batch-file

解决方案


我认为最简单的方法是简单地创建一个 for 循环并测试每个值。所以考虑以下几点:

如果值为空(未定义),如果您不想做任何事情,只需使用已定义的变量值:

@echo off
set "test1=Value1"
set "test2=Value2"
set "test3="
set "test4=Value4"
set "myvars=%test1% %test2% %test3% %test4%"

for %%i in (%myvars%) do echo %%i

如果您实际上只想测试变量是否未定义:

@echo off
set "test1=Value1"
set "test2=Value2"
set "test3="
set "test4=Value4"
set "myvars=test1 test2 test3 test4"

for %%i in (%myvars%) do if not defined %%i (echo %%i not defined) else echo %%i Defined

或者如果您只是想在循环中包含变量而不是将它们分配给单个变量:

@echo off
set "test1=Value1"
set "test2=Value2"
set "test3="
set "test4=Value4"

for %%i in (test1 test2 test3 test4) do if not defined %%i (echo %%i not defined) else echo %%i Defined

推荐阅读