Ar galiu paleisti „Windows“ paketinį failą be „Visible Command Prompt“?
Paketiniai failai yra patogus būdas paleisti komandų seriją „Windows“, tačiau ar vistiek juos paleisti nepastebimai fone? Skaitykite toliau.
Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.
Klausimas
„SuperUser“ skaitytuvas „Jake“ nori paleisti BAT failą nematomas, rašo:
Aš įdiegiau rubino perlas, vadinamą „Redcar“, kuris paleidžiamas iš komandų eilutės. Kai jis veikia, jis pavagia apvalkalą, kol jis baigsis, todėl turiu sukurti naują lukšto langą, kad galėčiau daryti komandų eilutės darbą. Naudojamasis korpusas yra „MySysGit“ GITBash apvalkalas.
Radau „Redcar.bat“ failą, kuris skirtas „Redcar“ paleisti kaip nuorodą, manau, bet aš nenoriu, kad papildomas komandų eilutės langas būtų atidarytas, kai paleidžiu „BAT“ failą.
Kaip tiesiog paleisti GPGB, nepastebėjus užklausos?
Ar yra „Jake“ slapto greito noro sprendimas?
Atsakymai
„SuperUser“ agentas „Afrazier“ reaguoja su blogų ir gerų naujienų deriniu:
Jūs negalite - vykdant paketinį failą su įmontuota komandų eilute, langas bus atidarytas, kol bus baigtas paketinis failas.
Ką tu gali reikia imtis veiksmų, kad įsitikintumėte, jog partijos failas išeina kuo greičiau. Jei įmanoma, pakeiskite paketinį failą ir paleiskite bet kurią programą su
pradėti
komandą. Pagal numatytuosius nustatymus,pradėti
grįžta iš karto, nelaukiant, kol programa išeis, todėl partijos failas ir toliau bus rodomas ir, greičiausiai, iš karto išeis. Pora, kad pakeisite nuorodą, kad paleistumėte paketinį failą iki minimumo, ir matysite užduočių juostą tik tada, kai net nematysite lango ekrane.Vienas iš įspėjimų yra tai, kad jei naudojate konsolės režimo programą, kurią sudaro daugelis scenarijų vertėjų, paketinis failas laukia, kol programa išeis ir naudos
pradėti
atvers naują konsolės langą. Šiuo atveju reikia atlikti „Windows“ versijos vertėjo, o ne konsolės, versiją - nepradėti
būtina. Perlui, tu bėgtumwperl.exe
vietojperl.exe
. Pythonui tai yrapythonw.exe
vietojpython.exe
. Seni Win32 Ruby platinimai, kuriuos aš atsisiunčiau, yrarubyw.exe
, kuris turėtų daryti tą patį.Galutinė galimybė yra naudoti trečiosios šalies įrankį, kad paleistumėte komandų eilutę paslėptuoju langu. Aš girdėjau apie tokius dalykus, bet niekada jų nenaudojau, todėl aš nieko nežinau, kad galėčiau jus nukreipti.
Skaitytojai taip pat pažymėjo jį į kitą „SuperUser“ siūlą, kuriame pabrėžiama, kaip galite naudoti „Visual Basic Script“, kad būtų išvengta minimalaus matomumo ir visiškai paslėpti CMD užklausą. Šioje temoje Haris MC paaiškina:
1 sprendimas:
Išsaugokite vieną teksto eilutę kaip failą
invisible.vbs
:„CreateObject“ („Wscript.Shell“). Vykdykite “” ”& WScript.Arguments (0) &“ ””, 0, False
Jei norite paleisti bet kokią programą ar paketinį failą nematomai, naudokite jį taip:
wscript.exe „C: kur invisible.vbs“ „C: bet kuri kita vieta MyBatchFile.bat“
Jei norite, kad būtų galima perduoti / perduoti argumentų sąrašą, naudokite tik dvi dvigubas kabutes
„CreateObject“ („Wscript.Shell“). „Run“ ir „WScript.Arguments“ (0) & „”, 0, False
pvz., „Invisible.vbs“ „Kill.vbs ME.exe“
2 sprendimas:
Jei norite tyliai paleisti procesą, naudokite komandinės eilutės įrankį: tyli.
Naudojant bet kurį iš pirmiau minėtų sprendimų, remiantis jūsų komforto lygiu, naudojant VBS ir trečiųjų šalių įrankius, ar ne, sumažins CMD lango matomumą arba visiškai pašalins jį.
Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.