バッチファイル:コンソールウィンドウを開いたままにする方法


105

私は2つのバッチファイルを持っています、それらの1つは別のものを実行します、すなわち

  1. 「マイバッチファイル」> 2.「その他のバッチファイル」

最初のバッチファイルのショートカットを作成し、そのプロパティを編集して次のように呼び出します。

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

私は何をしたい 私は、コンソールウィンドウは、バッチファイルの実行後に開くようにしたいことは以上です。今すぐ閉じて、cmdフラグをいじってみましたが、結果はありません。

プラットフォーム:Windows7


アップデート1

構造を変更しました。このような単純な例も機能しません。バッチファイルは1つしかありません。つまり、「2。その他のバッチファイル」はありません。唯一のバッチファイルには、このようなsmthが含まれています。

start /B /LOW /WAIT make package
cmd /K

アップデート2

エクスプローラから呼び出される同じショートカットは、コンソールウィンドウを閉じません。 ただし、タスクバーの固定されたアイテムからショートカットが呼び出されると、コンソールウィンドウが閉じます。

コンソールウィンドウを開いたままにする方法はありますか?


私はあなたがMy Batch File周りに固執したいと思いますか?
Marc B

「バッチファイルのコンソールウィンドウを開いたままにしておく」という質問と回答がここでより明確にされます
。superuser.com/ questions / 175515 /…

回答:


126

バッチファイルが実際にそれを実行している場合は、を削除しcmd /Kて追加しPAUSEます。

start /B /LOW /WAIT make package
PAUSE

次に、ショートカットを"My Batch File.bat"...で実行する必要はありませんCMD /K

更新

ああ、いくつかの新しい情報...タスクバーの固定されたショートカットからそれを実行しようとしています。

私はこれを見つけました、Vista / XP Quick LaunchのようなWindows 7タスクバーにバッチファイルを追加します。関連する部分を以下に示します。

  1. まず、CMD.EXEスタートボタンを押してタスクバーのショートカットを固定し、検索ボックスに「cmd」と入力して、結果を右クリックし、[タスクバーに固定]を選択します。
  2. タスクバーのショートカットを右クリックします。
  3. コマンドプロンプト」と「このプログラムをタスクバーから固定解除する」を含むリストが表示されます。
  4. のアイコンを右クリックして、CMD.EXEを選択しますProperties
  5. ターゲットのためのボックスで、の最後に移動"%SystemRoot%\system32\cmd.exe"し、タイプ" /C "やバッチファイルのパスと名前。

目的に応じて、次のいずれかを行うことができます。

  1. を使用/CしてPAUSE、バッチファイルの最後にを置きます。

    または

  2. を使用するようにコマンドラインを変更し、バッチファイルから/Kを削除しPAUSEます。

私はすでにそれをやった、基本的に私の質問はanohterバッチファイルを呼び出す方法ではない...
deimus

次に、両方のバッチファイルの内容を確認する必要があります。
失神

更新された質問を参照してください
deimus

同じ問題、CMD / Kの置き換えが機能しません。エクスプローラーからショートカットが呼び出された場合、コンソールウィンドウが閉じないのはなぜですか?
deimus

13

ここで:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

何をしているのか見てみましょう:

  1. (cmd / K)新しい cmdインスタンスを開始ます。
  2. (&一時停止)CURRENT cmdインスタンスを一時停止ます。

それを解決するには?正しい構文を使用して、新しいCMDインスタンスの引数を囲みます。

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"

6

Pauseとして最後の行を書いたところ、.batと.cmdの両方で問題なく動作しました。「続行するには任意のキーを押してください」というメッセージも表示されます。


これが正解です。最高位の投票になるはずです。
Patrick Hillert、2016

5

開いたままにしたいバッチファイルの最後の行に、

pause >nul


それはそれが早く閉まるように聞こえます、多分スクリプトのエラーです。cmdプロンプトを開いてそこから実行すると、エラーがないかどうかを確認できます。
バリC

3

コンソールウィンドウを開いたままにするには、バッチファイルの最後のコマンドラインに追加するだけです。

' & pause'

2

バッチファイルの最後の行にpauseコマンドを入力するだけです。

@echo off
echo Hey, I'm just doing some work for you.
pause

出力として次のようなものを提供します:

ねえ、私はあなたのためにいくつかの仕事をしています。

何かキーを押すと続行します ...

注: @echoを使用すると、出力が印刷される前にコマンドが出力されなくなります。



-1

最後に置くと、コンソールが再び開きます

start cmd 

これは問題を解決しません。ユーザーは古いウィンドウを再度開くのではなく、ウィンドウを開いたままにしたいと考えています。
アダム

-5

Enterキーを押してPauseと入力するだけで正常に動作します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.