日期:2014-05-17  浏览次数:20725 次

如何用DOS的 for 命令去实现这样的功能?
如何用DOS的 for 命令结合findstr命令,去查找某目录下所有.txt文件中的所有以 “http://”并以“.html”结尾的字符串,并输出新的txt文件?

------解决方案--------------------
比如要处理的文件夹是C盘的test,处理结果输出到result.txt

VBScript code

@echo off>result.txt
for /r C:\test %%a in (*.txt) do (findstr /i "\<http://.*\html\>" "%%a">>result.txt)
pause

------解决方案--------------------
探讨
非常感谢楼主朋友的帮助.
我还有一个问题,以上输出的是整行的内容,
如果我只想在屏幕上显示的是字符串,而不是整行,
如何操作呢?

举例,返回的是这样的字符串: http://www.abc123.com/goods/a01.html

------解决方案--------------------
探讨
就是如你所说的一样,在txt文件中,网址就是在一行的中间位置的.
回显的内容就是连网址左右两边的其它内容也显示出来了.

我只想提取网址的内容,也就是:仅在屏幕显示 http://.....html的字串。
如何做得到呢?

还有,额外再问一个问题,用批处理可以定位某个字串的位置吗?类似 indexOf 之类?
谢谢。

------解决方案--------------------
引用还有,额外再问一个问题,用批处理可以定位某个字串的位置吗?类似 indexOf 之类?

------解决方案--------------------
这样的你换成

BatchFile code

findstr /i "^http://.*\html$" test.txt

------解决方案--------------------
探讨
引用:
findstr /i "^http://.*\html$" test.txt

没有起作用,屏幕上空白的,没有任何效果呀。

------解决方案--------------------
BatchFile code
grep -o "http:.*\.html" a.txt

------解决方案--------------------
探讨
grep在哪可以提供下载?