Windows 7 在windows 7下批量循环遍历文件内容

Windows 7 在windows 7下批量循环遍历文件内容,windows-7,batch-file,Windows 7,Batch File,好的,我相信我不是唯一一个问过这个问题的人,但由于我对批处理文件命令语法的理解有限,我感到不知所措。在写下这个问题之前点击建议的答案,并没有让我到达我想要的地方 以下是我手头的情况: 每天,我都会收到一堆URL来启动,并检查在某段时间内是否有某个字符串显示在这些页面上(一些写得非常糟糕的web应用程序创建了这些页面的内容)。我收到的URL数量每天都有很大的变化。唯一的常量是URL的文件名 因此,我需要缓慢地循环浏览此文件中的URL,例如: (这是我想要做的Linux/Bash表示) 因此,在批处

好的,我相信我不是唯一一个问过这个问题的人,但由于我对批处理文件命令语法的理解有限,我感到不知所措。在写下这个问题之前点击建议的答案,并没有让我到达我想要的地方

以下是我手头的情况:

每天,我都会收到一堆URL来启动,并检查在某段时间内是否有某个字符串显示在这些页面上(一些写得非常糟糕的web应用程序创建了这些页面的内容)。我收到的URL数量每天都有很大的变化。唯一的常量是URL的文件名

因此,我需要缓慢地循环浏览此文件中的URL,例如:

(这是我想要做的Linux/Bash表示)

因此,在批处理下,我将有某种形式的foreach循环,并按如下方式启动我的命令:

C:\Users\MyUSER\AppData\Local\Google\Chrome\Application\Chrome.exe%URL%

但是,在批处理模式下,如何构造for循环并将每一行分配给名为URL的变量呢

是的,我可以在Linux中完成全部工作,不需要任何批处理文件,但这将被分发给一个较低级别的支持人员,他们不了解运行任何Linux桌面,比如GNOME、KDE或其他。因此,它必须是一个批处理文件,并在win7平台上运行


提前感谢

不要为此使用批处理。PowerShell或VBScript等语言更适合此类任务

PowerShell:

$urllist    = "C:\path\to\urllist.txt"
$teststring = "..."

Get-Content $urllist | % {
  $content = (Invoke-WebRequest $_).RawContent
  if ( $content -match $teststring ) {
    Write-Host "$_`tOK" -ForegroundColor green
  } else {
    Write-Host "$_`tNOK" -ForegroundColor red
  }
}
VBScript:

Set fso = CreateObject("Scripting.FileSystemObject")

urllist    = "C:\path\to\urllist.txt"
teststring = "..."

For Each url In Split(fso.OpenTextFile(urllist).ReadAll, vbNewLine)
  Set req = CreateObject("Msxml2.XMLHttp.6.0")
  req.open "GET", url, False
  req.send

  If req.status = 200 Then
    If InStr(req.responseText, teststring) Then
      WScript.Echo url & vbTab & "OK"
    Else
      WScript.Echo url & vbTab & "Not OK"
    End If
  End If
Next

您的答案可能很优雅,但由于我很难理解更简单的批处理命令,当涉及到您的代码片段时,我完全不知道。如果不是,但当他们要求我改变我的代码,我想有一个战斗的机会。因此,我的心几乎定在批上。不过无论如何还是要谢谢你。另外,我从大家那里听说powershell命令会自动包含在win7命令提示符中。如何测试此声明的有效性?@Mel\u Burslan PowerShell包含在Win7中,但您不能直接在
CMD
中运行PowerShell cmdlet。您可以在
CMD
中运行
powershell.exe
,例如
powershell-命令“Write Host'foo'-ForegroundColor red”
powershell-文件C:\path\to\script.ps1
。至于批处理命令的简单性:这是因为它们非常简单,因此尝试使用它们执行高级操作变得非常复杂/笨拙。@Mel_Burslan对于批处理文件,此任务无论如何都需要VB脚本或WGET之类的工具来下载网页,然后搜索网页。添加模糊的时间框架要求会使问题更加复杂,因此执行此任务的批处理脚本可能非常复杂,并且还需要(免费)第三方程序或VBS。
Set fso = CreateObject("Scripting.FileSystemObject")

urllist    = "C:\path\to\urllist.txt"
teststring = "..."

For Each url In Split(fso.OpenTextFile(urllist).ReadAll, vbNewLine)
  Set req = CreateObject("Msxml2.XMLHttp.6.0")
  req.open "GET", url, False
  req.send

  If req.status = 200 Then
    If InStr(req.responseText, teststring) Then
      WScript.Echo url & vbTab & "OK"
    Else
      WScript.Echo url & vbTab & "Not OK"
    End If
  End If
Next