Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单Bat文件,Windows无法找到';文件名';_Windows_Batch File - Fatal编程技术网

简单Bat文件,Windows无法找到';文件名';

简单Bat文件,Windows无法找到';文件名';,windows,batch-file,Windows,Batch File,所以我试图创建一个非常简单的bat文件来运行2个程序。更具体地说,炉石和甲板跟踪器 这是我的球棒: @echo off cd "D:\Games\Hearthstone.Deck.Tracker-v0.12.3\Hearthstone Deck Tracker" start HearthstoneDeckTracker.exe cd "D:\Program Files (x86)\Hearthstone" start Hearthstone Beta Launcher.exe exit

所以我试图创建一个非常简单的bat文件来运行2个程序。更具体地说,炉石和甲板跟踪器

这是我的球棒:

@echo off 
cd "D:\Games\Hearthstone.Deck.Tracker-v0.12.3\Hearthstone Deck Tracker" 
start HearthstoneDeckTracker.exe

cd "D:\Program Files (x86)\Hearthstone" 
start Hearthstone Beta Launcher.exe

exit
虽然炉石启动时没有问题,但由于某些原因,它找不到甲板跟踪器exe。 我直接复制粘贴了路径,它是正确的,并且文件存在

还请注意,我在Python3.5中编写了一个简单的代码,两个程序都可以毫无问题地打开

所以。。。发生了什么事?

试试这个:

cd /d "D:\Games\Hearthstone.Deck.Tracker-v0.12.3\Hearthstone Deck Tracker" 
start HearthstoneDeckTracker.exe

cd /d "D:\Program Files (x86)\Hearthstone" 
start "Hearthstone Beta Launcher" "Hearthstone Beta Launcher.exe"

/d
选项允许
cd
更改驱动器和目录。引号(和额外的参数)是允许
start
运行名称中带有空格的程序所必需的。

我认为您需要双引号:
start“Hearthstone Beta Launcher.exe”
,因为可执行文件名中有空格。@AKS:yep,但您还需要一个额外的参数,我完全同意:)如果“D:”不是当前驱动器,没有
/D的
cd
只设置隐藏的环境变量
=D:
。此环境变量用于完成相对路径。因此,无需使用
/d
就可以使用
启动d:HearthstoneDeckTracker.exe
。要列出包括隐藏变量在内的所有环境变量,请输入
set“
@eryksun:I可能是错误的,但我认为
start D:HearthstoneDeckTracker.exe
不会根据需要设置(实际)当前目录。(我假设这些应用程序需要将当前目录设置为程序目录;否则,根本不需要使用
cd
)如果未指定
/d
选项,则初始工作目录将从cmd.exe继承。但为什么程序需要将工作目录设置为应用程序目录?这是多余的(即)如果一个程序需要将工作目录设置为它将要写入输出文件的目录,它不应该是它自己的目录,因为通常标准用户不能修改该目录。我最初的评论只是一个有趣的事实,关于每个驱动器当前目录的隐藏变量。我添加了编辑了关于
D:HearthstoneDeckTracker.exe的部分,作为如何使用它的示例。