如何检查FOR循环中是否设置了变量?

时间:2014-06-10 13:15:50

标签: windows batch-file for-loop scripting

我有这个FOR循环:

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

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

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

  2. 如何判断第三个(例如)令牌是否分配了值?我已尝试过IF NOT DEFINEDtokens=1,2,3,4,5显然%%c%%d%%e始终定义,即使它们的值为%%c,{{ 1}}和%%d。我无法弄清楚如何检查这些变量是否分配了自己的名称或实际值。

2 个答案:

答案 0 :(得分:0)

咄。 if [%%e] EQU []。我曾经有过这个问题,但我还有其他逻辑问题。

答案 1 :(得分:0)

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

)

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

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