标题: 怎么自动关闭命令行窗口
[打印本页]
作者: cr2516
时间: 2006-7-20 13:25
标题: 怎么自动关闭命令行窗口
脚本运行完毕后 怎么可以让命令行窗口自动关闭
作者: flying008
时间: 2006-7-20 13:30
呵呵……在批处理文件 的最后一句写上EXIT就行了,
echo off
start d:\123\456.exe 如果运行WINDOWS程序的话,用START命令来启动就不等了
exit 批处理脚本运行完毕后命令行窗口自动关闭
作者: cr2516
时间: 2006-7-20 13:35
不行呀 我一运行脚本 程序和命令行窗口就都弹出来了
作者: cr2516
时间: 2006-7-20 13:38
我的意思是手动运行脚本 显示程序 但是不形式命令行窗口 我试了 加exit不起作用
作者: namejm
时间: 2006-7-20 13:49
“但是不形式命令行窗口”这句话如何理解?如果自己都描述不清楚,如何让别人解答?
作者: cr2516
时间: 2006-7-20 13:55
一个运行播放器的脚本 点击之后 播放器运行同时显示命令行窗口 可以运行程序的同时不显示命令行窗口吗?
作者: fastslz
时间: 2006-7-20 14:26
把脚本贴出来呀
作者: cr2516
时间: 2006-7-20 14:34
1.bat
d:
cd D:\Program Files\Ringz Studio\Storm Codec
mplayerc.exe -play -add D:\TDdownload\1.asf
每次双击运行1.bat就播放器和命令行窗口都弹出来了
作者: cr2516
时间: 2006-7-20 14:35
我的系统是XP的
作者: namejm
时间: 2006-7-20 14:52
原来是暴风影音啊,本人机子上没装,也不想装,听说插件N多。
这是因为调用了暴风影音来打开一个影音文件,导致要关闭暴风影音之后,CMD窗口才会退出。如果不用自动打开某个影音文件的话,把mplayerc.exe -play -add D:\TDdownload\1.asf改成 start mplayerc.exe ,则启动暴风影音后CMD窗口能退出,然后手动打开指定影音文件。
作者: cr2516
时间: 2006-7-20 15:15
高人呀 我在mplayerc.exe -play -add D:\TDdownload\1.asf 前面加上start 就可以了 谢谢了 我想知道为什么加上start 再点击运行的时候就不会显示命令行窗口了
作者: namejm
时间: 2006-7-20 15:31
这个具体是什么原因,我也说不清楚,按照我的习惯,如果调用的是外部程序,不想等待外部程序退出就执行下一步操作的话,就在前边加 start。
期待高人作理论上的深入剖析。呵呵。
作者: cr2516
时间: 2006-7-20 16:53
hehe 还是一样十分感谢
作者: zh159
时间: 2006-7-20 17:18
start:
启动另一个窗口运行指定的程序或命令。
当前窗口的批处理继续运行,不必等待另一个窗口运行完毕
作者: Scott0902
时间: 2006-7-20 18:53
如果是调用暴风影音打开视频的话,用不着用批处理啊,创建一个快捷方式不就省事了?这个快捷方式只需一条命令:"D:\Program Files\Ringz Studio\Storm Codec\mplayerc.exe" -play -add D:\TDdownload\1.asf
作者: flying008
时间: 2006-7-21 09:06
偶想用批处理调用一个程序adobe reader 7.0,这是看PDF文档的软件,相信很多人用到,路径是"D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe",现在想用批处理文件启动这个程序后,批处理窗口自动关闭,而 adobe reader 7.0还在运行。偶只能做到批处理启动这个程序,但窗口不能自动 关闭,只要程序还在运行,命令行窗口就还存在,哪位可以实现启动这个程序后自动关闭命令行窗口这样的功能?
注意:要试验后才能发言哟……谢谢……
作者: namejm
时间: 2006-7-21 10:27
楼上的,把你的代码贴出来看看再说。
作者: flying008
时间: 2006-7-21 10:37
=======
@echo off
"D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"
exit
=======
还只有这样才能在批处理中启动程序,其它如START或不要引号等方式都不行。请namejm指教……谢谢……
作者: flying008
时间: 2006-7-21 10:38
声明……由于某种原因,最好不用cd /d 或pushd popd这切换当前目录的方式的,
作者: zh159
时间: 2006-7-21 11:30
先设置可执行文件的搜索路径再 start。
%ProgramFiles%=系统盘的 Program Files 目录
Quote: |
@echo off
path=%path%;%ProgramFiles%\Adobe\Acrobat 6.0\Reader\
start AcroRd32.exe
exit |
|
[
Last edited by zxcv on 2006-7-21 at 13:11 ]
作者: flying008
时间: 2006-7-21 12:57
20楼的解法甚是OK,呵呵……
顺便弱弱的问一句,这个PATH设置的路径只对一行start语句有效吧?因为偶在start AcroRd32.exe的下面加了一句 start ABC.exe[这个ABC是批处理的当前目录下的程序],同样也运行起来了……就是说PATH设置的路径不会影响从第一个START开始的第二行和以下的语句吧?
thanks
[
Last edited by flying008 on 2006-7-21 at 13:01 ]
作者: zh159
时间: 2006-7-21 13:11
不会
path只是指明可以到该路径内搜索要执行的文件
更改一下不影响系统默认的设置路径
path=%path%;%ProgramFiles%\Adobe\Acrobat 6.0\Reader\
否则系统原来默认的设置路径里的软件有可能无法执行
[
Last edited by zxcv on 2006-7-21 at 13:14 ]
作者: namejm
时间: 2006-7-21 13:33
path=%path%;%ProgramFiles%\Adobe\Acrobat 6.0\Reader\一句中,用%path%保留了原来默认的搜索路径,所以对直接运行ABC.exe没什么影响,如果去掉%path%,嘿嘿,那你就老老实实地把ABC.exe的绝对路径给添上吧。
除了用设置搜索路径的办法外,还可以直接用start命令来运行,不过要稍作改动,因为AcroRd32.exe的路径中带了空格符号:
start "AcroRd32.exe程序的标题" “AcroRd32.exe的路径”
[
Last edited by namejm on 2006-7-21 at 13:34 ]
作者: flying008
时间: 2006-7-21 13:57
你好……namejm
可是这个程序AcroRd32.exe用下面的语句
@echo
start "D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"
exit
就是不能启动,偶用START加引号试了N次了,
作者: namejm
时间: 2006-7-21 14:05
要用start
"AcroRd32.exe的标题" "D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe",你写对了吗?
作者: zh159
时间: 2006-7-21 14:10
按照 namejm 的思路试了试:
Quote: |
@echo off
start "" "%ProgramFiles%\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"
exit |
|
也可以,其中第一个 "" 为 start 标题引号,可以不用写内容
作者: fastslz
时间: 2006-7-21 14:16
对已安装的软件可以忽略路径
@echo off
start AcroRd32
exit
就行了
作者: flying008
时间: 2006-7-21 15:30
Quote: |
Originally posted by namejm at 2006-7-21 14:05:
要用start "AcroRd32.exe的标题" "D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe",你写对了吗? |
|
为什么一定要]"AcroRd32.exe的标题"???偶就是没有写这个,
作者: namejm
时间: 2006-7-21 15:33
“对已安装的软件可以忽略路径”?fastslz你不是在开玩笑吧?反正我把bat文件放在桌面上然后start安装在其他分区的某个程序,从来就没有成功过。
Re zxcv:
呵呵,想不到 start "" "程序路径" 这样的格式也可以,多谢提醒,又长了点知识:)
作者: zh159
时间: 2006-7-21 15:46
Quote: |
Originally posted by fastslz at 2006-7-21 14:16:
对已安装的软件可以忽略路径
@echo off
start AcroRd32
exit
就行了 |
|
KAO,还真是
不过只能是一部分正确安装并在注册表注册了的才行,我试了正常安装的、AutoCAD可以
Quote: |
Originally posted by namejm at 2006-7-21 15:33:
Re zxcv:
呵呵,想不到 start "" "程序路径" 这样的格式也可以,多谢提醒,又长了点知识:) |
|
其实也是定义了标题的,只不过标题为空而已
[
Last edited by zxcv on 2006-7-21 at 15:48 ]
作者: fastslz
时间: 2006-7-21 16:11
Quote: |
Originally posted by zxcv at 2006-7-21 15:46:
不过只能是一部分正确安装并在注册表注册了的才行,我试了正常安装的、AutoCAD可以
|
|
是的绝大部分已安装的软件都能start,特别国外或是大性软件公司的。简单列出几个常用的
start realplay
start ACDSee7
start mplayerc
start winrar
start kav
start QuickTimePlayer
start nero
start uedit32
start Office系列....
start Microsoft所有组件....
聊天工具就QQ不行
[
Last edited by fastslz on 2006-7-21 at 16:12 ]
作者: zh159
时间: 2006-7-21 16:30
关键就是:要用正常的安装方式安装后再在注册表注册了的
作者: yanzhong
时间: 2006-9-4 06:52
exit?
作者: xuantian
时间: 2006-9-4 07:30
用快捷方式呀^.^
作者: HUNRYBECKY
时间: 2006-12-29 10:05
Quote: |
Originally posted by namejm at 2006-7-21 15:33:
“对已安装的软件可以忽略路径”?fastslz你不是在开玩笑吧?反正我把bat文件放在桌面上然后start安装在其他分区的某个程序,从来就没有成功迠... |
|
namejm斑竹,其实start 的确可以忽略很多路径,而且还可以启动某个目录,如
start system32那么就会直接打开WINDOWS的system32目录。
关于START忽略路径的可以在注册表中设置,注册表中可以忽略路径的命令全部储存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths下面,你甚至可以直接使用BAT添加需要可以忽略路径的程序。如下面我添加一个可以启动ACCESS 2000 RUNTIME的MSACCESS.EXE程序,为了不与原来的MSACESS.EXE程序冲突,我改为可以在命令中输入START ACCESS2K.EXE来启动应用程序
ECHO HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ACCESS2K.EXE] >TMP.REG
ECHO @="D:\\Access2KRT\\Office\\MSACCESS.EXE">>TMP.REG
ECHO "Path"="D:\\Access2KRT\\Office\\">>TMP.REG
ECHO "useURL"="1>>TMP.REG
REGEDIT /S TMP.REG
DEL TMP.REG /Q/F
作者: scriptor
时间: 2006-12-29 11:59
@echo off
cd "要运行的程序的路径"
start /min 名称
exit
比如:
路径为 d:\program files\
名称为 wmplayer.exe
记得加双引号
[
Last edited by scriptor on 2006-12-28 at 11:21 PM ]
作者: hxuan999
时间: 2006-12-29 12:31
用%PATH%来找文件的确是不错的。呵,还可以这样用执行文件的查找路径.
@echo off
SET PH=%ProgramFiles%\Adobe\Acrobat 7.0\Reader\
FOR %%I IN (AcroRd32.exe) DO start "" "%%~$PH:I"
exit
在PH中可以像PATH一样用;分隔多个路径.
作者: hxuan999
时间: 2006-12-29 12:37
另外想到有两个题没人回答那我答一下吧,呵.
1,是为什么用START就可以自动的关闭CMD窗口.
2,是为什么一定要用start "
AcroRd32.exe的标题" "D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"才能执行.
第一个是因为,如果是内部的CMD命令,或是批文件的化默认是以
CMD /K来运行的,/K也是就是运行程序并保持窗口.
第二个是因为,加了引号的路径被认成了是标题的字符串了,所以不就是没有路径了,也就出错了.要是你写成了,
start "D:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" AA
那就会提示你文件AA找不到呀.
[
Last edited by hxuan999 on 2006-12-29 at 07:53 PM ]
作者: hxuan999
时间: 2006-12-31 07:25
再加一贴,
[求助奇怪问题]START调用内部命令时如何实现延迟
作者: szww
时间: 2007-3-23 05:51
联盟中联盟的人太多!不是我笨!
作者: SunRiseBoy
时间: 2007-6-29 02:43
start经典问题,都遇到过。