2011年02月05日 76条评论

用批处理(bat)同时运行多个程序的方法

因为 Gtalk 加入常用软件行列,所以我每天开机时第一件事就是启动 Gtalk、QQ、旺旺、浏览器(FF/Chrome/Opera),那么每天开机时就要点那么多软件启动,时间长了——烦,于是想用一个方法同时启动这几个程序。

我第一反应就是批处理……很久没玩神马 Dos 命令了,批处理就更久了(只是很多下载来的绿色软件/游戏啥的自动注册双击过),据我的记忆就是把 dos 命令堆积起来就行了。

于是我建立个批处理文件 Gtalk+QQ+WangWang.bat ,内容这样写:(假如我的程序目录都在 D:\Program Files)

@echo off
echo Starting QQ...
D:\Program Files\QQ\qq.exe
echo Starting WangWang...
D:\Program Files\WangWang\WangWang.exe
echo Starting Gtalk...
D:\Program Files\Gtalk\googletalk.exe
exit

双击 Gtalk+QQ+WangWang.bat 的运行结果是只运行了 QQ 就停下来了,囧……突然想到 Dos 是单任务运行方式,你得关掉最新运行的 QQ 才能继续执行下面的命令……超囧~

放狗搜,搜到的结果是说要用 start 命令,于是我改为:

@echo off
 echo Starting QQ...
 start D:\Program Files\QQ\qq.exe
 echo Starting WangWang...
 start D:\Program Files\WangWang\WangWang.exe
 echo Starting Gtalk...
 start D:\Program Files\Gtalk\googletalk.exe
 exit

这样更囧,弹出3个运行窗口,显示的内容是程序所在目录……

再搜,结果都是说用 start 命令,但还是不成功……我郁闷了好一阵,想想是不是路径问题?那我用原始的 dos 命令来实现是否解决?于是又改为:

@echo off
echo Starting QQ...
D:
cd D:\Program Files\QQ
start qq.exe
echo Starting WangWang...
cd D:\Program Files\WangWang
start WangWang.exe
echo Starting Google Talk...
cd D:\Program Files\Gtalk
start googletalk.exe
exit

再双击运行 Gtalk+QQ+WangWang.bat ,哈,成功了……

各位朋友恭喜发财啊!

吐槽:大过年,花钱如流水……兔年努力赚钱!

2011. 2.10 代码进化:由于对 start 命令的不了解(命令行长目录问题),今天 Mice 特意提醒,代码进化为如下

@echo off
echo Starting QQ...
start "" "D:\Program Files\QQ\qq.exe"
echo Starting WangWang...
start "" "D:\Program Files\WangWang\WangWang.exe"
echo Starting Google Talk...
start "" "D:\Program Files\Gtalk\googletalk.exe"
zww
or
oooo

“用批处理(bat)同时运行多个程序的方法”有76条评论

  1. reizhi says:

    以前折腾迅雷的时候用过start
    不过还是会出现个黑框,看着不舒服

    1. zwwooooo says:

      @reizhi
      黑框没关系,反正会自动关闭

  2. Demon says:

    一般我开机不会让聊天类软件随机启动的。

    1. zwwooooo says:

      @Demon
      我也不是要它们随机启动啊

  3. 好多年不用~ 都忘了批处理这些东西了~

    1. zwwooooo says:

      @孤夜狂狼
      的确平时很少用

  4. in1874 says:

    目前电脑里保留的唯一个 批处理文件 就是 一键清理垃圾文件。

    1. zwwooooo says:

      @in1874
      那个啊,貌似以前我用xp时也用过

  5. mice says:

    我是来打酱油的

    1. zwwooooo says:

      @mice
      酱油涨价了

  6. 爱惜 says:

    这个处理要是遇到电脑配置不高的话反应不过来。变得更慢

    1. zwwooooo says:

      @爱惜
      这么慢的机器还是扔了吧,我05年的机器都很快反应。

  7. hooye says:

    8.3命名格式
    start D:\Progra~1\QQ\qq.exe
    这样貌似可以

    1. zwwooooo says:

      @hooye
      其实我知道这个问题导致,只是不喜欢用8.3了,毕竟太老了。

  8. Timothy says:

    其实你可以试试Auto HotKey,这个更牛B
    可以自己写脚本,按键盘快捷键,启动相应的程序。

    1. zwwooooo says:

      @Timothy
      听起来很厉害,不过要写脚本听到就头晕了,昨天折腾新vps头都痛了……

  9. jalena says:

    为什么不用start 1.exe|2.exe

    1. zwwooooo says:

      @jalena
      厄,因为我不知道 start的用法……试试去

    2. jalena says:

      @zwwooooo
      不过这样的前提是文件都要在一个目录哈~~

      你可以写2个批处理,引用另一个里面的就行了..

    3. jalena says:

      @zwwooooo
      或者你把这些执行程序的目录都定一个一个变量,这样直接调用文件名就行了..

    4. zwwooooo says:

      @jalena
      感觉你这样有点绕,干脆就我这样

    5. jalena says:

      @zwwooooo
      添加一句(sc create autorun binpath="path/autorun.bat" start = auto)这个吧.直接创建为服务~

    6. zwwooooo says:

      @jalena
      囧~我只是为了一次性启动多点才玩下,创建服务太那个了,如果要开机启动这几个程序本身也支持,呵呵。

    7. zwwooooo says:

      @jalena
      感觉你对批处理很懂,对其研究过?我早把dos命令忘得差不多了。

  10. Neeke says:

    :oops: 通过win+r一个一个启动

    1. zwwooooo says:

      @Neeke
      你真有耐心

  11. alswl says:

    可以考虑一下一个AHK的启动脚本,可以在一个程序启动完成之后再启用下一个
    http://www.appinn.com/ahk-23-run-later/

    1. zwwooooo says:

      @alswl
      其实不太需要去特意折腾,虽然这个ahk脚本很不错。

  12. Jyu.. says:

    你可以用 start /b 来一个一个的执行啊,这样方便多了。

    1. zwwooooo says:

      @Jyu..
      下次试试

  13. charles says:

    你好,看了你的用批处理启动多个程序很方便,多谢分享!不过现在有个问题请教,是否能让这些启动的程序在启动后直接最小化呢,而不是像现在这样启动后一个个都弹窗,谢谢~! :?:

    1. zwwooooo says:

      @charles
      其实我也不太懂了,很久没折腾这些了,自己搜一下吧。

    2. datafield says:

      @zwwooooo
      参数 /min 可不可以?

    3. zwwooooo says:

      @datafield
      没试过。。。

  14. river ai says:

    感谢这位老铁的教程

发表评论

昵称 *

网址

B em del U Link Code Quote