Board logo

标题: 截取文本字符 [打印本页]

作者: wyd531     时间: 2007-1-13 00:34    标题: 截取文本字符

1.txt
Microsoft\Updates\Windows Media Player\KB832353
Microsoft\Updates\Windows Media Services\KB822343
Microsoft\Updates\Windows Media Services\KB832359
怎样截取KB832353这段字符,
作者: ccwan     时间: 2007-1-13 00:48

@echo off
for /f "tokens=4 delims=\" %%i in ('sort/r 1.txt') do set a=%%i
echo %a%
pause>nul

作者: lxmxn     时间: 2007-1-13 00:57

@echo off
for /f "delims=" %%a in (1.txt) do (
        Setlocal EnableDelayedExpansion
        set a=%%a
        set a=!a: =!
        echo !a:~-8!
        Endlocal
)
pause

作者: namejm     时间: 2007-1-13 22:47
  利用 for 扩展,来个更简洁的代码:
@echo off
for /f "delims=" %%i in (1.txt) do echo "%%~nxi"
pause

作者: ccwan     时间: 2007-1-13 23:13
斑竹的思路很好啊,要想只显示KB832353还要改动一下。
作者: vkill     时间: 2007-1-14 03:04
%%~nxi 这个很好的
作者: lxmxn     时间: 2007-1-14 05:58

  namejm 这个用的妙~

作者: applecy     时间: 2007-1-14 08:30
4楼的方法好``不过要是我要提取的是中间的部分呢?
"Microsoft\Updates\Windows Media Player\KB832353" 中的
"Windows Media Player"呢?
作者: namejm     时间: 2007-1-14 08:52
  这个问题以前已经有过讨论,提取任意层次的字符串都不是什么难题,请看这个帖子的14楼:[请教]如何获取绝对路径中文件名的最后一部分?[已解决]
作者: applecy     时间: 2007-1-15 09:14
呵呵`谢谢了`还在消化中.

想提个小建议,不知道能否开个收藏功能呢`?毕竟有很多新手不能一时完全掌握,而想查的时候又很难找到指定的帖子,有收藏功能之后一切就更简便了
作者: zjindong     时间: 2007-2-3 14:55
有收藏啊.网页最下面就有了
作者: amao     时间: 2007-2-3 16:05
@sed "s/ *$//;s/.*\\\(.*\)/\1/" 1.txt
作者: amao     时间: 2007-2-3 16:10


  Quote:
Originally posted by applecy at 2007-1-14 08:30:
4楼的方法好``不过要是我要提取的是中间的部分呢?
"Microsoft\Updates\Windows Media Player\KB832353" 中的
"Windows Media Player"呢?

@sed "s/.*\\.*\\\(.*\)\\.*/\1/" 1.txt
作者: anqing     时间: 2007-2-4 00:03
又学习了tokens的用法
作者: minmin888     时间: 2007-5-8 13:50
一问多解,学到东西!
作者: lxmxn     时间: 2007-5-8 14:20    标题: 用gawk也可以


gawk -F"\\" "{print $NF}" 1.txt