次のcmdスクリプトの違いは何ですか?


10

私はバッチファイルを介していくつかのプログラムを起動しようとしましたが、問題が発生しましたが、それは過去のことです。

私は比較的スクリプトやコマンドラインに慣れていません。これが私の質問です。 次のcmdスクリプトの違いは何ですか?

これは受け入れられます

Start Chrome

(ディレクトリがchrome.exeがまだ起動している場所ではないにもかかわらず、ここではインストールされているプログラムの中にはタイトルで認識されるものがあると思いますが、レジストリキーはこの役割を果たしますか?)

これもうまくいく

cd "FOO_DIR"
start FOO.exe

しかし、これらは違います

start "FOO_DIR\FOO.exe"

(FOO.exeを起動せずに新しいウィンドウを開きます)

start /B "FOO_DIR\FOO.exe"

(再び著作権テキストを書き、他には何もしません)

(OS Windows 7 x 64)

回答:


17
Start Chrome

Chromeの実行ファイルは、 PATH 環境変数 start その変数内のすべてのフォルダでプログラムを探します。環境変数 PATHEXT 検索するファイル拡張子のリストが含まれています。 .exe デフォルトで含まれているので、書く必要はありません。 chrome.exe


start "FOO_DIR\FOO.exe"

これはうまくいきません。 start 引用符で囲まれている場合は、ウィンドウのタイトルとして最初の引数を使用します。それでこれはで新しいCMDを開くでしょう "FOO_DIR\FOO.exe" そのタイトルとして。

これを回避するには、コマンドの前に空のtitle引数を追加するだけです。

start "" "FOO_DIR\FOO.exe"

さらに、AFAIR、コマンドラインスイッチで実行ファイルを起動するときのタイトルは必須です。
abstrask

1
というわけではありません start 最初の引数としてタイトルを期待します(そうでなければ start chrome 動作しません)、それはそれです もし その最初の引数は引用符で囲まれています、それはそれがタイトルであることを期待しています。
jamesdlin

@ jamesdlinああ、これに関するドキュメントは少しあいまいです、ありがとう。私はそれに応じて答えを編集しました
crater2150

5

追加してみてください "title" または少なくとも "" 後に start このような:

start "title" "FOO_DIR\FOO.exe"

または

start "title" /B  "FOO_DIR\FOO.exe"

この問題の根本的な原因は、引用符の中の最初の引数が ""として解釈されることです。 title newのパラメータ cmd 窓。

また、コマンドリファレンスを見るのに役立ちます (リンク)


おかげで、違いが明らかになりました。そして最初のものでは、「ファイルの名前をコマンドとして入力するだけで、ファイルの関連付けを介して実行不能ファイルを呼び出すことができる」と思います。名前だけで十分なのはそのためです。
Mr. Smith

あなたの最初の例について話しているなら start chrome chrome.exeを探すと、実行可能ファイルへのフルパスを含むエントリが見つかるはずです。これは、chromeを呼び出すことでうまくいくと信じています。HKEY_LOCAL_MACHINE\ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Appパス
Art Gertner
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.