CMD IF GTR声明未评估

时间:2017-01-26 17:35:32

标签: if-statement cmd

我正在从文本文件中读取行。我需要忽略前半部分,在达到某一行之后,将读取的行分配给变量。即使输出显示q已从0递增到1,第二个if语句也永远不会满足。

代码:

set q=0

for /f "tokens=*" %%a in (myfilename) do (

   if "%%a" == "# My Trigger Text" ( 
     set /A "q+=1"
     set q    :: Debug Statement 1
     echo %%a
   )

   if %q% GTR 0 ( 
     set /A "q+=1"
     set q    :: Debug Statement 2
     echo %%a
     [Other code will eventually go here; nothing right now]
   )
   :: set q   :: Debug Statement 3
)
pause

调试声明3的输出显示:

ECHO is off. 
q=1
# My Trigger Text
Press any key to continue...

如果我取消注释Debug Statement 3,则输出为:

ECHO is off. 
q=0
q=0
q=0
q=0
q=0
q=0
q=1
# My Trigger Text
q=1
q=1
q=1
q=1
q=1
q=1
q=1
Press any key to continue...

因此q在第一次触及触发文本时会增加,但是它不会将q评估为大于0以进入函数循环。

0 个答案:

没有答案