batch-file - 如何批量检查多个空变量
问题描述
我在批处理文件中使用多个变量,我需要检查它们是否包含任何值。
目前我正在使用: -
IF [%TEST%] == [] (
echo The Value of Test is empty!
exit /b )
但是使用它会增加代码行数,是否有某种方式可以使用,比如 OR in batch (就像我们对 shell 所做的那样)。
解决方案
我认为最简单的方法是简单地创建一个 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
推荐阅读
- javascript - 尝试使用 Uglify 最小化代码时出现意外令牌
- xaml - 如何在 StaticResource 中设置字体?
- perl - 列出相同的文件并按顺序对文件名进行排序
- regex - 灾难性回溯 [AZ]*([0-9A-Z])-[1-9]*([0-9])
- python - 正则表达式策略在一种情况下有效,但在另一种情况下无效
- python - 如何在 Jinja2/Django 模板中使用迭代器循环?
- autodesk-forge - 是否有扩展以在一个级别上显示模型?
- node.js - 使用模拟/存根为给定方法在 mocha 中编写单元测试
- gradle - 使用 Java 模块构建 Gradle Kotlin DSL 多项目
- python - 如何在 Python 3.7 中读取时间序列数据