尝试使用bat文件打开程序但总是无效

时间:2016-10-22 06:42:38

标签: windows batch-file cmd

我是一个流光,我需要一些程序来流式传输。打开所有这些都很烦人,所以我尝试将它们放在一个批处理文件中。我查看了该过程并按照它进行了操作,但每次运行批处理文件时都会返回无效状态。

这是我的批处理文件的样子:

@echo off
cd C:\Program Files "(x86)\obs-studio\bin\64bit"
start obs64.exe

@echo off
cd "C:\Program Files\HexChat"
start hexchat.exe

@echo off
cd "C:\Program Files (x86)\Nightbot"
start nightbot.exe

exit

Cmd给我一个错误,说它无法找到该文件。当我将它自己放入cmd时,它会打开程序。

还有办法将chrome中的应用程序添加到文件中吗?

1 个答案:

答案 0 :(得分:2)

打开命令提示符窗口并在此窗口start /?内运行,该窗口输出此命令的帮助并解释所有选项。

以下批处理文件很可能有效:

@echo off
start "" "%ProgramFiles(x86)%\obs-studio\bin\64bit\obs64.exe"
start "" "%ProgramFiles%\HexChat\hexchat.exe"
start "" "%ProgramFiles(x86)%\Nightbot\nightbot.exe"

此批处理文件在执行批处理文件时启动3个带有当前目录的应用程序,该文件也是3个已启动应用程序的当前目录。

但如果确实需要以应用程序的目录作为当前目录启动每个应用程序,则应使用以下批处理文件:

@echo off
start "" /D"%ProgramFiles(x86)%\obs-studio\bin\64bit" obs64.exe
start "" /D"%ProgramFiles%\HexChat" hexchat.exe
start "" /D"%ProgramFiles(x86)%\Nightbot" nightbot.exe

使用参数/D和应用程序文件夹的路径,首先设置开始目录,就像使用命令 CD 时一样。因此,例如hexchat.exe以此应用程序的当前目录C:\Program Files\HexChat开始。

命令 START 之后的两个双引号是必需的,因为此命令将第一个双引号字符串解释为进程的标题。通过使用"",显式指定了一个空标题字符串,从而导致命令行的其余部分按预期正确解释。我认为这3个应用程序都是GUI应用程序而不是控制台应用程序,因此在控制台窗口的新命令过程中运行控制台应用程序时,实际的标题字符串并不是必需的。

当使用64位{{1}启动批处理文件时,

%ProgramFiles%引用预定义的环境变量 ProgramFiles ,其中包含64位Windows上64位应用程序的标准程序文件文件夹的路径默认情况下,在64位Windows上由cmd.exe执行Windows计算机上的命令行之前由Windows命令解释程序替换。

C:\Program Files引用预定义的环境变量 ProgramFiles(x86),其中包含64位Windows上32位应用程序的标准程序文件文件夹的路径,并且之前被Windows命令解释程序替换通过%ProgramFiles(x86)%在Windows计算机上执行命令行。

如果永远不会与其他人共享此批处理文件,当然也可以使用计算机中的实际路径而不是环境变量引用。

额外提示:
在命令提示符窗口中运行要与C:\Program Files (x86)一起使用的命令作为参数,以显示此命令的帮助。在命令提示符窗口/?中运行的所有命令和预定义环境变量的其他帮助来源是: