找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25011|回复: 9

[文本处理] BAT批处理怎样取第三列的值合并到一行?

[复制链接]
发表于 2014-5-6 11:08:16 | 显示全部楼层 |阅读模式
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') 的结果
 楼主| 发表于 2014-5-6 14:05:26 | 显示全部楼层
有人会吗
求赐教
发表于 2014-5-6 15:38:20 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2014-5-6 15:48:00 | 显示全部楼层
大神果然犀利
 楼主| 发表于 2014-5-6 15:53:49 | 显示全部楼层
回复 3# CrLf


    &setlocal enabledelayedexpansion
这个是什么意思
发表于 2014-5-6 15:58:51 | 显示全部楼层
回复 5# qzq181490950


    变量延迟,namejm大神的for教学帖子里面有
 楼主| 发表于 2014-5-6 16:02:41 | 显示全部楼层
回复 6# hu_contact


    加下QQ探讨下吧 181490950
 楼主| 发表于 2014-5-6 16:03:32 | 显示全部楼层
回复 3# CrLf


    加下QQ多多赐教下 181490950
 楼主| 发表于 2014-5-6 16:04:59 | 显示全部楼层
回复 3# CrLf


    !str:~1! 是什么意思
发表于 2014-5-6 16:41:08 | 显示全部楼层
回复 9# qzq181490950


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

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

    %PATH:~-10%

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

    %PATH:~0,-2%

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

在开启变量延迟后,! 的作用约等于 %,二者具体有什么区别请看[教程汇总]批处理中的变量延迟扩展、变量嵌套
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 05:30 , Processed in 0.031778 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表