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

[文本处理] [已解决]批处理for命令tokens能提取倒数第一段吗?

[复制链接]
发表于 2011-7-22 21:29:50 | 显示全部楼层 |阅读模式
本帖最后由 asd821089612 于 2011-7-23 13:34 编辑

学习了for 命令,想问一个问题
如果指定delims=\ 想要截取每行的最后一节吗,该怎么写命令?
发表于 2011-7-22 21:32:39 | 显示全部楼层
本帖最后由 CrLf 于 2011-7-22 21:52 编辑

楼主举的这个例子真是太...巧了
以 \ 为分隔符取末尾字符时,可以利用 %%~nxa:
  1. @echo off
  2. set "str=123\abc\QWER\!@#$\test   "
  3. for /f "delims=" %%a in ("%str%") do echo %%~nxa
  4. pause
复制代码
不过尾部的空格会被去掉,解决方法是让它变得更像文件名...
  1. @echo off
  2. set "str=123\abc\QWER\!@#$\test   "
  3. for /f "delims=" %%a in ("%str%.$") do echo @%%~na@
复制代码

评分

参与人数 1技术 +1 收起 理由
tmplinshi + 1 “%str%.$”。上次我忽略了末尾空格会被去掉 ...

查看全部评分

发表于 2011-7-22 21:40:39 | 显示全部楼层
 楼主| 发表于 2011-7-22 21:58:25 | 显示全部楼层
楼主举的这个例子真是太...巧了
以 \ 为分隔符取末尾字符时,可以利用 %%~nxa,不过尾部的空格会被去掉

还是不太懂,这个%%~nxa是什么东西,没见过
我原来有一个txt文件,里面装了一大堆文件的完整目录,想提出文件名,所以才这么问

那以后如果分隔符不是\ 那又该怎么办
 楼主| 发表于 2011-7-22 22:01:56 | 显示全部楼层
3楼发的网站也看过了,其中是一种方法是将分隔符全部改为\  然后再用  %%~nxa  有什么别的办法不用这么麻烦?
发表于 2011-7-22 22:07:17 | 显示全部楼层
4# asd821089612


请在顶楼给出部分数据以便测试
发表于 2011-7-22 23:13:25 | 显示全部楼层
还是不太懂,这个%%~nxa是什么东西,没见过
我原来有一个txt文件,里面装了一大堆文件的完整目录,想提出文件名,所以才这么问

那以后如果分隔符不是\ 那又该怎么办
asd821089612 发表于 2011-7-22 21:58


%%~nxa就是你想要的文件名啊。FOR中会自动识别文件名格式的多学习FOR命令哦 不过教学中是以%%I为例,他们是以%%a为例区别在这呵
%%~nxI和%%~nxa是不是很像啊
 楼主| 发表于 2011-7-23 08:18:24 | 显示全部楼层
本帖最后由 asd821089612 于 2011-7-23 08:24 编辑

懂了,又增长了一点知识
那如果分隔符不是\ 除了我五楼提出的方法,还有什么方法呢
比如一个文本文件
  1. aaa'ddd'ttt'ggg
  2. eeew'fff
复制代码
要怎么提取ggg和fff呢
发表于 2011-7-23 13:12:09 | 显示全部楼层
本帖最后由 mxxcgzxxx 于 2011-7-23 13:13 编辑

8# asd821089612


由于FOR/F对读取的列要手工设定,对于未知列数是无法自动读取到的,
还有一个方法就是双FOR套
第一个FOR 读行
第二个FOR分列读这行取值,保留最后一个值就行了
 楼主| 发表于 2011-7-23 13:33:58 | 显示全部楼层
嗯,这样确实是可以的,解决了,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 18:20 , Processed in 0.020901 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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