我有这个FOR循环:
for /F "tokens=1,2,3,4,5 delims=():/ " %%a in (svn.txt) DO (
虽然明确要求5 tokens
,但可能只有3个或4个。
是否有更好的方法来编写“令牌”以获取正在解析的行中的令牌数量“
如何判断第三个(例如)令牌是否分配了值?我已尝试过IF NOT DEFINED
但tokens=1,2,3,4,5
显然%%c
,%%d
和%%e
始终定义,即使它们的值为%%c
,{{ 1}}和%%d
。我无法弄清楚如何检查这些变量是否分配了自己的名称或实际值。
答案 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
子句中的代码。