2016-04-27 20 views
2

私は2つのプログラムを実行するための非常に単純なバットファイルを作成しようとしています。より具体的には、ハートストーンとデッキトラッカー。シンプルなバットファイル、Windowsは 'nameofthefile'を見つけることができません

これが私のバットです:

@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ファイルを見つけることができない何らかの理由で、問題なく起動している間。 パスを直接貼り付けてコピーすると、正しいものでファイルが存在します。

また、私はPython 3.5で単純なコードをwrotteしていて、両方のプログラムが問題なくオープンしていることにも注意してください。

だから...何が起こっているのですか?

+0

実行可能ファイル名にスペースが含まれているため、 'start" Hearthstone Beta Launcher.exe "という二重引用符が必要だと思います。 – AKS

+0

@AKS:そうですが、余分な引数も必要です。それ以外の場合は、それをウィンドウタイトルとして解釈します。 –

答えて

3

はこれを試してみてください:

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が名前にスペースを含むプログラムを実行できるようにするには、引用符(および追加の引数)が必要です。

+0

私は完全に同意します:) – AKS

+0

"D:"が現在のドライブでない場合、 '/ d 'を除いた' cd'は隠し環境変数 '= D:'を設定します。この環境変数は、相対パスを完成させるために使用されます。したがって、 '/ d'を使用せずに' start D:HearthstoneDeckTracker.exe'を使うことができます。 – eryksun

+0

@eryksun:誤解を招くかもしれませんが、 'start D:HearthstoneDeckTracker.exe'が(実際の)現在のディレクトリを望むように設定するとは思わないでしょう。私はこれらのアプリケーションで現在のディレクトリがプログラムディレクトリに設定されている必要があると仮定しています;そうでなければ 'cd'を使う必要はありません。) –

関連する問題