Board logo

标题: [文本处理] BAT批处理怎样取第三列的值合并到一行? [打印本页]

作者: qzq181490950    时间: 2014-5-6 11:08     标题: BAT批处理怎样取第三列的值合并到一行?

42323   kdsf           42fgg34            423dfdfg423     dfddsf
4d2323   kfdsf           42gdf            423dfdfg423      dfddf
423df23   kfdnsf           4dffgg            423dfdfg423     dfdf
4232d3   kvdsf           4dfggdf4            423dfdfg423     dfdaf
42323   kbdsf           4gfdfdg4            423dfdfg423     dfdsf
.......

数据如上面,怎么通过批处理,取出第三列的值,形成 ('42fgg34','42gdf','4dffgg','4dfggdf4','4gfdfdg4') 的结果
作者: qzq181490950    时间: 2014-5-6 14:05

有人会吗
求赐教
作者: CrLf    时间: 2014-5-6 15:38

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=3" %%a in (a.txt) do set str=!str!,'%%a'
  3. if defined str echo (!str:~1!)>b.txt
复制代码

作者: qzq181490950    时间: 2014-5-6 15:48

大神果然犀利
作者: qzq181490950    时间: 2014-5-6 15:53

回复 3# CrLf


    &setlocal enabledelayedexpansion
这个是什么意思
作者: hu_contact    时间: 2014-5-6 15:58

回复 5# qzq181490950


    变量延迟,namejm大神的for教学帖子里面有
作者: qzq181490950    时间: 2014-5-6 16:02

回复 6# hu_contact


    加下QQ探讨下吧 181490950
作者: qzq181490950    时间: 2014-5-6 16:03

回复 3# CrLf


    加下QQ多多赐教下 181490950
作者: qzq181490950    时间: 2014-5-6 16:04

回复 3# CrLf


    !str:~1! 是什么意思
作者: CrLf    时间: 2014-5-6 16:41

回复 9# qzq181490950


    引用 set /? 中的解释:
    %PATH:~10,5%

会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏
移量 10)字符开始的五个字符。如果没有指定长度,则采用默认
值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。

    %PATH:~-10%

会提取 PATH 变量的最后十个字符。

    %PATH:~0,-2%

会提取 PATH 变量的所有字符,除了最后两个。

在开启变量延迟后,! 的作用约等于 %,二者具体有什么区别请看[教程汇总]批处理中的变量延迟扩展、变量嵌套




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