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
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