Komut isteminin tamamlandıktan sonra otomatik kapanması nasıl devre dışı bırakılır?


18

Bunu başarmak için pencerelerin eski sürümleriyle bazı hileler olduğunu biliyorum, ancak Windows 7'de emin değilim.

Bir cmd.exe penceresinin hızlı bir şekilde açılıp kapanmasına neden olan anahtarlarla bir komut yürüten bir yazılım parçam varsa, görev tamamlandıktan sonra komut istemini otomatik olarak KAPATMAYACAK şekilde nasıl yapılandırabilirim.

Buradaki hile, yürütülen komutun gerçekten bir toplu iş dosyası olması, sonunda bir duraklatma ifadesi içermesidir, ancak yazılımın komutu yürütmeye çalıştığı yolun başarısız olmasıdır. Çok çabuk kapandığından, çok çabuk kapandığı için hangi hatanın döndürüldüğünü bilmiyoruz.


İyi soru, sessizce ben de bunu biliyorum diliyorum çünkü bazen oyun / yazılım yamaları geliyor .BAT dosyaları talimatlar yürütüldükten sonra kapanıyor ve son kullanıcıya yürütülen komutları göstermeden.
Boris_yo

1
Neden bir komut penceresi açmıyorsunuz, o dizine cd veriyorsunuz ve toplu iş oradan çalıştırılıyor? Bu, toplu iş bittiğinde açık kalacak olan aynı kapanmayan cmd penceresinde çalışır. Bu, hata ayıklamaya yardımcı olacak bazı ipuçları verebilir.
jdh


Teşekkürler slhck, beni o konuma işaret batfile / cmdfile için kayıt içinde istediğimi elde etmek için en yakın olasılık gibi görünüyor.
Efsaneler

Yanıtlar:


8

Bu .batdosyayı doğrudan Explorer'dan veya kullandığınız diğer herhangi bir yöntemle çalıştırmak yerine , el ile başlatın cmd.exe(yükseltilmiş ayrıcalıklarla gerekirse) ve ardından .batdosyanızı oradan çalıştırın . Sonra yürütme tamamlandıktan sonra hala eski çıktı göreceksiniz ... iyi eski DOS günlerde olduğu gibi. :)


Başlat'a basın ve yazın cmdve tuşuna basın enter, bir komut istemi başlatacaksınız. Çalıştırmak için ihtiyacınız olan şeyi (python komut dosyanız veya .exe) cmd pencerelerine sürükleyip bırakın ve tuşuna basın enter.
JinSnow

6

.Bat dosyanızda pausekomutu kullanın. Bu, .bat dosyanızın kapanmasını önleyecektir.

Örneğin, bilgisayarımda MySQL hizmetini başlatmak için kullandığım yarasa dosyası:

net start MySQL
pause

Not: Windows 7'de bu .bat dosyasını Yönetici adından başlatırım. Bunu yapmak için .bat dosyanızın sağ fare düğmesini tıklayın ve açılır menüden "Yönetici adından başla" yı seçin.


5

Arama yaparken / k anahtarını kullanmanız gerekir.

Yararlı ayrıntılar burada .


1

.Bat komut dosyasında, komut penceresini açık bırakmak için komut dosyasının sonundaki "çıkış" ı bırakın.

Bir komut dosyası tarafından açılan bir komut penceresi, komut dosyasına bağlı olduğu için komut dosyasının sonunda her zaman kendini kapatır. Pencerenin kendisinin açılması ve betiğin çalıştırılması, betiğin sonunda "çıkış" komutunu belirtmedikçe pencereyi kapatmaz, çünkü pencere betiğe bağımlı değildir.

Komut dosyası bağımlı bir pencerenin komut dosyası Windows 7'de sona erdiğinde kapatılmasını önlemenin bir yolu görünmüyor. Ancak, hata iletileri başka bir yere kaydedilebilir. Programın bir günlük dosyası var mı? Yoksa Windows günlüklerinde girişler var mı?


0
pause>nul

bu çalışmalı.


2
Lütfen soruyu tekrar dikkatlice okuyun. Yanıtınız yok değil orijinal soruya cevap. "Buradaki hile, yürütülmekte olan komutun gerçekten bir toplu iş dosyası olması, sonunda bir duraklama ifadesi içermesidir "
DavidPostill

0

Tuşuna basın startve yazın cmdve tuşuna basın enter, bir komut istemi başlatacaksınız. Çalıştırmak için gerekeni (python betiğiniz, .exe ...) cmd pencerelerine sürükleyip bırakın ve enter tuşuna basın. (Cmd'yi yönetici olarak çalıştırmanız gerekiyorsa, başlangıç ​​menüsünde cmd'yi bulun, sağ tıklayın, seçin run as admin) (Windows 7'de çalışır)


Lütfen aynı cevabı birden fazla soruya göndermeyin. Aynı bilgi gerçekten her iki soruyu da cevaplıyorsa, bir soru (genellikle daha yeni olan) diğerinin kopyası olarak kapatılmalıdır. Bunu bir kopya olarak kapatmak için oy vererek veya bunun için yeterli bir itibara sahip değilseniz , bunun bir kopya olduğunu belirtmek için bir bayrak kaldırın . Aksi takdirde cevabınızı bu soruya uyarlayın ve aynı cevabı birden fazla yere yapıştırmayın.
DavidPostill

0

Bir süredir bu sorunu yaşıyordum ve sonunda ne olduğunu anladım.

Bir görevi görev zamanlayıcı ile başlattığınızda ve bu bir yarasa dosyasıysa, cmd penceresini yarasa dosyasının bulunduğu yerde C: \ WINDOWS \ system32 olarak DEĞİL olarak açar. Neden? Hiçbir fikrim yok! Yapmam gereken şey cd ile dizini bat dosyasına eklemektir.

Aşağıdaki örnek:

cd c: \ blahblahblah

startmyprogram.exe


Cevabınız çok fazla kafa karışıklığı yaratıyor ve OP'nin karşılaştığı sorunun arkasındaki nedeni belirleyemiyorsunuz. Bu bağlantıyı daha iyi belirtmeniz daha iyi superuser.com/help/how-to-answer , yanıtlarken size yardımcı olacaktır.
Rajesh S
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.