Toplu iş dosyası çalıştırıldıktan sonra cmd penceresi otomatik olarak nasıl kapatılır?


90

Şu iki satıra sahip bir toplu iş dosyası çalıştırıyorum:

start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Bu toplu iş dosyası, Xming uygulamasını ve ardından PuTTY uygulamasını çalıştırmak için kullanılır, böylece üniversitemin bilgisayar laboratuvarına SSH uygulayabilirim.

Ancak bunu çalıştırırsam ve Xming zaten açık değilse, PuTTY terminalinden çıktıktan sonra cmd penceresi açık kalır. Sadece Xming'i zaten çalıştırmışsam, PuTTY terminalini kapattığımda cmd penceresi kapanıyor. exitToplu iş dosyasının son satırına eklemeyi denedim , ancak boşuna.


1
olan "C:\Program Files (x86)\Xming\Xming.exe"putty.exe bir parametre veya bir ayrı komut?
bpoiss

İkinci satır ikinci bir komutsa, ondan önce de start eklemeyi deneyin.
Grey

1
@BernhardPoiss bu ayrı bir komuttur, putty.exe için bir parametre DEĞİLDİR. İlk önce bu ipi koyarsam, takılır ve açık macun yapar. Önüne start koyarsam, pencereler "'C: \ Program' bulunamıyor. Lütfen doğru yazdığınızdan emin olun.
yiwei

Yanıtlar:


136

Toplu iş dosyasını birini ve diğerini yapmak STARTyerine her iki programa değiştirinSTARTCALL

start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Bu şekilde çalıştırırsanız, programı başlattıktan sonra hiçbir CMD penceresi açık kalmayacaktır.


29
+1, ancak yol için çift tırnak kullandığınızda "", başlık olarak bir ilk parametre eklemeniz gerekir. İkinci komut, start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindowaksi takdirde parametrelerle C:\Program Files (x86)\Xming\Xming.exeçalıştırmaya çalışma başlıklı bir komut penceresi açmaya çalışacaktır:0-clipboard -multiwindow
Patrick Meinecke

Ayrıca, bu start /B "GCFScape" "x64\GCFScape.exe">nulörnek benim için yararlı oldu
xacinay

4
"Komut dahili bir cmd komutu veya bir toplu iş dosyasıysa, komut işlemcisi / K anahtarıyla cmd.exe'ye çalıştırılır. Bu, komut çalıştırıldıktan sonra pencerenin kalacağı anlamına gelir." ss64.com/nt/start.html
CAD bloke

3
@CADbloke Bahsettiğiniz problem şu şekilde çözülebilircmd.exe /C "start cmd.exe /C [...].bat ..."
Thorsten Schöning

1
@ patrick-meinecke "" hakkındaki yorumu eklediğiniz için teşekkürler, bunun bana sorunlara neden olduğu için hayal kırıklığına uğradım. Yorumunuzu okudum ve bir ah ha anı ortaya çıktı.
Michael Eakins

21

Normalde bir toplu iş dosyasını sadece yazan bir satırla sonlandırırsınız exit. Dosyanın çalıştığından ve 2 saniye sonra DOS penceresinin kapandığından emin olmak istiyorsanız, satırları ekleyebilirsiniz:

timeout 2 >nul
exit

Ancak exittoplu iş dosyanız başka bir pencere açarsa komut çalışmayacaktır çünkü ikinci pencere açıkken eski DOS penceresi de görüntülenecektir.

ÇÖZÜM: Örneğin , bilgisayarınızla ilgili tüm bilgileri görüntüleyecek olan BgInfo adlı harika ve ücretsiz bir program var . Aranan bir dizinde olduğunu varsayarak C:\BgInfo, /popupanahtarla bir toplu iş dosyasından çalıştırmak ve hala çalışırken DOS penceresini kapatmak için şunu kullanın:

start "" "C:\BgInfo\BgInfo.exe" /popup
exit

sahip /popupaslında bana bir hata veriyordu. Her şeyi kaldırdıktan sonra işe yaradı
Dmitry Efimenko

5

Komutları dosya başına tek bir komuta ayırmak istiyorsanız, şunu yapabilirsiniz:

cmd /c start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"

ve diğer dosyada şunları yapabilirsiniz:

cmd /c start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Cmd / c komutu, exe çalıştırıldıktan sonra komut istemi penceresini kapatır.


3

Bu benim için çalıştı. Oyundan çıktıktan sonra komut penceresini otomatik olarak kapatmak istedim. Masaüstümdeki .bat dosyasına çift tıklıyorum. Kısayol yok.

taskkill /f /IM explorer.exe
C:\"GOG Games"\Starcraft\Starcraft.exe
start explorer.exe
exit /B

1

Bunu yaptım, ekledim EXITve başlangıçta işe yaramadı, sanırım called program exitingburada başka bir yanıtta bahsedilen tavsiyeye ihtiyaç duyduğum için , ancak şimdi daha fazla uzatmadan çalışıyor - buna neyin neden olduğundan emin değilim, ancak dikkat edilmesi gereken nokta şu ki ben bir veri dosyası çağıran .htmlziyade kolları bu programı browser.exe, başka değil düzenleme şey yaptı ama bu sadece bu web dokümanların ana erişim sayfalarına erişmek için bir bat dosyası kullanılarak netleşir ve sadece sahip söylemek yeterli title.bat, contents.bat,index.bat kök klasöründe içeriğin geri kalanı bir alt klasörde olacak şekilde.

yani: content.bat okur

cd subfolder
"contents.html"
exit

Sadece bu öğeler için yarasa dosyası simgelerini de bulundukları bağlama uyacak şekilde değiştirirsem daha iyi görünüyor, ancak bu başka bir mesele, yarasa dosyalarını alt klasörde gizlemek ve bunlara resimlerle birlikte kök klasörde özel simge kısayolları oluşturmak özelleştirme çağrısı da gizli.


1

Biraz tehlikeli taskkill /IM cmd.exeolanı deneyebilirsiniz: ..hlikeli bcz açık olan ve ondan önce açılan cmd'leri öldürecek.

Veya doğru cmd.exe'ye sahip olduğunuzu onaylamak için bir doğrulama ekleyin ve ardından PID aracılığıyla şu şekilde öldürün:

set loc=%time%%random%
title=%loc%
for /f "tokens=2 delims= " %%A in ('tasklist /v ^| findstr /i "%loc%"') do (taskkill /PID %%A) 

Önce kontrol etmek isterseniz (ve belki pstools yüklü olabilir) yerine (pslist &&A)veya (tasklist /FI "PID eq %%A")yerine (taskkill /PID %%A)koyun.


0

/sAşağıda listelendiği gibi deneyin .

Toplu iş dosyası türündeki son satır olarak:

exit /s

Yukarıdaki komut Windows CMD penceresini kapatacaktır.

/s - olduğu gibi sessiz anlamına gelir (klavyeden bir giriş bekler).


1
cmdbireyin çıkış komutu bir yok /sanahtarı (ve anlamsız zaten olurdu)
Stephan

-1

Bu kodu yürütme kodunun sonuna ekleyin

c: \ windows> çıkış


1
sorunun son cümlesini okudunuz mu ?:I've tried adding exit to the last line of the batch file, but to no avail.
Stephan

Senaryomun sonuna çıkış ekledim ve aslında sorunumu çözdü.
Attila
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.