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

[文件操作] 批处理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列以后 请问到底是什么问题

数错了吧?
  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
复制代码
天道酬勤

TOP

  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就可以
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

楼主是要取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
复制代码
***共同提高***

TOP

一直不太清楚tokens里面的*到底有什么具体作用,总算明白了

TOP

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

tokens=中一共允许32个令牌,即1-31,再加一个*(无论是否使用*,*的令牌都被占用)
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表