BATファイルの実行後、CMDを開いたままにします


169

私はこのようなbatファイルを持っています:

ipconfig

これにより、IP情報が画面に出力されますが、ユーザーがその情報を読み取る前に、CMDは閉じます。

CMDはスクリプトが終了したと想定しているため、終了します。

スクリプトが終了した後、CMDを開いたままにするにはどうすればよいですか?



4
@RobKieltyそれは大丈夫同じ質問です-しかし、ここに新しい答えがあります(これはより良い私見です)
alfasin


@alfasinそれはラトガー・ナイルンシングの答えと同じではありませんか?
Rob Kielty 2013

それは使用しないよういや@RobKielty、私の答えは同じではありませんpause素敵な回避策です(と私はこの答えをupvoted理由です)ではなく、実際にユーザーがヒットした後ので、問題を解決して1 EnterSpaceのウィンドウが閉じますが。 ..
アルファシン2013

回答:


163

このコマンドを実行しているかに応じて、置くことができ/kた後、cmd開いているウィンドウを維持します。

cmd /k my_script.bat

cmd /kバッチファイルの最後に追加するだけでも機能します。これについて以下のコメントに投稿したLuigi D'Amicoの功績です。


14
すべてのスクリプトをbatファイルに入れた後、次のように入力します-> cmd / k
Luigi D'Amico

3
プログラムに構文エラーが含まれている場合、ダブルクリックして実行するとウィンドウが閉じcmd /k、最後に表示されることに注意してください。
Tobias Feil

これは、ユーザーがファイルをダブルクリックした場合に終了するcmdウィンドウについては説明していません。
K-SOの毒性が高まっています。

238

pause.BATファイルの最後に置きます。


7
CMDコマンドではなく、起動時にbatファイルを実行しているため、これはまさに私が探していたものです。+1
Hawkeye

3
実行後もbatファイルを操作したい場合は、一時停止をcmd / kに置き換えます。その後、スクリプトが実行された後も、同じコンテキストで手動コマンドを実行できます
Luigi D'Amico

これがこの質問に対する「解決策」のコメントではなかったことに私は我慢できません
newhouse

57

@pause最後に追加するだけです。

例:

@echo off
ipconfig
@pause

または、以下も使用できます。

cmd /k ipconfig

5
@記号は何をしますか?@pauseとpauseには違いがありますか?
demonicdaron

3
@記号を説明する@demonicdaron Answer:stackoverflow.com/a/21077142/2258
Richard Morgan

ただし、この場合、違いはありません。
Florian Leitgeb

違い@pausepause:この回答に視覚的に見ることができますstackoverflow.com/questions/17957076#60053224
ZygD

7

pause最後に(Windows 7)を追加しても機能しませんでした
cmd /k、コマンドの前にを追加すると機能しました。

例:

cmd /k gradlew cleanEclipse

7

.batファイルがコマンドライン内からではない場合(ダブルクリックなど)。

echo The echoed text
@pause

at_pause

echo The echoed text
pause

一時停止

echo The echoed text
cmd /k

cmd k

echo The echoed text & pause

and_pause


3

start cmd /k私のために魔法をやった。コマンドを実行して結果を表示し、ユーザーが閉じるまで待機するCordova PhoneGapアプリの準備に実際に使用しました。以下は簡単な例です

start cmd /k echo Hello, World!

私の場合に使用したもの

start cmd /k cordova prepare

更新

次のコマンドを使用して、タイトルを付けることもできます

start "My Title" echo Hello, World!


1

コマンドライン内でスクリプトを開始する場合は、exit /bCMDを開いたままにするために追加します


変更ipconfigやその他の組み込みのバッチファイルは非常に悪い考えであるため、問題を実質的に解決しません。
robinCTS 2017年


1

また、なぜcmd最初にを追加するのかについても混乱し、最初にコマンドプロンプトを開く必要があるのか​​と思いました。あなたがしなければならないことは、コマンドとともに完全なコマンドを入力することcmd /kです。たとえば、バッチファイル名がコマンドを実行する「my_command.bat」であるとすると、バッチファイルjavac my_code.javaのコードは次のようになります。

cmd /k javac my_code.java

したがって、基本的には現在のフォルダーでコマンドプロンプトを開いて上記のコマンドを入力する必要はありませんが、このコードをバッチファイルに直接保存して直接実行することができます。


0
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java

cmd cd C:\xxx\yourbat.bat

2番目のコマンドは、cmdウィンドウを閉じないようにします。重要なことは、まだ新しいコマンドを入力できることです


0

補足として、これはウィンドウの検索バーから直接コマンドを実行するときにも機能します。

たとえば、直接実行ipconfigすると、コマンドが終了した後、cmdウィンドウが直接閉じます。

ここに画像の説明を入力してください

使用しcmd \k <command>ない-これは私がこの答えを見つけたときに私がしようとしていたことでした。

ここに画像の説明を入力してください

これには、実行しようとしているコマンドを常に認識するという追加の利点があります。たとえばecho hello world、それはコマンドではないため、検索バーから実行しても機能しませんが、cmd \k echo hello world正常に機能します。

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