Board logo

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

作者: fa1120ewja    时间: 2013-12-6 15:47     标题: [已解决]批处理如何获取文本中每一行的倒数第三列字符串?

本帖最后由 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同学。
作者: apang    时间: 2013-12-6 16:38

  1. @echo off
  2. for /f "delims=" %%a in (test.txt) do (
  3.     for %%b in ("%%~dpa..") do echo,%%~nxb
  4. )
  5. pause
复制代码

作者: lifei259    时间: 2013-12-7 19:39

回复 2# apang

能不能说说这个用法的是什么原理
    for %%b in ("%%~dpa..") do echo,%%~nxb)
作者: apang    时间: 2013-12-7 22:15

回复 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 获取该字串的文件名和扩展名
作者: PowerShell    时间: 2013-12-8 07:35

以\为分隔符,把字符串切割,然后取每一行倒数第三列的字符串,powershell代码
  1. ('d:\data\客户站点\admin\xxx.txt' -split '\\')[-3]
复制代码
测试通过
作者: lifei259    时间: 2013-12-8 11:55

回复 4# apang


    谢谢了。我就是看不明白【%~dpa..】,现在明白点了。




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