windows - Sådan forhindres automatisk afslutning af konsollen efter udførelsen af ​​batch-filen.

Indlæg af Hanne Mølgaard Plasc

Problem



Kan nogen fortælle mig, hvilken kommando der skal sættes i slutningen af ​​en batchfil for at forhindre automatisk lukning af konsollen efter udførelsen af ​​filen?

Bedste reference


I Windows/DOS-batch-filer:


pause


Dette udskriver en dejlig "Press any key to continue . . . " besked


Eller hvis du ikke vil have meddelelsen "Press any key to continue . . .", skal du gøre dette i stedet:


pause >nul

Andre referencer 1


Afhænger af det nøjagtige spørgsmål!


Normalt pause gør jobbet i en .bat -fil.


Hvis du vil cmd.exe ikke lukke for at kunne fortsætte med at skrive, skal du bruge kommandoen cmd /k i slutningen af ​​filen.

Andre referencer 2



  Hvis du vil have cmd.exe ikke lukket, og du kan fortsætte med at skrive, skal du bruge cmd /k



Bare følt behovet for at præcisere, hvad /k gør (fra Windows-webstedet):



  /k: Udfører kommandoen angivet med streng og fortsætter.



cmd /k uden opfølgning kommandoen i slutningen af ​​flagermusfilen vil bare holde cmd.exe vinduet åbent til videre brug.


På den anden side pause i slutningen af ​​en batchfil vil du simpelthen stoppe processen og afslutte cmd.exe på den første knap trykke

Andre referencer 3


Den nedenstående måde at have kommandoer på i en batchfil åbner nye kommandopromptsvinduer, og de nye vinduer lukkes ikke automatisk.


start "title" call abcd.exe param1 param2  
start "title" call xyz.exe param1 param2

Andre referencer 4


Tilføj cmd.exe som en ny linje under koden, du vil udføre:


c:Python27python D:codesimple\_http\_server.py

cmd.exe

Andre referencer 5


Ring til cmd i slutningen af ​​batchfilen.

Andre referencer 6


min måde er at skrive en faktisk batch (siger 'foo.bat') for at afslutte jobbet; Opret derefter en anden 'start.bat':


@echo off
cmd /k foo.bat


Jeg finder, at dette er yderst nyttigt, når jeg opretter engangs miljøvariabler.

Andre referencer 7


udover pause.


set /p=


kan bruges. Det forventer brugerindgang og vil frigive strømmen, når indtastning trykkes.


eller


runas /user:# "" >nul 2>&1


som vil gøre det samme, medmindre intet fra brugerindgangen vil blive vist eller forbliver i kommandobeskrivelsen.

Andre referencer 8


Mulighed 1:
Bare lav 2 .bat filer og skriv ind i den første:


start <filename> // name of 2nd batch file
exit


Batch-fil 2 er den fil, der ikke lukker i slutningen.
Så nu når du åbner batch nr. Det starter 2. og kløften selv.
Når 2. afslutter, lukkes det ikke helt (så længe du ikke vil afslutte i slutningen)


Mulighed 2:
Batchfil 1:


call <filename>
cls
echo End of file
pause
<any code you want>


Når den 2. fil slutter, fortsætter den til fil 1 igen og udgiver resten af ​​den. Med det kan du endda lave fejlhåndtere. Hvis nr.1 styrter går det ind i nr. 2 og viser det

Andre referencer 9


Denne lille hack beder brugeren indtaste en nøgle og gemmer den i variablen\% exitkey\% (denne variabel kan kaldes alt, hvad du kan lide).


set /p exitkey= "Press any key to continue..."


NB: rummet efter '=' er meget vigtigt

Andre referencer 10


pause


eller


echo text to display
pause>nul

Andre referencer 11


Hvis du bruger Maven , og du vil springe over skrivningen og forhindre konsollen i nærheden af ​​at se resultatet, skal du bruge kommandoen CALL i scriptet udover blot 'mvn clean installere'.


Ligesom dette lukker konsollen


ECHO This is the wrong exemple
mvn clean install
pause


Som sådan vil konsollen forblive åben


ECHO This is the right exemple
CALL mvn clean install
pause


Hvis du ikke bruger kommandoen CALL, virker ingen af ​​fortidens eksempler.

Andre referencer 12


Der er to måder at gøre det afhænger af brugen tilfælde


1) Hvis du vil have Windows cmd-prompt til at forblive åben, så du kan se eksekveringsresultatet og lukke det efterfølgende; brug



  pause



2) Hvis du vil have Windows cmd-prompt til at forblive åben og give dig mulighed for at udføre nogle kommandoer afterwords; brug



  cmd



Indtast billedbeskrivelse her [36]

Andre referencer 13


Nemt, tilføj cmd til din sidste linje af flagermus, MEN! Hvis du nulstiller eller rydder din systemsti, skal du starte din cmd med den fulde sti, som:


\%windir\%system32cmd.exe


For eksempel har jeg en flagermusfil for at nulstille jdk til gammel version som denne:


PATH=C:Program FilesJavajdk1.6.0\_45in;C:apache-ant-1.7.1in
SET JAVA\_HOME=C:Program FilesJavajdk1.6.0\_45
\%windir\%system32cmd.exe


siden jeg nulstiller systembanen, skal jeg køre cmd med den fulde sti, eller systemet kan ikke finde cmd.exe, det vil ikke køre cmd og lukker bare vinduet, og du kan ikke se fejlmeddelelsen .

Andre referencer 14


Jeg ved, at jeg er sent, men min foretrukne måde er:


:programend
pause>nul
GOTO programend


På denne måde kan brugeren ikke afslutte ved hjælp af enter.