2012-12-06 1 views
91

Ho due file batch, uno dei quali esegue un altro, vale a dire: come lasciare la finestra aperta della console

  1. "My Batch File"> 2. "Some Other Batch File"

Ho creato una scorciatoia del primo file batch e ho modificato le sue proprietà per chiamarla in questo modo.

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

Quello che voglio fare Voglio la finestra della console di essere aperti dopo l'esecuzione del file batch è finita. Ora si chiude, ha provato a giocare intorno alle bandiere cmd, nessun risultato.

Piattaforma: Windows 7


UPDATE 1

modificato la struttura, l'esempio semplice come questo non funziona così, Solo un file batch per esempio non c'è il 2. " qualche altro file batch" L'unico file batch contiene smth come questo

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

UPDATE 2

la stessa scorciatoia che viene richiamato da Explorer non chiude la finestra della console. Ma la finestra della console si chiude quando il collegamento viene richiamato dalla voce appuntato sulla barra delle applicazioni

Delle idee come tenere la finestra aperta della console?

+0

Presumo si desidera che il 'My Batch File' a restare? –

+0

Sì, corretto, a destra – deimus

+0

"È caldo per lasciare la finestra della console di un file batch aperto" e viene chiesto in modo più chiaro qui: http://superuser.com/questions/175515/is-there-a-way-in -windows-7-to-create-a-shortcut-to-a-command-line-console-app – oberlies

risposta

109

Se questo è tutto ciò che sta facendo il file batch, rimuovere cmd /K e aggiungere PAUSE.

start /B /LOW /WAIT make package 
PAUSE 

Poi, basta puntare il collegamento al "My Batch File.bat" ... non c'è bisogno di correre con CMD /K.

UPDATE

Ah, qualche nuova info ... si sta cercando di farlo da un collegamento appuntato sulla barra delle applicazioni.

Ho trovato questo, Adding Batch Files to Windows 7 Taskbar like the Vista/XP Quick Launch, con la parte pertinente di seguito.

  1. In primo luogo, perno di una scorciatoia per CMD.EXE alla barra delle applicazioni premendo il pulsante di avvio, quindi digitare "cmd" nella casella di ricerca, fare clic con il risultato e ha scelto "alla barra delle applicazioni".
  2. Fare clic con il tasto destro del mouse sulla barra delle applicazioni.
  3. Verrà visualizzato un elenco che include "Prompt dei comandi" e "Sblocca questo programma dalla barra delle applicazioni".
  4. Fare clic con il pulsante destro del mouse sull'icona per CMD.EXE e selezionare Properties.
  5. Nella casella per Destinazione, andare alla fine di "%SystemRoot%\system32\cmd.exe" e digitare " /C " e il percorso e il nome del file batch.

Per i vostri scopi, è possibile:

  1. Usa /C e mettere un PAUSE alla fine del file batch.

    O

  2. Modificare la riga di comando da utilizzare /K e rimuovere il PAUSE dal file batch.
+0

L'ho già fatto, in fondo la mia domanda non è come chiamare il file batch di anohter ... – deimus

+0

Quindi abbiamo bisogno per vedere il contenuto di entrambi i file batch. – aphoria

+0

Vedere la domanda udibile – deimus

4

Nell'ultima riga del file batch che si desidera conservare put aperto un

pause >nul

+3

nessun risultato, si chiude comunque automaticamente – deimus

+0

Sembra che si stia chiudendo presto, forse un errore nello script. Prova ad aprire un prompt cmd ed eseguirlo da lì, quindi puoi vedere se ci sono errori. –

+0

Nessun errore, vedere la domanda aggiornata – deimus

11

Alla qui:

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

Date un'occhiata cosa stai facendo:

  1. (cmd/K) Inizio a NOVITÀ Istanza cmd.
  2. (& pause) Pausa l'istanza CURRENT cmd.

Come risolverlo? bene, utilizzando la sintassi corretta, che racchiude l'argomento per la nuova istanza CMD:

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

Per lasciare la finestra della console si apre avere solo aggiungere all'ultima riga di comando nel file batch:

' & pause' 
+0

Non funziona su Win7. Sei sicuro? –

+0

@PatrickHillert si, ha funzionato su Win7 per me – UmbySlipKnot

6

Ho appena scritto l'ultima riga come Pausa ha funzionato bene con .bat e .cmd. Verrà visualizzato anche il messaggio 'Premere un tasto per continuare'.

+0

Questa è la risposta corretta! Dovrebbe essere il più votato. –

-5

ho solo premere invio e il tipo di pausa e funziona benissimo

1

Si può semplicemente mettere un pause command nell'ultima riga del file batch:

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

vi darà qualcosa di simile come output:

Ehi, sto solo facendo un lavoro per te.

Premere un tasto qualsiasi per continuare ...

Nota: Uso del @echo impedisce di uscita del comando prima che l'uscita viene stampato.

-1

put alla fine si riaprirà la console

start cmd 
+0

Questo non risolve il problema, l'utente vuole mantenere la finestra aperta, non riaprire una vecchia. – Adam