Hjemmeside » hvordan » Kan jeg kjøre en Windows-batchfil uten synlig kommandoprompt?

    Kan jeg kjøre en Windows-batchfil uten synlig kommandoprompt?

    Batchfiler er en praktisk måte å utføre en rekke kommandoer på i Windows, men er det allikevel å drive dem usynlig i bakgrunnen? Les videre finn ut hvordan.

    Dagens Spørsmål & Svar-sesjon kommer til oss med høflighet av SuperUser-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.

    Spørsmålet

    SuperUser leser Jake ønsker å kjøre en BAT-fil usynlig, skriver han:

    Jeg har installert en rubin-perle som heter Redcar, som lanseres fra kommandolinjen. Når det løper, stjeler det skallet til det avsluttes, så jeg må lage et nytt skallvindu for å fortsette å gjøre kommandolinjearbeid. Skalet jeg bruker er GITBash-skallet fra MySysGit.

    Jeg fant en Redcar.bat-fil som er ment å starte Redcar som en snarvei, antar jeg, men jeg vil ikke at det ekstra kommandopromptvinduet skal åpnes når jeg starter BAT-filen.

    Hvordan kjører jeg bare BAT uten å se spørringen?

    Er det en løsning for Jakes smilende øyeblikkelige ønske?

    Svarene

    SuperUser-bidragsyter Afrazier reagerer med en kombinasjon av dårlige og gode nyheter:

    Du kan ikke - utføre en batchfil med den innebygde Command Prompt skal holde et vindu åpent til batchfilen utgår.

    Hva du kan gjør det, ta skritt for å sikre at batchfilen utgår så raskt som mulig. Hvis det er mulig, endre batchfilen til å kjøre hvilket program som helst med start kommando. Som standard, start returnerer umiddelbart uten å vente på at programmet skal gå ut, så batchfilen fortsetter å løpe, og antagelig, avslutter umiddelbart. Par som med å endre snarveien din for å kjøre batchfilen minimeres, og du vil bare se oppgavelinjen uten å se et vindu på skjermen.

    En advarsel mot dette er at hvis du kjører et konsollmodusprogram, hvor mange skriptolkere er, vil batchfilen vente på at programmet skal gå ut og bruke start vil gyte et nytt konsollvindu. Det du trenger å gjøre i dette tilfellet, kjøres den Windows-baserte versjonen av tolken i stedet for den konsollbaserte en - nei start nødvendig. For Perl ville du kjøre wperl.exe i stedet for perl.exe. For Python er det pythonw.exe i stedet for python.exe. Den gamle Win32 Ruby distribusjonen jeg har lastet ned har rubyw.exe, som bør gjøre det samme.

    En endelig mulighet er å bruke et tredjepartsverktøy for å kjøre kommandoprompten med et skjult vindu. Jeg har hørt om slike ting, men aldri brukt dem, så jeg vet ikke noe spesielt for å peke på deg.

    Lesere pekte også på en annen SuperUser-tråd som fremhever hvordan du kan bruke et Visual Basic-skript for å gå utover å minimere synligheten og rett og slett skjule CMD-spørringen. I den tråden forklarer Harry MC:

    Løsning 1:

    Lagre denne linjen med tekst som fil invisible.vbs:

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

    For å kjøre et program eller en batchfil usynlig, bruk den slik:

    wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Some Other Place \ MyBatchFile.bat"

    For å også kunne passere på / relé, bruker en liste over argumenter kun to dobbelte sitater

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

    for eksempel: Invisible.vbs "Kill.vbs ME.exe"

    Løsning 2:

    Bruk et kommandolinjeverktøy til å stille en prosess stille: Stille.

    Ved å bruke noen av de ovennevnte løsningene, basert på komfortnivået ditt ved hjelp av VBS og tredjepartsverktøy, eller ikke, vil det minst redusere synligheten til CMD-vinduet eller fjerne det umiddelbart.


    Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.