Vik*_*exe 2 scripting batch-file
我试图使用批处理文件(windows xp sp3)计算文件中的行数.这是我的代码:
@echo off
set line=0
FOR /F "usebackq delims=" %%a in (foo) do (
set /A line+=1
echo line count: %line%
)
echo number of lines: %line%
Run Code Online (Sandbox Code Playgroud)
虽然它正确地计算了线条,但echo输出并不是我所期望的.我认为这与变量的延迟扩展有一些关系,所以我也尝试SetLocal EnableDelayedExpansion了,但这也没有用.
这是我得到的输出:
C:\fiddle\temp>a.bat
line count: 0
line count: 0
line count: 0
line count: 0
line count: 0
number of lines: 5
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?
添加此行:
SETLOCAL ENABLEDELAYEDEXPANSION
Run Code Online (Sandbox Code Playgroud)
改变这一行:
echo line count: %line%
Run Code Online (Sandbox Code Playgroud)
对此:
echo line count: !line!
Run Code Online (Sandbox Code Playgroud)
因此,整个脚本将如下所示:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set line=0
FOR /F "usebackq delims=" %%a in (foo) do (
set /A line+=1
echo line count: !line!
)
echo number of lines: %line%
Run Code Online (Sandbox Code Playgroud)