[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 8# ads350668398
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo %date%%time%
  4. for /f "tokens=1-2" %%i in (mss.txt) do (
  5.     set /a m+=%%i
  6.     echo !m!
  7. )
  8. pause
复制代码

TOP

setlocal enabledelayedexpansion 启用变量延迟扩展之后,for循环内部的变量应该使用 !m! 而不是 %m%

TOP

回复 11# ads350668398


符合条件之后就跳出for循环
  1. for /f "tokens=1-6" %%i in (!ab!.txt) do (
  2.     set /a s+=1
  3.     set /a m+=%%i
  4.     if /i !m! geq %aa% (
  5.         echo !s! %%i !m!
  6.         goto :next
  7.     )
  8. )
  9. :next
  10. pause
复制代码
1

评分人数

TOP

回复 12# ads350668398


set ii=!i! 这种写法可能无法实现你希望的目的
%%i 在1到5行代码之间有效
for循环结束之后的第六行%%i没有值,用!i!也没有值。

TOP

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

评分人数

TOP

回复 19# ads350668398


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

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

回复 24# ads350668398


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

TOP

返回列表