[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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同学。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 4# apang


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

TOP

以\为分隔符,把字符串切割,然后取每一行倒数第三列的字符串,powershell代码
  1. ('d:\data\客户站点\admin\xxx.txt' -split '\\')[-3]
复制代码
测试通过
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 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 获取该字串的文件名和扩展名

TOP

回复 2# apang

能不能说说这个用法的是什么原理
    for %%b in ("%%~dpa..") do echo,%%~nxb)

TOP

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

评分人数

TOP

返回列表