Dosyanın yürütülmesinden sonra konsolun otomatik olarak kapanmasını önlemek için bir toplu iş dosyasının sonuna hangi komutu koyabilirim?
Dosyanın yürütülmesinden sonra konsolun otomatik olarak kapanmasını önlemek için bir toplu iş dosyasının sonuna hangi komutu koyabilirim?
Yanıtlar:
Windows / DOS toplu iş dosyalarında:
pause
Bu hoş bir "Press any key to continue . . . "
mesaj yazdırıyor
Veya "Press any key to continue . . ."
mesajı istemiyorsanız bunun yerine bunu yapın:
pause >nul
Kesin soruya bağlıdır!
Normalde pause
bu işi bir .bat dosyası içinde yapar .
Cmd.execmd /k
dosyasının yazmaya devam edebilmesi için kapanmamasını istiyorsanız , dosyanın sonundaki komutu kullanın .
cmd /k
bunun yerine komutunuzun önüne koyun . & cmd /k
çalışmaz.
Cmd.exe dosyasının kapanmamasını ve yazmaya devam edebilmesini istiyorsanız,
cmd /k
Ne yaptığını netleştirme ihtiyacı hissettim /k
(Windows web sitesinden):
/k
: String ile belirtilen komutu yerine getirir ve devam eder.
Bu yüzden cmd /k
yarasa dosyasının sonunda takip komutu olmadan sadece cmd.exe
pencereyi daha fazla kullanım için açık tutacaktır .
Öte yandan pause
, bir toplu iş dosyasının sonunda işlemi duraklatacak ve cmd.exe
ilk düğmeye bastığınızda sonlandırılacaktır
Bir toplu iş dosyasında komut bulundurmanın aşağıdaki yolu yeni komut istemi pencerelerini açacak ve yeni pencereler otomatik olarak çıkmayacaktır.
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
Maven kullanıyorsanız ve yazmayı atlamak ve konsolun sonucu görmesini engellemek istiyorsanız, CALL
komut dosyasındaki komutu sadece 'mvn clean install' dışında kullanmanız gerekir .
Bunun gibi konsolu kapatacak
ECHO This is the wrong exemple
mvn clean install
pause
Bu şekilde konsol açık kalacak
ECHO This is the right exemple
CALL mvn clean install
pause
CALL
Komutu kullanmazsanız , geçmişlerden hiçbiri çalışmaz.
call <myCommand>
bu sorunu çözdü: İlk uygulamadan sonra
cmd.exe
Yürütmek istediğiniz kodun altına yeni bir satır olarak ekleyin :
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
python script.py %1 && cmd
yolum, işi bitirmek için gerçek bir toplu iş ("foo.bat" diyerek) yazmak; sonra başka bir "start.bat" oluşturun:
@echo off
cmd /k foo.bat
Bir kerelik ortam değişkenleri ayarladığımda bunun son derece yararlı olduğunu düşünüyorum.
cmd /k
sonuna (herhangi bir komut olmadan) koyabilir foo.bat
ve çalıştırabilirsiniz. Ayrı bir start.bat
dosyaya ihtiyacınız yok .
cmd
Toplu iş dosyasının sonunda arayın .
Olasılık 1: Sadece 2 .bat dosyası oluşturun ve ilk dosyaya yazın:
start <filename> // name of 2nd batch file
exit
Toplu iş dosyası 2 sonunda kapanmayacak olan dosyadır. Yani şimdi parti nr.1 açtığınızda 2. başlayacak ve kendini cloe. 2. bittiğinde tamamen kapanmayacaktır (sonunda çıkış yapmayacağınız sürece)
Olasılık 2: Toplu iş dosyası 1:
call <filename>
cls
echo End of file
pause
<any code you want>
2. dosya sona erdiğinde tekrar 1. dosyaya geçecek ve geri kalanını çıktı verecektir. Bununla hata işleyicileri bile yapabilirsiniz. Nr.1 çökerse, nr.2'ye gider ve görüntüler
Bu küçük kesmek kullanıcıdan bir anahtar girmesini ister ve bunu% exitkey% değişkenine kaydeder (bu değişken istediğiniz gibi adlandırılabilir).
set /p exitkey= "Press any key to continue..."
Not: '=' işaretinden sonraki boşluk çok önemlidir
Geç kaldığımı biliyorum ama tercih ettiğim yol:
:programend
pause>nul
GOTO programend
Bu şekilde kullanıcı enter kullanarak çıkamaz.
Kullanım durumuna bağlı olarak bunu yapmanın iki yolu vardır
1) Windows cmd isteminin açık kalmasını istiyorsanız, yürütme sonucunu görebilir ve daha sonra kapatabilirsiniz; kullanım
pause
2) Windows cmd isteminin açık kalmasını ve bazı komut sözcüklerini çalıştırmanıza izin vermesini istiyorsanız; kullanım
cmd
Kolay, yarasa son satırına cmd ekleyin, AMA! sistem yolunuzu sıfırlar veya temizlerseniz, cmd'nizi aşağıdaki gibi tam yolla başlatmalısınız:
%windir%\system32\cmd.exe
Örneğin, jdk böyle eski sürümüne sıfırlamak için bir bat dosyası var:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe
Sistem yolunu sıfırladığımdan, cmd'yi tam yolla çalıştırmam gerektiğinden veya sistem cmd.exe'yi bulamıyor, cmd'yi çalıştıramaz ve sadece pencereyi kapatır ve hata mesajını göremezsiniz. .