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

第二次运算错误为什么

  1. @echo &setlocal enabledelayedexpansion
  2. set /p aa=和值
  3. set /p ab=要读取的文本名
  4. echo %date%%time%
  5. setlocal enabledelayedexpansion
  6. echo %date%%time%
  7. for /f "tokens=1-6 delims= " %%i in (!ab!.txt) do (
  8.    set /a s+=1
  9.    set /a m+=%%i
  10.   if /i !m! geq %aa% echo !s! %%i% !m! >>1h.txt
  11.   
  12. )  
  13. for /f "delims=" %%1 in (1h.txt) do (
  14. echo %%1 >>1hh.txt
  15. start 1hh.txt
  16. del 1h.txt
  17.      goto a
  18. )
  19. :a
  20. ::pause&call 逐行相加4.bat&exit
复制代码
为什么第二次三次运行的时候 不能正确 运算
ab.txt
1
2
5
9
8
6
7
9
5

TOP

我猜是没有做变量初始化
把参与计算的变量在代码开头设置成 0 试试看
1

评分人数

TOP

我好菜鸟啊 555

TOP

回复 17# GNU


    if /i !m! geq %aa% echo !s! %%i%     echo %%%j% !m! >>1h.txt
求困惑 %i 和%j中间输出为什么没有空格啊??

TOP

回复 19# ads350668398


把以下信息分别发出来:
最新的完整代码
希望得到的结果
实际得到的结果

TOP

本帖最后由 ads350668398 于 2016-12-2 08:54 编辑

回复 20# GNU


   a. txt原本
1 13  2
2 16  2
3 15  1
4 3  1
5 1  2
6 3  1
7 16  2
8 9  1
输出字符中间为什么没有空格啊?
  1. @echo &setlocal enabledelayedexpansion
  2. for /f "tokens=2-6 delims= " %%i in (a.txt) do (
  3.    set /a s+=1
  4.    set /a m+=%%j
  5.   if /i !m! geq 5 echo !s! %%i%     echo %%%j% !m! >>1h.txt
  6.   
  7. )  
复制代码
输出
3 151 5
4 31 6
5 12 8
6 31 9
7 162 11
8 91 12

【希望结果】
3 15 1 5
4 3 1 6
5 1 2 8
6 3 1 9
7 16 2 11
8 9 1 12

TOP

回复 21# ads350668398

"delims=空格",空格已被过滤掉!
  1. @echo &setlocal enabledelayedexpansion
  2. for /f "tokens=2-6 delims= " %%i in (a.txt) do (
  3.    set /a s+=1
  4.    set /a m+=%%j
  5.   if /i !m! geq 5 echo !s! %%i %     echo %%%j% !m! >>1h.txt
  6. )
  7. pause
复制代码

TOP

回复 21# ads350668398

if /i !m! geq 5 echo !s! %%i%     echo %%%j% !m! >>1h.txt

for循环的控制变量应该是:
%%i
%%j
你的写法是错误的
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2-6 delims= " %%i in (a.txt) do (
  4.     set /a s+=1
  5.     set /a m+=%%j
  6.     if /i !m! geq 5 echo !s! %%i %%j !m!>>1h.txt
  7. )
复制代码

TOP

回复 23# GNU

set kk=
    if /i !m! geq %aa% echo !s! %%i%   %%kk%   %%j% !m! >>1h.txt
这个空给KK 也能想的结果 晕了

TOP

回复 24# ads350668398


    已经说过了,%%i% 这种写法是错误的。至于最终代码怎么写,你高兴就好。

TOP

回复 25# GNU


    恩

TOP

返回列表