中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何提取多个文件中所需的字符串
« [1] [2] »
作者:
标题: [求助]如何提取多个文件中所需的字符串 上一主题 | 下一主题
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
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
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
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
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">&nbsp;</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
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
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
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yxzpt
初级用户





积分 60
发帖 29
注册 2007-4-28
状态 离线
『第 12 楼』:  

明白了,再次感谢!!

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
状态 离线
『第 14 楼』:  

哪里有这个命令?

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
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: