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

[文本处理] [已解决]批处理怎么过滤指定字符和重复项以及怎么替换

8-16 22:00更新
问题一其实是http://www.bathome.net/thread-5553-1-1.html的延续,我按超级版主的代码镶嵌到我自己的代码中去,结果为空,请帮忙看看那里除了问题:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b *.css') do (
  3.         echo.
  4.         echo.
  5.         echo.
  6.         echo %%i
  7.         echo ----------------------------------------------------------------------------
  8.     for /f "delims=" %%m in ('findstr "url" %%i') do (
  9.         for /f "delims=() tokens=2" %%j in ("%%m") do (
  10.                 @echo off&setlocal enabledelayedexpansion
  11.                 for /f "skip=2 delims=" %%a in (%%j) do (
  12.                         set "str=%%a"
  13.                         if "!str:~,2!" neq ".." (
  14.                         if not defined _%%a echo %%a&set "_%%a=a"
  15.                         )
  16.                 )
  17.         pause>nul
  18.         )
  19.     )
  20. )
  21. pause
复制代码


=====================================================================
问题一
怎样过滤掉蓝色部分和重复项目?
我用findstr [^..]
过滤../images/stit.jpg无效。
-----------------------------------------------------------------------------------------------------
"all.css"
"head.css"
star.gif
star.gif
mall_bg.gif
mall_bg.gif
mall_bg.gif
mall_bg.gif
mimid.gif
m-s-p.jpg
mall_bg.gif
../images/stit.jpg
mh2-bg.jpg
modulem.gif
mall_bg.gif
mall_bg.gif
fs.gif
../images/sid.gif
background.png
dot6.gif
mall_bg.gif
fs.gif
modulem.gif
dot6.gif
i-c.jpg
hot.jpg
../images/s-h5.jpg
../images/list-tit-bg.jpg
../images/list-tit-bg.jpg
mm.jpg
mm.jpg
mm.jpg
mm.jpg
mall_bg.gif
ehx_mid.gif
---------------------------------------------------------------------------------------------------------



我用 set str=%str*=% 无法删掉红色部分代码,应该怎么删?
------------------------------------------------------------------------------------------------------
.mh4 table img{width:218px;height:84px;background:url(mh4-link.jpg) no-repeat}
------------------------------------------------------------------------------------------------------

[ 本帖最后由 linjuming 于 2009-8-20 17:46 编辑 ]
1

评分人数

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

回复 1楼 的帖子

第一个问题:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=2 delims=" %%a in (a.txt) do (
  3.     set "str=%%a"
  4.     if "!str:~,2!" neq ".." (
  5.        if not defined _%%a echo %%a&set "_%%a=a"
  6.     )
  7. )
  8. pause>nul
复制代码
第二个问题:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=.mh4 table img{width:218px;height:84px;background:url(mh4-link.jpg) no-repeat}"
  3. echo !str:*)=!
  4. pause>nul
复制代码
***共同提高***

TOP

回复 2楼 的帖子

第二个问题人家要删除红色部分。
(*^_^*)

TOP

回复 3楼 的帖子

汗水....如此再替换一次就是的:
  1. @echo off
  2. set "str=.mh4 table img{width:218px;height:84px;background:url(mh4-link.jpg) no-repeat}"
  3. set "a=%str:*)=%"
  4. call,echo %%str:%a%=%%
  5. pause>nul
复制代码
***共同提高***

TOP

findstr不是那么用的,好吧?
  1. findstr /v "^\.\." a.txt
复制代码
  1. findstr /v "^[.][.]" a.txt
复制代码
开头那两行为什么也要过滤?要遵循什么规则?老实交待!
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

开头两行不是图片啊,问题更新了,帮我看看怎么解决

TOP

findstr /v中的 /v是什么意思,我在api那里看不到有 /v 选项

TOP

问一下
batman的第一个代码是怎么样去除重复部分代码的...没看懂
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

回复 7楼 的帖子

/V         Prints only lines that do not contain a match.

你是采用何种方法查看API的呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8楼 的帖子

if not defined 这句,没有定义_%%a的话就定义其为a,下次如果再遇到就变成已经定义了,那么if not defined后面的部分就不会执行了。
1

评分人数

Still with wax

TOP

看到了,有/v ,我看的是 ”批处理阶段教程奥运版【英雄出品】“
原来不全的,系统自带的有/v选项

TOP

不过奥运教程的进阶部分很有看头呢。。。
第三方命令行工具编程
Http://Hi.Baidu.Com/Console_App

TOP

返回列表