我如何编写一个 Windows 批处理脚本,使我能够使用浏览器(Firefox 或 Chrome)从包含所有 URI 的 txt 文件中打开 URL?
重点是:我希望脚本仅在我关闭了上一个 URL 的选项卡后才打开下一个 URL。
我有大约 600 多个 URI 需要通过肉眼筛查,我想简化这个过程。
答案1
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
}
答案2
如果您想手动关闭窗口,并且您使用的浏览器允许 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>
答案3
这不是我想要的脚本,但它可以完成工作(在 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。
如果有人想改进,欢迎你:)
答案4
设置/aa=0
转到:1
:1
设置/aa=%a%+1
对于/f“tokens =%a%delims =%1”%% G在('type YourTextFile.txt')中执行(
开始 %%G
)
转到:1