|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
『楼 主』:
[求助]如何提取多个文件中所需的字符串
我用wget下载网页到同一个文件夹下,所以文件名是下面方式排列:
例:
index.asp.0
index.asp.1
index.asp.2
index.asp.3
index.asp.4
index.asp.5
……
index.asp.9999
我想提取所有文件的一段字符串输出并保存在同一个文本中,每行一个,如:
45H356YHH56Y5D9
943NF765HW7JH58
K58DH326FDHB69W
D785S6JHFKSLRIV
关键字符串是”key=45H356YHH56Y5D9“,不含引号
谢谢
|
|
2008-4-13 15:30 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
2 楼』:
请测试:
放在目标文件夹中运行
@echo off
for /f "delims=" %%i in ('findstr "key=" index.asp.*') do echo %%i>>key.txt
|
批处理之家新域名:www.bathome.net |
|
2008-4-13 15:57 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
『第
3 楼』:
谢谢,测试一下,提取如下:
index.asp.0: <td scope="col"><div align="center"><a href="http://pt.vicp.com/?login=change&key=45H356YHH56Y5D9 " target="_blank"><img src="images/h2.png" width="250" height="80" border="0"></a></div></td>
index.asp.1: <td scope="col"><div align="center"><a href="http://pt.vicp.com/?login=change&key=943NF765HW7JH58 " target="_blank"><img src="images/h2.png" width="250" height="80" border="0"></a></div></td>
|
|
2008-4-13 16:05 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
4 楼』:
请贴出个index.asp文件
<td scope="col"><div align="center"><a
href="http://pt.vicp.com/?login=change&key=45H356YHH56Y5D9
" target="_blank"><img src="images/h2.png" width="250" height="80"
border="0"></a></div></td>应该是一行。
[ Last edited by zw19750516 on 2008-4-13 at 04:21 PM ]
|
批处理之家新域名:www.bathome.net |
|
2008-4-13 16:13 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
『第
5 楼』:
<html>
<head>
<title>非常小店临时页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript">
<!--
function Submit_Click()
{
// document.form1.action = "advsetdb.asp";
LoginForm.submit();
return true;
}
function fixPng() {
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5 && version < 7.0) && (document.body.filters)) {
for(var i=0; i<document.images.length; i++) {
var img = document.images[i];
var imgName = img.src.toUpperCase();
if (imgName.indexOf(".PNG") > 0) {
var width = img.width;
var height = img.height;
var sizingMethod = (img.className.toLowerCase().indexOf("scale") >= 0)? "scale" : "image";
img.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src.replace('%23', '%2523').replace("'", "%27") + "', sizingMethod='" + sizingMethod + "')";
img.src = "images/blank.gif";
img.width = width;
img.height = height;
}
}
}
}
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function GetImage(id,path)
{
document.getElementById(id).innerHTML = "<img src='"+path+"' width='271' height='85'>";
this. fixPng();
}
function ChangeImage(id,path)
{
document.getElementById(id).innerHTML = "<img src='"+path+"' width='271' height='85'>";
this. fixPng();
}
//-->
</script>
<link href="images/hk2000.css" rel="stylesheet" type="text/css">
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body onLoad=" this.fixPng()">
<table width="950" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="275" background="images/top.jpg">
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','940','height','270','src','images/hkqq','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','scale','noborder','wmode','transparent','movie','images/hkqq' ); //end AC code
</script>
</td>
</tr>
<tr>
<td height="144" background="images/qqindex_02.jpg">
<table width="790" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th height="210" background="images/zi2.gif" scope="col"> </th>
</tr>
<tr>
<td scope="col"><div align="center"><a href="http://pt.vicp.com/?login=change&key=45H356YHH56Y5D9 " target="_blank"><img src="images/h2.png" width="250" height="80" border="0"></a></div></td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
|
|
2008-4-13 16:19 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
『第
6 楼』:
是的,是一行,那怎么才能光提取那段字串呢?
|
|
2008-4-13 16:23 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
7 楼』:
笨办法:
@echo off
>key.txt type nul
>key1.txt type nul
>key2.txt type nul
for /f "delims=" %%a in ('findstr "key=" index.asp.*') do (
>>key1.txt echo %%a
)
for /f "usebackq tokens=1,6 delims==" %%a in ("key1.txt") do (
>>key2.txt echo %%b
)
for /f "usebackq delims= " %%a in ("key2.txt") do (
>>key.txt echo %%a
)
del /q key1.txt
del /q key2.txt
|
|
2008-4-13 16:33 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
『第
8 楼』:
恩,可以了,谢谢2位的帮忙!另外我想问下,我用wget下载网页,如图
我想问问[13161/13161]是什么意思啊?
|
|
2008-4-13 16:45 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
9 楼』:
终于还是搞出来了:
@echo off
for /f "delims=" %%i in ('findstr "key=" index.asp.*') do (
set str=%%i
setlocal enabledelayedexpansion
set str=!str:^<=!
set str=!str:^>=!
call :lp !!str!!
endlocal
)
pause&goto :eof
:lp
set str=!str:~1!
if not "!str:~,3!"=="key" goto lp
echo !str:~4,15!>>key.txt
goto :eof
|
批处理之家新域名:www.bathome.net |
|
2008-4-13 16:54 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
『第
10 楼』:
我把pause&goto :eof和goto :eof去掉了,为什么还是不能自动退出?
|
|
2008-4-13 17:15 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
11 楼』:
Quote: | Originally posted by yxzpt at 2008-4-13 17:15:
我把pause&goto :eof和goto :eof去掉了,为什么还是不能自动退出? |
|
要自动退出只要去掉第一个pause&,后面的是for循环内部的一次调用的结束命令不能去掉的
[ Last edited by zw19750516 on 2008-4-13 at 05:19 PM ]
|
批处理之家新域名:www.bathome.net |
|
2008-4-13 17:18 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
|
2008-4-13 17:28 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
13 楼』:
有没有grep v2.5.1 for win?
一个命令就可以搞定了:
grep -iohP "(?<=key=)[^\s]*" index.asp.* > Result.txt
|
|
2008-4-13 18:59 |
|
|
yxzpt
初级用户
积分 60
发帖 29
注册 2007-4-28
状态 离线
|
|
2008-4-13 20:58 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
15 楼』:
Quote: | Originally posted by yxzpt at 2008-4-13 08:58 PM:
哪里有这个命令? |
|
google搜索UnxUtils
|
|
2008-4-13 22:51 |
|