Kotisivu » miten » Voinko suorittaa Windowsin erätiedoston ilman näkyvää komentokehystä?

    Voinko suorittaa Windowsin erätiedoston ilman näkyvää komentokehystä?

    Erätiedostot ovat kätevä tapa suorittaa joukko komentoja Windowsissa, mutta onko niissä kuitenkin juoksevia niitä näkymättömästi taustalla? Lue, miten.

    Nykypäivän Kysymys- ja vastaus -istunto tulee meille suotuisasti SuperUserin - Stack Exchange -alueen, yhteisöpohjaisen Q & A-sivustojen ryhmittymän - kautta..

    Kysymys

    SuperUser-lukija Jake haluaa ajaa BAT-tiedostoa näkymättömästi, hän kirjoittaa:

    Olen asentanut Ruby-helmi nimeltä Redcar, joka käynnistetään komentoriviltä. Kun se toimii, se varastaa kuoren, kunnes se päättyy, joten minun on luotava uusi shell-ikkuna jatkamaan komentorivityötä. Käyttämäni kuori on MySysGitin GITBash-kuori.

    Löysin Redcar.bat-tiedoston, jonka tarkoituksena on käynnistää Redcar pikakuvakkeeksi, mutta en halua, että ylimääräinen komentoriviikkuna avautuu aina, kun käynnistän BAT-tiedoston.

    Miten voin vain käyttää BAT-tekniikkaa ilman, että kehotan näkyviin?

    Onko olemassa ratkaisu Jakin varkaaseen nopeaan haluun?

    Vastaukset

    SuperUserin avustaja Afrazier vastaa yhdistämällä huonoja ja hyviä uutisia:

    Et voi - erätiedoston suorittaminen sisäänrakennetulla komentorivillä pitää ikkunan auki, kunnes erätiedosto poistuu.

    Mitä sinä voida tehdä on varmistaa, että erätiedosto poistuu mahdollisimman nopeasti. Jos mahdollista, muokkaa erätiedostoa suorittamaan mikä tahansa ohjelma alkaa komento. Oletuksena, alkaa palaa välittömästi odottamatta ohjelman poistumista, joten erätiedosto jatkuu ja oletettavasti poistuu välittömästi. Yhdistä se pikakuvakkeen muokkaamiseen, jotta erätiedosto voidaan minimoida, ja näet vain tehtäväpalkin salaman näkymättä edes ikkunaa ikkunassa.

    Yksi varoitus tähän on, että jos käytät konsolimoodiohjelmaa, jota monet käsikirjoitustulkit ovat, erätiedosto odottaa ohjelman poistumista ja käyttävän alkaa kutee uuden konsolin ikkunan. Tässä tapauksessa sinun on suoritettava tulkin Windows-pohjainen versio konsolipohjaisen yhden sijasta - no alkaa välttämätön. Perlille ajaisi wperl.exe sijasta perl.exe. Pythonille se on pythonw.exe sijasta python.exe. Vanha Win32 Ruby -jakauma, jonka olen ladannut, on rubyw.exe, jonka pitäisi tehdä sama asia.

    Viimeinen mahdollisuus on käyttää kolmannen osapuolen työkalua komentokehotteen piilottamiseen piilotetun ikkunan avulla. Olen kuullut tällaisista asioista, mutta en ole koskaan käyttänyt niitä, joten en tiedä mitään erityisesti siitä, että viittaisin sinuun.

    Lukijat viittasivat häneen myös toiseen SuperUser-kierteeseen, joka korostaa, miten voit käyttää Visual Basic Script -ohjelmaa ylittämään näkyvyyttä ja piilottaa CMD-kehotteen. Harry MC selittää, että

    Ratkaisu 1:

    Tallenna tämä tekstirivi tiedostoksi invisible.vbs:

    CreateObject ("Wscript.Shell"). Suorita "" "& WScript.Arguments (0) &" "", 0, False

    Voit käyttää mitä tahansa ohjelmaa tai erätiedostoa näkymättömästi seuraavasti:

    wscript.exe “C: missä tahansa invisible.vbs” ”C: jokin muu paikka MyBatchFile.bat”

    Voit myös siirtää / välittää uudelleen argumenttiluettelon vain kahdella kaksinkertaisella lainauksella

    CreateObject ("Wscript.Shell"). Suorita "" & WScript.Arguments (0) & "", 0, False

    esim. Invisible.vbs “Kill.vbs ME.exe”

    Ratkaisu 2:

    Käynnistä prosessi komentorivityökalulla hiljaa.

    Käyttämällä mitä tahansa edellä mainituista ratkaisuista, jotka perustuvat mukavuustasoon VBS: n ja kolmannen osapuolen työkalujen avulla, vähennetään vähintään CMD-ikkunan näkyvyyttä tai poista se suoraan.


    Onko jotain lisättävää selitykseen? Ääni pois kommenteista. Haluatko lukea lisää vastauksia muilta tech-savvy Stack Exchange -käyttäjiltä? Tutustu koko keskusteluketjuun täällä.