[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理for循环里边数值变量的值为何始终是零?

  1. set /a N=0
  2. for /f "delims=" %%a in (XT.txt) do (
  3. set /a N+=1
  4. echo %N%
  5. )
  6. pause
复制代码
首先,XT.txt里边很多行,但是为什么输出的N的值都是0呢?
请教老鸟们。。谢谢。

  1. @echo off
  2. set a=0
  3. for /f "delims=" %%i in (a.txt) do set /a a=a+1
  4. echo 文本中共有%a%行!
  5. pause
复制代码

[ 本帖最后由 jcy0307 于 2010-4-12 23:01 编辑 ]

TOP

原帖由 lj84831253 于 2010-4-12 22:50 发表
代码如下:
set /a N=0
for /f "delims=" %%a in (XT.txt) do (
set /a N+=1
echo %N%
)
pause
首先,XT.txt里边很多行,但是为什么输出的N的值都是0呢?
请教老鸟们。。谢谢。

  
    楼上的是一种做法,  其实还有一种做法

把  echo %N%   改写成 call echo %%N%%

  另: 只要不是循环使用的代码, 像你那, set /a N=0  可以不要

[ 本帖最后由 x9tiancmd 于 2010-4-12 23:26 编辑 ]
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

原帖由 lj84831253 于 2010-4-12 22:50 发表
代码如下:
set /a N=0
for /f "delims=" %%a in (XT.txt) do (
set /a N+=1
echo %N%
)
pause
首先,XT.txt里边很多行,但是为什么输出的N的值都是0呢?
请教老鸟们。。谢谢。

变量延迟的问题。你可以搜索相关的主题
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (XT.txt) do (
  3. set /a N+=1
  4. echo !N!
  5. )
  6. pause
复制代码

[ 本帖最后由 hanyeguxing 于 2010-4-12 23:38 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

多看教程:批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 jcy0307 于 2010-4-12 22:55 发表
@echo off
set a=0
for /f "delims=" %%i in (a.txt) do set /a a=a+1
echo 文本中共有%a%行!
pause
能不能帮我讲解下call echo %%N%%
是什么原理呢?谢谢!~

TOP

回复 6楼 的帖子

多看几遍5楼的教程就明白了

TOP

刚准备回,   GUN兄就以经说了,  我这就当着顶贴吧汗( ̄口 ̄)!!
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

好  到现在总算知道变量嵌套咋用了
@echo off
set /p=>hlw1.txt<nul

TOP

返回列表