Hjemmeside » hvordan » Kan jeg køre en Windows-batchfil uden et synligt kommandoprompt?

    Kan jeg køre en Windows-batchfil uden et synligt kommandoprompt?

    Batch filer er en praktisk måde at udføre en række kommandoer i Windows, men er der alligevel at køre dem usynligt i baggrunden? Læs videre find ud af hvordan.

    Dagens Spørgsmål & Svar session kommer til os med venlig hilsen af ​​SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.

    Spørgsmålet

    SuperUser-læser Jake ønsker at køre en BAT-fil usynligt, skriver han:

    Jeg har installeret en rubin perle kaldet Redcar, som lanceres fra kommandolinjen. Når den løber, stjæler den skallen, indtil den afslutter, så jeg skal oprette et nyt skalvindue for at fortsætte med at gøre kommandolinjearbejde. Skallen, jeg bruger, er GITBash-skallen fra MySysGit.

    Jeg fandt en Redcar.bat-fil, der skal starte Redcar som en genvej, formoder jeg, men jeg vil ikke have det ekstra kommandopromptvindue åbent, når jeg starter BAT-filen.

    Hvordan kører jeg bare BAT uden at se prompten?

    Er der en løsning på Jakes smidige hurtige ønske?

    Svarene

    SuperUser bidragyder Afrazier reagerer med en kombination af dårlige og gode nyheder:

    Du kan ikke - udføre en batchfil med det indbyggede Command Prompt skal holde et vindue åbent, indtil batchfilen udgår.

    Hvad du kan gør, er der skridt til at sikre, at batchfilen udløber så hurtigt som muligt. Hvis det overhovedet er muligt, skal du ændre batchfilen for at køre uanset program med Start kommando. Som standard, Start vender straks tilbage uden at vente på at programmet skal afslutte, så batchfilen fortsætter med at køre og formentlig afslutte med det samme. Par, der med at ændre din genvej til at køre batchfilen minimeres, og du vil kun se proceslinjen flash uden at se et vindue på skærmen.

    En advarsel herpå er, at hvis du kører et konsol-mode-program, som mange scripttolker er, vil batchfilen vente på, at programmet lukker og bruger Start vil gyde et nyt konsolvindue. Hvad du skal gøre i dette tilfælde, køres den Windows-baserede version af tolken i stedet for den konsolbaserede en - nej Start nødvendig. For Perl ville du løbe wperl.exe i stedet for perl.exe. For Python er det pythonw.exe i stedet for python.exe. Den gamle Win32 Ruby distribution jeg har downloadet har rubyw.exe, som skal gøre det samme.

    En endelig mulighed er at bruge et tredjeparts værktøj til at køre kommandoprompten med et skjult vindue. Jeg har hørt om sådanne ting, men aldrig brugt dem, så jeg ved ikke noget mere om at henvise til dig.

    Læsere pegede også på en anden SuperUser-tråd, der fremhæver, hvordan du kan bruge et Visual Basic Script til at gå ud over at minimere synligheden og direkte skjule CMD-prompten. I den tråd forklarer Harry MC:

    Løsning 1:

    Gem denne ene linje med tekst som fil invisible.vbs:

    CreateObject ("Wscript.Shell"). Kør "" "" & WScript.Arguments (0) & "" "", 0, False

    Hvis du vil køre et program eller en batchfil usynligt, skal du bruge den som denne:

    wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Nogle anden sted \ MyBatchFile.bat"

    For at også kunne sende / relæ en liste med argumenter bruger kun to dobbelte citater

    CreateObject ("Wscript.Shell"). Kør "" & WScript.Arguments (0) & "", 0, False

    fx: Invisible.vbs "Kill.vbs ME.exe"

    Løsning 2:

    Brug et kommandolinjeværktøj til tydeligt at starte en proces: Stille.

    Hvis du anvender en af ​​ovenstående løsninger, baseret på dit komfortniveau ved hjælp af VBS og tredjepartsværktøjer eller ej, vil du mindske CMD-vinduets synlighed eller fjerne det i det mindste.


    Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.