为什么我的for循环不会增加我的变量?

时间:2013-04-17 20:15:32

标签: for-loop batch-file

我编写了一个批处理文件,但我是for-loops的新手,我需要它。

我现在知道语法是如何工作的,但是我无法弄清楚为什么我的循环没有做它应该做的事情。

此代码摘自我的文件:

@echo off & setlocal enabledelayedexpansion
set /p file=: 
set /a numberofgoals=0
for /f "delims=" %%a in ("%file%.txt") do set /a "numberofgoals+=1"

echo %numberofgoals%
pause > nul

如果我做的一切正确,我的输出应该是指定文本文件的长度,并且它之前对我有用,但显然我在代码中改变了一些我不确定的东西和输出无论我的文本文件有多长,%numberofgoals%的每一次都是1,无论我的文本文件有多长。

我的问题是:我做错了什么,为什么现在输出1?我甚至不记得在那里改变了什么......

编辑:我按照建议将"delims="更改为"usebackq delims=",现在可以使用了,谢谢。

1 个答案:

答案 0 :(得分:1)

for循环括号中的引号表示“处理此字符串”而不是“读取此文件”。使用usebackq选项指示引号提供文件名:

for /f "usebackq delims=" %%a in ("%file%.txt") do set /a "numberofgoals+=1"

你应该是金色的。

help for窗口中输入cmd以获取血腥详情。