Batch file 为什么运行.BAT文件时出错?

Batch file 为什么运行.BAT文件时出错?,batch-file,Batch File,代码如下: @Echo off Set _File=SQLQuery.txt Set /a _Lines=0 For /f %j in ('Type %_File%^|Find "" /v /c') Do Set /a _Lines=%j Echo %_File% has %_Lines% lines. 当我以.bat文件运行时,它会给我错误,因为“命令的语法不正确”,当我运行上述所有命令时,它会成功运行。为什么会这样?试试这个: @Echo Off (Set _File=SQLQuery.t

代码如下:

@Echo off
Set _File=SQLQuery.txt
Set /a _Lines=0
For /f %j in ('Type %_File%^|Find "" /v /c') Do Set /a _Lines=%j
Echo %_File% has %_Lines% lines.
当我以.bat文件运行时,它会给我错误,因为“命令的语法不正确”,当我运行上述所有命令时,它会成功运行。为什么会这样?

试试这个:

@Echo Off
(Set _File=SQLQuery.txt)
(Set _Lines=)
For /F %%I In ('Find /V /C ""^<"%_File%"') Do (Set _Lines=%%I)
If Defined _Lines Echo(%_File% has %_Lines% line(s).
Pause

在批处理文件中使用而不是%j。为什么会这样?因为您没有像CristiFati指出的那样阅读for命令的帮助文件。要在批处理程序中使用FOR命令,请指定%%variable而不是%variable。签出-