Board logo

标题: [网络连接] 批处理打开不带http的网址为何出错? [打印本页]

作者: wh1234567    时间: 2012-5-22 15:16     标题: 批处理打开不带http的网址为何出错?

看到版主Hello123World回复的代码感觉不错,可遗憾的是只支持带有http://的多个网址,
能不能修改成同时支持带有http://和不带有http://的网址?例如:
http://www.bathome.net/
http://www.2345.com
www.baidu.com

@echo off&Setlocal EnableDelayedExpansion
For /f "delims=" %%i in (1.txt) do (
        Start "" "%%i"
        Set /a n+=1
        Set /a a=!n!%%10
        If !a!==0 pause
        )
pause

上面这个批处理如果网址前缀无http://的话就会提示无法打开
Windows 找不到文件 '这里是网址'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。
好像只支持带有http://的多个网址,希望高手修改成同时支持带有http://和不带有http://的网址
作者: gawk    时间: 2012-5-22 15:42

  1. start "" "c:\Program Files\Internet Explorer\iexplore.exe" "www.bathome.net"
复制代码

作者: apang    时间: 2012-5-22 16:14

  1. @echo off&Setlocal EnableDelayedExpansion
  2. For /f "delims=" %%i in (1.txt) do (
  3.         set "aa=%%i"
  4.         if /i not "!aa:~,7!"=="http://" set "aa=http://!aa!"
  5.         Start "" "!aa!"
  6.         Set /a n+=1
  7.         Set /a a=!n!%%10
  8.         If !a!==0 pause
  9.         )
  10. pause
复制代码
试试
作者: wh1234567    时间: 2012-5-22 17:28

本帖最后由 wh1234567 于 2012-5-22 18:26 编辑

回复 3# apang


    嗯,可以执行,我加了个拖拽到界面的功能,但不能执行,不知道如何加个支持路径和文件名中英文和空格的拖拽到界面的功能
set /p ravel=      请输入要执行的TXT文本文件名或直接拖入文件,然后按回车键:
set "ravel=%ravel:"=%"
For /f "delims=" %%i in ('type "%ravel%"') do (......
....

Windows 找不到文件 '!aa!'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。
作者: apang    时间: 2012-5-22 18:45

回复 4# wh1234567

你是不是把变量延迟给关了?
  1. @echo off&Setlocal EnableDelayedExpansion
  2. set/p ravel=输入要执行的TXT文件路径及文件名或直接拖入文件,然后回车:
  3. set "ravel=!ravel:"=!"
  4. For /f "usebackq delims=" %%i in ("!ravel!") do (
  5.         set "aa=%%i"
  6.         if /i not "!aa:~,7!"=="http://" set "aa=http://!aa!"
  7.         Start "" "!aa!"
  8.         Set /a n+=1
  9.         Set /a a=!n!%%10
  10.         If !a!==0 pause
  11. )
复制代码

作者: wh1234567    时间: 2012-5-22 19:24

(ping 127.0.0.1 /n 3)>nul
能不能加这个代码?
作者: apang    时间: 2012-5-22 19:46

能,想如何加?
原代码是同时打开10个暂停一次。
作者: wh1234567    时间: 2012-5-22 20:10

本帖最后由 wh1234567 于 2012-5-22 20:13 编辑

回复 7# apang

我怕偶尔打不开网址或在其它电脑上无法使用,所以在For /f "usebackq delims=" %%i in ("!ravel!") 的上面加    (ping 127.0.0.1 /n 3)>nul
不知道有没有必要?
但是提示
'ping' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
(ping 127.0.0.1 /n 3)>nul
这个不知道为什么提示不对?

主命令正常
作者: apang    时间: 2012-5-22 20:51

回复 8# wh1234567

貌似。。。没必要加延时
ping的问题,在另一帖子已有回复。。。
作者: wh1234567    时间: 2012-5-22 22:16

本帖最后由 wh1234567 于 2012-5-22 23:51 编辑

为什么偶尔打不开多个网址,只停留在一个网页上,偶尔如果先手动打开ie后,再运行批处理才能够顺利打开多个网址,不知道是为什么?如何解决
作者: apang    时间: 2012-5-23 07:25

本帖最后由 apang 于 2012-5-23 14:00 编辑

回复 10# wh1234567

哦,这样试试看:
  1. @echo off&Setlocal EnableDelayedExpansion
  2. set/p ravel=输入要执行的TXT文件路径及文件名或直接拖入文件,然后回车:
  3. set "ravel=!ravel:"=!"
  4. For /f "usebackq delims=" %%i in ("!ravel!") do (
  5.         set "aa=%%i"
  6.         if /i not "!aa:~,7!"=="http://" set "aa=http://!aa!"
  7.         Start "" "%ProgramFiles%\Internet Explorer\iexplore.exe" "!aa!"
  8.         Set /a n+=1
  9.         Set /a a=!n!%%10
  10.         If !a!==0 pause
  11. )
复制代码

作者: wh1234567    时间: 2012-5-23 12:16     标题: 回复 11# apang

本帖最后由 wh1234567 于 2012-5-23 12:18 编辑

效果依旧,偶尔打不开多个网址,只停留在一个网页上,如果先手动打开ie后,再运行批处理才能够顺利打开多个网址
作者: apang    时间: 2012-5-23 14:09

回复 12# wh1234567

11楼,你再试一遍吧。
作者: wh1234567    时间: 2012-5-23 15:24

回复 11# apang


    嗯,可以打开,速度也很快,遗憾的是 不是在同窗口里分别多个新选项卡打开,不知道能不能实现在同窗口里分别多个新选项卡打开
作者: garyng    时间: 2012-5-28 13:01

试试看这个
  1. rundll32.exe url.dll,FileProtocolHandler "www.google.com"
复制代码
可以不带 http://
这个也可以直接开启文件/文件夹
作者: gawk    时间: 2012-5-28 13:20

回复 14# wh1234567


    哪个版本的IE?
作者: 喃喃努努    时间: 2012-5-28 14:01

学习一下,又知道了一项功能。
作者: wh1234567    时间: 2012-5-30 15:59

本帖最后由 wh1234567 于 2012-5-30 16:04 编辑

回复 16# gawk

ie7,新选项卡打开这个是我早就将ie设置过的,不知道如果浏览器没设置新选项卡打开功能的话,批处理能不能判断并实现自动多个新选项卡分别打开文本里的网址?判断如果已经设置了新选项卡打开功能的话就直接同窗口新选项卡逐一打开




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2