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

[文本处理] [已解决]批处理如何获取文本中每一行的倒数第三列字符串?

[复制链接]
发表于 2013-12-6 15:47:53 | 显示全部楼层 |阅读模式
本帖最后由 fa1120ewja 于 2013-12-9 17:29 编辑

test.txt
d:\FTP站点\app\xxx.txt
d:\data\公司站点\logs\xxx.txt
d:\data\客户站点\admin\xxx.txt
d:\backup\20131206\备份站点\SQL\xxx.txt

以\为分隔符,取每一行倒数第三列的字符串,如上的FTP站点,公司站点,客户站点,备份站点,不甚感激。


谢谢2楼apang同学。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-12-6 16:38:14 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in (test.txt) do (
  3.     for %%b in ("%%~dpa..") do echo,%%~nxb
  4. )
  5. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2013-12-7 19:39:27 | 显示全部楼层
回复 2# apang

能不能说说这个用法的是什么原理
    for %%b in ("%%~dpa..") do echo,%%~nxb)
发表于 2013-12-7 22:15:41 | 显示全部楼层
回复 3# lifei259


    假设 %%a 值为 d:\backup\20131206\备份站点\SQL\xxx.txt
%%~dpa 值为 d:\backup\20131206\备份站点\SQL\
%%~dpa..  表示上一级目录 d:\backup\20131206\备份站点

for %%b in ("d:\backup\20131206\备份站点") do echo,%%~nxb 获取该字串的文件名和扩展名
发表于 2013-12-8 07:35:29 | 显示全部楼层
以\为分隔符,把字符串切割,然后取每一行倒数第三列的字符串,powershell代码


  1. ('d:\data\客户站点\admin\xxx.txt' -split '\\')[-3]
复制代码
测试通过
发表于 2013-12-8 11:55:10 | 显示全部楼层
回复 4# apang


    谢谢了。我就是看不明白【%~dpa..】,现在明白点了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 01:26 , Processed in 0.033764 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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