BAT dosyası yürütüldükten sonra CMD'yi açık tutun


169

Ben böyle bir yarasa dosyası var:

ipconfig

Bu, IP bilgisini ekrana yazdıracaktır, ancak kullanıcı bu bilgiyi okuyabilmek için CMD kendini kapatır.

CMD betiğin bittiğini varsayar, bu yüzden kapanır.

Komut dosyası bittikten sonra CMD'yi nasıl açık tutarım?



4
@RobKielty aynı soru tamam - ama burada yeni bir cevabımız var (bu daha iyi IMHO)
alfasin


@alfasin Rutger Nijlunsing'in cevabı ile aynı değil mi?
Rob Kielty

@RobKielty hayır, benim cevabım kullanmadığı gibi değil pauseki bu güzel bir çözümdür (ve bu yüzden bu cevabı iptal ettim) ama kullanıcı isabet ettikten Enterveya Spacepencere kapatıldıktan sonra sorunu gerçekten çözen bir cevap değil . ..
alfasin

Yanıtlar:


163

Komutu nasıl çalıştırdığınıza bağlı olarak , pencereyi açık tutmak için /ksonra koyabilirsiniz cmd.

cmd /k my_script.bat

cmd /kToplu iş dosyanızın sonuna eklemek de işe yarayacaktır. Kredi Luigi D'Amico aşağıdaki yorum bu konuda yayınlanmıştır.


14
Yarasa dosyanızdaki tüm komut dosyalarından sonra - koymak -> cmd / k
Luigi D'Amico

3
Programınız sözdizimsel hatalar içeriyorsa, çift tıklatarak çalıştırırsanız ve cmd /ksonunda koyarsanız pencerenin hala kapanacağına dikkat edin .
Tobias Feil

Bu, kullanıcı dosyayı çift tıkladığında cmd pencerelerinin kapanmasını açıklamaz.
K - SO'da toksisite artıyor.

238

pause.BAT dosyanızın sonuna koyun .


7
Tam da aradığım şey buydu, çünkü CMD komutuyla değil, bat dosyasını başlangıçta çalıştırıyorum. +1
Hawkeye

3
Yürütmeden sonra yarasa dosyasıyla hala etkileşimde bulunmak istiyorsanız, DURAKLATMA işlevini cmd / k ile değiştirin - komut dosyalarınız çalıştıktan sonra, yine de aynı bağlamda el ile komutları çalıştırabilirsiniz
Luigi D'Amico

Bunun bu soru için "çözüm" yorumu olmadığını göremiyorum
newhouse

57

@pauseSonunda ekleyin .

Misal:

@echo off
ipconfig
@pause

Veya şunları kullanabilirsiniz:

cmd /k ipconfig

5
@ sembolü ne yapar? @Pause ve pause arasında bir fark var mı?
demonicdaron

3
@demonicdaron @ sembolünü açıklayan cevap: stackoverflow.com/a/21077142/2258
Richard Morgan

Ancak bu durumda, herhangi bir fark yaratmamalıdır.
Florian Leitgeb

Arasındaki fark @pauseve pausegörsel olarak bu cevapta görülebilir: stackoverflow.com/questions/17957076#60053224
ZygD

7

Ekleme pausebenim için işe yaramadı sonuna (Windows 7) 'de
ancak ekleyerek cmd /kemrime önünde çalışma yaptı.

Misal :

cmd /k gradlew cleanEclipse

7

.Bat dosyası komut satırından başlatılmadığında (örn. Çift tıklatma).

echo The echoed text
@pause

at_pause

echo The echoed text
pause

Duraklat

echo The echoed text
cmd /k

cmd k

echo The echoed text & pause

and_pause


3

start cmd /kbenim için sihir yaptı. Aslında cordova phonegap uygulamasını hazırlamak için kullandım, komutu çalıştırır, sonucu gösterir ve kullanıcının kapatmasını bekler. Aşağıda basit bir örnek var

start cmd /k echo Hello, World!

Benim durumumda ne kullandım

start cmd /k cordova prepare

Güncelleme

Bunu kullanarak bir başlığınız bile olabilir

start "My Title" echo Hello, World!


1

Komut dosyasını komut satırından exit /bbaşlatıyorsanız, CMD'yi açık tutmak için ekleyin


Soruyu değiştirme ipconfigve diğer yerleşik toplu dosyalar olarak pratik olarak çözmezse çok kötü bir fikirdir .
robinCTS

1

Windows'da dosyadaki komutunuzun sonuna '& Pause' ekleyin.


1

Ayrıca neden cmdbaşlangıçta a eklediğimize dair kafam karıştı ve önce komut istemini açmak zorunda olup olmadığımı merak ediyordum. Yapmanız gereken tam komutu birlikte yazmanızdır cmd /k. Örneğin, toplu iş dosya adınızın komutu çalıştıran "my_command.bat" olduğunu varsayalım ve toplu iş dosyanızdaki javac my_code.javakod şöyle olmalıdır:

cmd /k javac my_code.java

Temel olarak, geçerli klasörde komut istemini açmanıza ve yukarıdaki komutu yazmanıza gerek yoktur, ancak bu kodu doğrudan toplu iş dosyanıza kaydedebilir ve doğrudan yürütebilirsiniz.


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

cmd cd C:\xxx\yourbat.bat

ikinci komut cmd pencerenizi kapatmayın. Önemli olan hala yeni komut girebilmeniz


0

Bir sidenote olarak bu, doğrudan pencerelerdeki arama çubuğundan bir komut çalıştırırken de çalışır.

örn. doğrudan çalışan ipconfigkomut çıktıktan sonra cmd penceresini doğrudan kapatır.

resim açıklamasını buraya girin

Kullanmayacağım cmd \k <command>- bu cevabı bulduğumda yapmaya çalıştığım şeydi.

resim açıklamasını buraya girin

Her zaman çalıştırmaya çalıştığınız komutu tanımanın ek bir avantajı vardır. Örneğin echo hello world, arama çubuğundan çalıştırmak bu bir komut olmadığı için çalışmaz, ancak cmd \k echo hello worldgayet iyi çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.