Board logo

标题: [求助]如何提取文本的某些特定字符作为变量?[以解决] [打印本页]

作者: pkone     时间: 2006-11-27 04:46    标题: [求助]如何提取文本的某些特定字符作为变量?[以解决]

文本1.txt如下:
# - Lean window skinner
plugins\bbLeanSkin\bbLeanSkin.dll
! plugins\SystemBarEx\SystemBarEx.dll
! plugins\bbIconBox\bbIconBox.dll
plugins\bbinterface\BBInterface.dll
! plugins\bbicons21a\BBicons.dll
! plugins\bbsysmonplus011b\BBSysmonPlus.dll
! plugins\bbmemshrink\bbMemShrink.dll
! plugins\BroamTimer\BroamTimer.dll
! plugins\bbLeanBar\bbLeanBar.dll
plugins\bbKeys\bbKeys.dll
! plugins\bbmemo\BBMemo.dll
! plugins\bbstyle\BBStyle.dll
! plugins\bbmemlimiter\bbMemLimiter.dll
! plugins\bbpager\BBPager.dll
plugins\bbmemlimiter\bbMemLimiter-5000K.dll
! plugins\bbmagnify\bbmagnify.dll
! plugins\bbrss10b1\bbrss.dll

我的要求是只提取上面没有“!”开头的plugins\*\(并且不要后面的*.dll)做为变量来新建一些目录,如上面 的第2行没有“!”,那么就在plugins目录下建立一个名为bbLeanSkin的子目录,其他类似,有“!”和“#”开头的都不管了

呵呵,本人是菜菜,有路过的DX麻烦指导一下,先谢谢了!

[ Last edited by pkone on 2006-11-27 at 09:42 PM ]
作者: redtek     时间: 2006-11-27 05:43

@echo off
for /f "tokens=1,2 delims=\" %%a in ('findstr /v "! #" 1.txt') do md "%%a\%%b" 2>nul>nul

作者: namejm     时间: 2006-11-27 05:49
Re pkone:

  观察你的文本内容,不是以p开头的路径不是你需要的,换而言之,你只需要以p开头的路径,则可以换一种思路来求解:
@echo off
:: 请把这段代码放在plugins下运行
setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
    set var=%%i
    if /i "!var:~0,1!"=="p" md "%%~pi"
)
  发完之后才发现redtek已经帖了一个更简洁的代码出来,赞一个先。

[ Last edited by namejm on 2006-11-26 at 04:58 PM ]
作者: ccwan     时间: 2006-11-27 05:53
赞!偶看很乱的,眼疼。
作者: 9527     时间: 2006-11-27 08:33
for /f "eol=! delims=" %a in (1.txt) do for /f "eol=# delims=\ tokens=1,2" %x in ('echo/%a') do md "%x\%y"


只求一题多解....
作者: lxmxn     时间: 2006-11-27 09:13

  兄的代码非常巧妙啊~加分~

作者: redtek     时间: 2006-11-27 10:20
太巧妙啦~~~~欣赏~~~
作者: pkone     时间: 2006-11-27 10:26
谢谢各位的回复,哈哈,偶新来滴,这里的高手都很热心啊,温暖!
作者: 3742668     时间: 2006-11-27 12:48

@echo off
    for /f %%i in (1.txt) do md %%i && rd %%i
exit /b 0

作者: 无奈何     时间: 2006-11-27 13:04
3742668 兄的代码太巧妙了,赞一个!
受此启发,我也来一个。
for /f %%i in (1.txt) do @md %%~dpi 2>nul

作者: lxmxn     时间: 2006-11-27 13:32

  两位版主的代码都非常巧妙啊~赞一个先~

  不过 无奈何 版主的代码中,%%~dpi 应该加上双引号比较妥当,刚才测试了。

                       p.s.由于今天评分达到了30分,系统不让我给 无奈何 兄加分,所以改天在来补上  :)

作者: ccwan     时间: 2006-11-27 21:49
系统不让我给 无奈何 兄加分,回头补上。
作者: redtek     时间: 2006-11-27 21:54
我的分儿也加光了,哈哈……
这回大开眼界啦~~~:)
作者: 9527     时间: 2006-11-28 00:05
我给你们一人都加了三分,不过到无奈何那里我没有分了,失败,第一次给别人评分,LZ的我也给评上了,第一次用,没用好
作者: namejm     时间: 2006-11-28 02:36
  呵呵,3742668 兄的思路很独特,灌水~~~
作者: baikaifang     时间: 2007-6-2 21:48
各位大侠们呀,为什么都不写命令的注释啊,让我们这些菜鸟看了一头雾水呀,里面用到的一些怪子符,网上也找不到用法啊.结果看了等于没看.不知道每条命令具体的含义,遇到别的问题的时候就不能举一反三.唉
作者: alex0007     时间: 2007-6-7 02:16
pkone版主..(deepin中的)..想不到google一下:bbMemLimiter...居然把我带到了这个dos宝地...有空多来转一下...我相信我有黑白字符的情结..