Board logo

标题: [文件操作] 批处理统计文件个数为什么计算出错? [打印本页]

作者: FU8989    时间: 2010-4-23 02:38     标题: 批处理统计文件个数为什么计算出错?

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s /a-d "D:\2AAAAA\*.txt"') do (
  3.     set /a "n=0,mn+=1"
  4.     for /f "usebackq delims=" %%i in ("%%a") do (
  5.         for %%j in (%%i) do (
  6.         if 1%%j leq 19999 if 1%%j geq 10000  set/a "n+=1,m+=1"
  7.        )
  8.     )
  9.     echo %%a    !n! 个
  10. )
  11. echo;                                        共计 !m! 个
  12. for /l %%i in (1 1 %mn%) do echo;!_%%i!
  13. pause
复制代码
以上代码对附件进行计算时出错 为什么? 诚请各位指正 谢谢
作者: sgaizxt001    时间: 2010-4-23 02:40

1%%j是什么意思?
把你这一句换成这句就可以计算正确了
if not "%%j" == "" set /a n+=1,m+=1

[ 本帖最后由 sgaizxt001 于 2010-4-23 02:50 编辑 ]
作者: FU8989    时间: 2010-4-23 02:48     标题: 回复 2楼 的帖子

别人写的 我也不明白 求助各位
作者: FU8989    时间: 2010-4-23 07:58     标题: 回复 2楼 的帖子

师傅 非常感谢你 很好用
作者: x9tiancmd    时间: 2010-4-23 13:50

原帖由 FU8989 于 2010-4-23 07:58 发表
if 1%%j leq 19999 if 1%%j geq 10000  set/a "n+=1,m+=1"



         你这要写这记算文本中包含多少独立的行为"9999" 呀  ,难道是记算这个.( ̄▽ ̄@)
作者: GNU    时间: 2010-4-23 14:02     标题: 回复 2楼 的帖子

1%%j是为了防止%%j以0开头时比较出错
作者: FU8989    时间: 2010-4-23 14:31     标题: 回复 6楼 的帖子

谢谢..............................................
作者: sgaizxt001    时间: 2010-4-23 20:09     标题: 回复 6楼 的帖子

不会被理解成1模J吗?这是什么原理呢
作者: hanyeguxing    时间: 2010-4-23 20:26

原帖由 sgaizxt001 于 2010-4-23 20:09 发表
不会被理解成1模J吗?这是什么原理呢
取模只是set/a中。。。。。。
作者: GNU    时间: 2010-4-23 21:01     标题: 回复 8楼 的帖子

正如9楼所说,只有算术运算的时候才有取模。
作者: FU8989    时间: 2010-4-24 01:43

谢谢.....................................




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2