Board logo

标题: [文件操作] 批处理for命令tokens如何获取指定列? [打印本页]

作者: FIR1987    时间: 2011-4-25 00:26     标题: 批处理for命令tokens如何获取指定列?

文本内容如下

F:\分析表.log:星期四 14 十月 2010 16:16:16        4        00000199        Timing, TOTAL TIME (CREATE CUBE),10:17:45

希望变成如下文本

F:\分析表.log:星期四 14 十月 2010 16:16:16        TOTAL TIME (CREATE CUBE),10:17:45
  1. for /f "tokens=1-4,8,*" %%i in ('type c:\bat.txt') do echo %%i %%j %%k %%l >>c:\bat3.txt
复制代码
取不到第8列以后
  1. for /f "tokens=1-2,8,*" %%i in ('type c:\bat.txt') do echo %%i %%j %%k %%l >>c:\bat3.txt
复制代码
可以取到第8列以后

但是我希望要1到4列 以及8列以后 请问到底是什么问题
作者: TX_kakashi    时间: 2011-4-25 00:50

数错了吧?
  1. @echo off&setlocal
  2. for /f "tokens=1-5,9*" %%i in (11.txt) do echo %%i %%j %%k %%l %%m %%n %%o
  3. pause
复制代码

作者: hanyeguxing    时间: 2011-4-25 01:03

  1. for /f "tokens=1-4,8,*" %%i in ('type c:\bat.txt') do echo %%i %%j %%k %%l >>c:\bat3.txt
复制代码
你写的代码中,ijkl分别对应1-4,那么m对应8,n对应*
所以后面加一个 %%n就可以
作者: batman    时间: 2011-4-25 01:04

楼主是要取1-5列和8列后面的内容吧
  1. @echo off
  2. for /f "tokens=1-5,8*" %%a in (c:\bat.txt) do echo %%a %%b %%c %%d %%e %%g
  3. pause>nul
复制代码

作者: applba    时间: 2011-4-25 11:48

一直不太清楚tokens里面的*到底有什么具体作用,总算明白了
作者: hanyeguxing    时间: 2011-4-25 12:25

本帖最后由 hanyeguxing 于 2011-4-25 12:50 编辑

tokens=中一共允许32个令牌,即1-31,再加一个*(无论是否使用*,*的令牌都被占用)




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