Toplu iş dosyaları: Konsol penceresi nasıl açık bırakılır


105

İki toplu iş dosyam var, biri diğerini yürütüyor, yani

  1. "Toplu İş Dosyam"> 2. "Diğer Bazı Toplu İş Dosyaları"

İlk toplu iş dosyasının kısayolunu oluşturdum ve özelliklerini aşağıdaki şekilde çağırmak için düzenledim.

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

Yapmak istediğim şey , toplu iş dosyasının yürütülmesi bittikten sonra konsol penceresinin açılmasını istiyorum. Şimdi sadece kapanıyor, cmd bayraklarının etrafında oynamaya çalıştı, sonuç yok.

Platform: Windows7


GÜNCELLEME 1

Yapı değiştirildi, bunun gibi basit bir örnek de çalışmıyor, Yalnızca bir toplu iş dosyası, yani 2 yok "Başka Bir Toplu İş Dosyası" Tek toplu iş dosyası bunun gibi smth içeriyor

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

GÜNCELLEME 2

Explorer'dan çağrılan aynı kısayol konsol penceresini kapatmaz. Ancak kısayol, görev çubuğundaki sabitlenmiş öğeden çağrıldığında konsol penceresi kapanır

Konsol penceresini nasıl açık tutacağınıza dair bir fikriniz var mı?


Sanırım My Batch Fileetrafta dolaşmak istiyorsun ?
Marc B

"Bir toplu iş dosyasının konsol penceresini açık bırakmak için sıcak" burada daha net bir şekilde sorulur ve yanıtlanır: superuser.com/questions/175515/…
oberlies

Yanıtlar:


126

Tüm toplu iş dosyası gerçekten buysa, kaldırın cmd /Kve PAUSE.

start /B /LOW /WAIT make package
PAUSE

Ardından, kısayolunuzu "My Batch File.bat"... ile çalıştırmaya gerek yok CMD /K.

GÜNCELLEME

Ah, bazı yeni bilgiler ... bunu görev çubuğundaki sabitlenmiş bir kısayoldan yapmaya çalışıyorsunuz.

Bunu , Vista / XP Hızlı Başlatma gibi Windows 7 Görev Çubuğuna Toplu Dosya Ekleme'yi aşağıdaki ilgili bölümle buldum .

  1. Öncelikle, CMD.EXEbaşlat düğmesine basarak görev çubuğuna bir kısayol sabitleyin , ardından arama kutusuna "cmd" yazın, sonucu sağ tıklayın ve "Görev Çubuğuna Sabitle" seçeneğini seçin.
  2. Görev çubuğundaki kısayola sağ tıklayın.
  3. " Komut İstemi " ve " Bu programı görev çubuğundan ayır " içeren bir liste göreceksiniz .
  4. Simgesine sağ tıklayın CMD.EXEve seçin Properties.
  5. Hedef kutusuna gidin ve toplu iş dosyasının yolunu ve adını "%SystemRoot%\system32\cmd.exe"yazın " /C "ve yazın.

Amaçlarınız için şunlardan birini yapabilirsiniz:

  1. Kullanın /Cve PAUSEtoplu iş dosyanızın sonuna koyun .

    VEYA

  2. Kullanmak ve toplu iş dosyanızdan /Kkaldırmak için komut satırını değiştirin PAUSE.

Bunu zaten yaptım, temelde sorum anohter toplu iş dosyasını nasıl çağıracağım değil ...
deimus

O zaman her iki toplu iş dosyasının içeriğini görmemiz gerekir.
aphoria

Lütfen güncellenmiş soruya bakın
deimus

Aynı sorun, CMD / K'yi değiştirmek işe yaramıyor. Kısayol Explorer'dan çağrılırsa konsol penceresi neden kapanmıyor?
deimus

13

Burada:

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

Ne yaptığına bir bak:

  1. (cmd / K) YENİ bir cmd örneği başlatın.
  2. (& duraklat) CURRENT cmd örneğini duraklatın .

Nasıl çözülür? yeni CMD örneğinin bağımsız değişkenini içeren doğru sözdizimini kullanarak:

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

6

Son satırı Duraklat olarak yazdım , hem .bat hem de .cmd ile iyi çalıştı. Ayrıca 'Devam etmek için herhangi bir tuşa basın' mesajını gösterecektir.


Bu doğru cevap! En çok oy alan olmalı.
Patrick Hillert

5

Açık tutmak istediğiniz toplu iş dosyasının son satırına bir

pause >nul


O zaman erken kapanıyor gibi görünüyor, belki senaryoda bir hata olabilir. Bir cmd istemini açıp oradan çalıştırmayı deneyin, ardından herhangi bir hata olup olmadığını görebilirsiniz.
Bali C

3

Konsol penceresini açık bırakmak için yalnızca toplu iş dosyasındaki son komut satırına eklemeniz gerekir:

' & pause'

2

Toplu iş dosyanızın son satırına bir pausekomut koyabilirsiniz :

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

Çıktı olarak size böyle bir şey verecektir:

Hey, senin için biraz iş yapıyorum.

Devam etmek için herhangi bir tuşa basın ...

Not: @echo'nun kullanılması, çıktı yazdırılmadan önce komutun çıktısını almayı engeller.


0
rem Just use "pause" at the end of the batch file.
...
......
.......
pause

-1

sonunda konsolunuzu yeniden açacak

start cmd 

Bu sorunu çözmez, kullanıcı eskisini yeniden açmak değil, pencereyi açık tutmak ister.
Adam

-5

Sadece enter tuşuna basıp Duraklat yazıyorum ve sorunsuz çalışıyor

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.