在批处理文件中从不同位置依次运行两个可执行文件,文件名中使用空格,并将命令传递给另一个

在批处理文件中从不同位置依次运行两个可执行文件,文件名中使用空格,并将命令传递给另一个
@echo off
cd "C:\Program Files (x86)\World of Warcraft\"
start "World of Warcraft Launcher" "World of Warcraft Launcher.exe"
cd "C:\Program Files\obs-studio\bin\64bit\" 
start obs64.exe --startstreaming --minimize-to-tray
exit

这不起作用,但我已经查看了这里关于在批处理脚本中运行文件的 10 多个线程,我实际上在某一时刻让它工作了,然后删除了错误的文件。

我可以(现在我忘了我已经尝试了所有我能找到的变体)运行 WoW,但当 obs 运行时,我收到有关缺少库文件或其他内容的错误。不记得我是如何做到的,但就像我说的,我最终让它工作了,现在我又把它弄丢了……大多数这样的问题只涉及目录树中的空格,而不是文件名,而那些能工作的要么不起作用(例如启动“”“程序名称.exe”)等。

提前致谢。

答案1

对不起朋友们,我刚刚忘记了这一切,因为我停止了

现在尝试一下: 在此处输入图片描述

答案2

你可以试试 pushd

@echo off

cd /d "C:\Program Files (x86)\World of Warcraft\"
start "World of Warcraft Launcher" /b "World of Warcraft Launcher.exe"

pushd "C:\Program Files\obs-studio\bin\64bit\" 
start "" /b obs64.exe --startstreaming --minimize-to-tray
exit

答案3

cd "C:\Program Files (x86)\World of Warcraft\"除非您已经在 c: 上,否则实际上并不会切换到该目录。

因为“cd”切换给定驱动器上的当前目录,但不会切换驱动器(在 Windows/MSDOS 中每个驱动器都有自己的“当前目录”)。

你必须做类似的事情:

cd "C:\Program Files (x86)\World of Warcraft\"
c:
start "World of Warcraft Launcher" "World of Warcraft Launcher.exe"

(注意带有“c:”的行)

当然也可能是其他原因(如果您已经在 c: 上)。发布您收到的错误消息。

另外,批处理文件调试的第一条规则是手动逐个运行各个步骤。如果它们不能按这种方式工作,那么它们在批处理文件中肯定也不会工作。

相关内容