是否可以通过批处理文件从列出600多个URI的文本文件中打开网站URL?


1

我如何编写Windows批处理脚本,该脚本可以允许我使用包含所有URI的txt文件使用浏览器(Firefox或Chrome)打开URL?

关键是:我希望脚本仅在关闭上一个URL的选项卡后才打开下一个URL。

我有大约600多个URI要逐个筛选,我想简化这一过程。


1
除非可以完全关闭浏览器,否则无法执行此操作。您还能告诉我们您到目前为止尝试了什么吗?这不是“请给我写脚本”这样的网站。但是,我们很乐意为您提供脚本帮助,并告诉您为什么它不起作用。
LPChip 2015年

我同意这一点,我什至无法关闭标签页。在过去的几个月中,我已经多次执行此任务,但是我的文件越来越大,所以我写了一些sh脚本来自动打开URL。但是由于性能原因,我不得不将输入的txt文件切成多个(最多20个URI)。Firefox无法冻结而无法同时打开更多内容。这就是为什么我一直在寻找更优雅的解决方案,而且我还必须在Win Ps上执行此操作:我已经使用StackOverflow多年了,如果我的问题听起来很新手,对不起。我正在寻找可以解决问题的一些想法或函数名称:)
corentino 2015年

您可以等到Firefox关闭后再使用下一个URL重新运行它。这样,您只需按Alt + F4(或等效键)即可转到下一个站点。
科斯

Answers:


2

PowerShell中的相同解决方案:

$urllist = Get-Content C:\temp\listeurl.txt
foreach($url in $urllist)
{
    $proc = start-process "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -argumentlist $url -PassThru
    start-sleep -seconds 10
    stop-process $proc -force -erroraction silentlycontinue
}

1

如果要手动关闭窗口,并且使用允许从JavaScript弹出窗口的浏览器,则可以使用JavaScript解决方案。

受同域安全策略限制,这需要一个难看的计时器来查看子窗口是否同时关闭。

还要注意,打开第一个窗口会很好,因为(最终)是通过单击“开始”按钮触发的。但是,由JavaScript打开的后续窗口应由健全的浏览器阻止,因此请查找该“弹出窗口已阻止”警告。Chrome和Firefox都可以。他们将首先阻止第二个URL,这也会使脚本失败。只需接受弹出窗口,然后刷新JavaScript页面即可:

<!DOCTYPE html>
<html>
<head>
  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>
  <textarea id="urls"></textarea>
  <button id="start">Start</button>
</body>
<script>
function openUrl(urls){
  if(urls.length > 0){
    var url = urls.shift().trim();
    if(!url){
      openUrl(urls);
      return;
    }
    var w = window.open(url);
    var timer = setInterval(function(){   
      if(w.closed){  
        clearInterval(timer);  
        openUrl(urls);
      }
    }, 500);
  }
  else{
    alert("That's all");
  }
}

$("#start").on("click", function(){
  openUrl($("#urls").val().split("\n"));
});
</script>
</html>

实时示例:http//jsbin.com/loweyocofu/1/


1

这不是我想要的脚本,但是可以完成工作(在Linux上,在Python中):

import subprocess as sp
import webbrowser
import time

f = open('listeurl.txt','r')
urls = f.readlines()
for url in urls:
    child = sp.Popen(["firefox", url ])
    time.sleep(10)  
    child.kill()

它创建一个Firefox窗口,打开从txt接收的URL,并等待10秒钟,然后关闭自身并打开下一个URL。

我不知道为什么,它总是使第一个URL在选项卡中打开。

如果有人想改进,欢迎您:)


-1

设置/ aa = 0

转到:1

:1

设置/ aa =%a%+ 1

为/ f“ tokens =%a%delims =%1”('键入YourTextFile.txt')中的%% G做(

开始%% G

转到:1


请仔细阅读问题。您的答案没有回答原始问题。“重点是:我希望脚本仅在关闭上一个URL的选项卡后才打开下一个URL。”
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.