【问题标题】:How do I check whether or not a variable is set in a FOR loop?如何检查 FOR 循环中是否设置了变量?
【发布时间】:2014-06-10 13:15:49
【问题描述】:

我有这个 FOR 循环:

for /F "tokens=1,2,3,4,5 delims=():/ " %%a in (svn.txt) DO (

虽然它明确要求 5 tokens,但可能只有 3 或 4 个。

  1. 是否有更好的方法来编写“令牌”以获取正在解析的行中的令牌数量”

  2. 如何判断第三个(例如)令牌是否具有分配给它的值?我试过IF NOT DEFINED,但tokens=1,2,3,4,5显然%%c%%d%%e总是被定义,即使它们的值为%%c%%d%%e。我不知道如何检查这些变量是否分配了自己的名称或实际值。

【问题讨论】:

    标签: windows batch-file for-loop scripting


    【解决方案1】:
    for /f "tokens=1-5 delims=():/ " %%a in (svn.txt) do (
        if "%%c"=="" echo third token does not contain data
    
    )
    

    由于您请求 5 个令牌,因此将为循环的所有迭代定义它们。根据行的标记化,它们将持有或不持有值。

    如果在读取/解析行时没有任何标记获取数据,则不会为此行执行do 子句中的代码。

    【讨论】:

      【解决方案2】:

      呃。 if [%%e] EQU []。我曾经有过这个问题,但我还把其他逻辑问题归咎于此。

      【讨论】:

        猜你喜欢
        • 2015-07-14
        • 2015-06-23
        • 1970-01-01
        • 2019-11-13
        • 2014-09-15
        • 2011-04-05
        • 1970-01-01
        • 2013-08-03
        相关资源
        最近更新 更多