File batch: Cara membiarkan jendela konsol terbuka


105

Saya memiliki dua file batch, salah satunya menjalankan file lainnya, yaitu

  1. "File Batch Saya"> 2. "Beberapa File Batch Lainnya"

Saya telah membuat shortcut dari file batch pertama dan mengedit propertinya untuk memanggilnya dengan cara berikut.

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

Apa yang ingin saya lakukan Saya ingin jendela konsol terbuka setelah eksekusi file batch selesai. Sekarang hanya menutup, mencoba bermain-main dengan bendera cmd, tidak ada hasil.

Platform: Windows7


UPDATE 1

Modifikasi strukturnya, contoh sederhana seperti ini tidak berfungsi dengan baik, Hanya satu file batch yaitu tidak ada 2. "Beberapa File Batch Lainnya" Satu-satunya file batch berisi yang seperti ini

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

UPDATE 2

Pintasan yang sama yang dipanggil dari Explorer tidak menutup jendela konsol. Tetapi jendela konsol akan tertutup saat pintasan dipanggil dari item yang disematkan di bilah tugas

Ada ide bagaimana menjaga jendela konsol tetap terbuka?


Saya kira Anda ingin My Batch Filebertahan?
Marc B

"Panas untuk membiarkan jendela konsol dari file batch terbuka" ditanyakan dan dijawab dengan lebih jelas di sini: superuser.com/questions/175515/…
oberlies

Jawaban:


126

Jika itu benar-benar semua file batch lakukan, hapus cmd /Kdan tambahkan PAUSE.

start /B /LOW /WAIT make package
PAUSE

Kemudian, arahkan pintasan Anda ke "My Batch File.bat"... tidak perlu menjalankannya dengan CMD /K.

MEMPERBARUI

Ah, beberapa info baru ... Anda mencoba melakukannya dari pintasan tersemat di bilah tugas.

Saya menemukan ini, Menambahkan File Batch ke Windows 7 Taskbar seperti Luncur Cepat Vista / XP , dengan bagian yang relevan di bawah ini.

  1. Pertama, sematkan pintasan untuk CMD.EXEke bilah tugas dengan menekan tombol mulai, lalu ketik "cmd" di kotak pencarian, klik kanan hasilnya dan pilih "Sematkan ke Bilah Tugas".
  2. Klik kanan pintasan di bilah tugas.
  3. Anda akan melihat daftar yang menyertakan " Command Prompt " dan " Lepas pin program ini dari bilah tugas ".
  4. Klik kanan ikon untuk CMD.EXEdan pilih Properties.
  5. Di kotak untuk Target, pergi ke akhir "%SystemRoot%\system32\cmd.exe"dan ketik " /C "dan jalur serta nama file batch.

Untuk tujuan Anda, Anda dapat:

  1. Gunakan /Cdan letakkan PAUSEdi akhir file batch Anda.

    ATAU

  2. Ubah baris perintah untuk menggunakan /Kdan menghapus PAUSEdari file batch Anda.

Saya sudah melakukannya, pada dasarnya pertanyaan saya bukanlah bagaimana memanggil file batch anohter ...
deimus

Kemudian kita perlu melihat isi dari kedua file batch tersebut.
aphoria

Silakan lihat pertanyaan
udpated

Masalah yang sama, mengganti CMD / K tidak berfungsi. Mengapa jendela penghiburan tidak menutup jika pintasan dipanggil dari Explorer?
deimus

13

Di sini:

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

Lihat apa yang Anda lakukan:

  1. (cmd / K) Mulai instance cmd BARU .
  2. (& jeda) Jeda instance cmd CURRENT .

Bagaimana cara mengatasinya? nah, menggunakan sintaks yang benar, dengan menyertakan argumen untuk instance CMD baru:

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

6

Saya baru saja menulis baris terakhir sebagai Jeda. Ini bekerja dengan baik dengan .bat dan .cmd. Ini akan menampilkan pesan juga sebagai 'Tekan sembarang tombol untuk melanjutkan'.


Ini jawaban yang benar! Harus menjadi yang teratas.
Patrick Hillert

5

Di baris terakhir dari file batch yang ingin Anda tetap buka, letakkan file

pause >nul


Sepertinya itu ditutup lebih awal, mungkin ada kesalahan dalam skrip. Coba buka prompt cmd dan jalankan dari sana, lalu Anda dapat melihat apakah ada kesalahan.
Bali C

3

Untuk membiarkan jendela konsol terbuka, Anda hanya perlu menambahkan baris perintah terakhir di file batch:

' & pause'

2

Anda bisa meletakkan pauseperintah di baris terakhir file batch Anda:

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

Akan memberi Anda sesuatu seperti ini sebagai output:

Hei, aku hanya melakukan beberapa pekerjaan untukmu.

Tekan tombol apa saja untuk melanjutkan ...

Catatan: Menggunakan @echo mencegah untuk mengeluarkan perintah sebelum keluaran dicetak.


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

-1

letakkan di bagian akhir ini akan membuka kembali konsol Anda

start cmd 

Ini tidak menyelesaikan masalah, pengguna ingin tetap membuka jendela, bukan membuka kembali yang lama.
Adam

-5

Saya hanya menekan enter dan mengetik Jeda dan berfungsi dengan baik

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.