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

[文件操作] 批处理set变量取得for变量并补位为什么要在%%a后补0?

想做batman的题目,但是遇到了如题所诉困难,请指点一下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2 delims= " %%a in (b.txt) do (
  4.                               set var=%%a000
  5.                               set var=!var:~0,7!
  6.                               echo %%a %%b !var!
  7.                  )
  8. pause
复制代码
因为无法补位,大小判断就失去了意义,杯具
看了2楼的帖子,在%%a变量后补了000,目的就达到了,为什么要补0?

[ 本帖最后由 sgaizxt001 于 2010-1-24 18:21 编辑 ]

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=-  tokens=1,2,3" %%i in (a.txt) do (
  4.                            for /f "tokens=1,2 delims= " %%a in (b.txt) do (
  5.                               set var=%%a000
  6.                               set var=!var:~0,7!
  7.                               if !var! lss %%i   if !var! gtr %%j  if %%b neq %%k echo %%a %%b >>c.txt                                                                                 )
  8.                                                  )
复制代码
虽然没得出正确结果,但我的解题就是这样

[ 本帖最后由 sgaizxt001 于 2010-1-24 18:53 编辑 ]

TOP

还是无法得出正确结果,少了淦田,并且记录好像比你的多,我再修改看看
查看c.txt后,分析结果得出:
1。大小比较输出结果循环了4次,多了3个结果
2。b.txt里的记录淦田在a.txt里没有,所以for循环没有比较这个记录,所以就没有输出。
但是为什么呢?对于我这个新学bat的来说,实在是无法解决,请指教一下啊

[ 本帖最后由 sgaizxt001 于 2010-1-24 19:10 编辑 ]

TOP

返回列表