Môžem spustiť dávkový súbor systému Windows bez viditeľného príkazového riadka?
Dávkové súbory sú šikovným spôsobom, ako vykonať sériu príkazov v systéme Windows, ale je tam taktiež neviditeľne spustené na pozadí? Prečítajte si o tom, ako zistiť, ako.
Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, zoskupenia webových stránok typu Q & A.
Otázka
Čítačka SuperUser Jake chce neviditeľne spustiť súbor BAT, píše:
Nainštaloval som rubín, nazývaný Redcar, ktorý je spustený z príkazového riadku. Keď to beží, ukradne shell, kým sa nezastaví, takže musím vytvoriť nové okno pre shell, aby som pokračovala v práci na príkazovom riadku. Plášť, ktorý používam, je shell GITBash z MySysGit.
Našiel som súbor Redcar.bat, ktorý je určený na spustenie Redcar ako skratku, predpokladám, ale nechcem, aby sa okno extra príkazového riadka otvorilo pri každom spustení súboru BAT.
Ako môžem spustiť BAT bez zobrazenia výzvy?
Existuje riešenie pre neistú túžbu Jakeu?
Odpovede
Príspevok SuperUser Afrazier reaguje kombináciou zlých a dobrých správ:
Nemôžete - spúšťanie dávkového súboru so zabudovaným príkazovým riadkom bude mať otvorené okno, kým sa dávkový súbor nevypne.
Čo ty môcť urobiť kroky, aby sa zabezpečilo, že dávkový súbor sa skončí čo najrýchlejšie. Ak je to možné, modifikujte dávkový súbor tak, aby sa spustil ľubovoľný program s
štart
Príkaz. Predvolene,štart
vráti sa ihneď bez čakania na ukončenie programu, takže dávkový súbor bude naďalej bežať a pravdepodobne okamžite opustiť program. Pár, ktoré s úpravou skratky na spustenie dávkového súboru minimalizované, a uvidíte len na hlavnom paneli blikať bez toho, aby dokonca vidieť okno na obrazovke.Jednou výzvou je, že ak používate program v režime konzoly, čo je množstvo interpretov skriptov, dávkový súbor čaká na ukončenie programu a používanie
štart
vytvorí nové okno konzoly. Čo musíte urobiť v tomto prípade, je spustiť verziu interpreta pre systém Windows namiesto konzoly - nieštart
nevyhnutné. Pre Perl by ste bežaliwperl.exe
namiestoperl.exe
. Pre Python je topythonw.exe
namiestopython.exe
. Stará distribucia win32 Ruby, ktorú som stiahol, márubyw.exe
, čo by malo robiť to isté.Poslednou možnosťou je použiť nástroj tretej strany na spustenie príkazového riadka so skrytým oknom. Počul som o takých veciach, ale nikdy som ich nepoužil, takže neviem nič o tom, aby som vás poukázal.
Čitatelia tiež poukázali na ďalšie vlákno SuperUser, ktoré poukazuje na to, ako môžete použiť Visual Basic Script, aby ste prekročili minimalizáciu viditeľnosti a úplne skryli výzvu CMD. V tejto téme vysvetľuje Harry MC:
Riešenie 1:
Uložiť tento riadok textu ako súbor
invisible.vbs
:CreateObject ("Wscript.Shell") Spustite "" "& WScript.Arguments (0) &" "", 0, False
Ak chcete spustiť akýkoľvek program alebo dávkový súbor neviditeľne, použite ho takto:
wscript.exe "C: \ Kdekoľvek \ invisible.vbs" "C: \ Niektoré iné miesto \ MyBatchFile.bat"
Na to, aby bolo možné prenášať / prenášať zoznam argumentov, používajte iba dve dvojité úvodzovky
CreateObject ("Wscript.Shell") Spustite "" & WScript.Arguments (0) & "", 0, False
napr .: Invisible.vbs "Kill.vbs ME.exe"
Riešenie 2:
Použite nástroj príkazového riadku na tiché spustenie procesu: Tichý.
Využitie niektorého z vyššie uvedených riešení na základe vašej úrovne pohodlia pomocou VBS a nástrojov tretích strán minimálne zníži viditeľnosť okna CMD alebo úplne odstráni.
Máte niečo doplniť vysvetlenie? Vyjadrite sa v komentároch. Chcete sa dozvedieť viac odpovedí od iných používateľov technickej úrovne Stack Exchange? Pozrite sa na celý diskusný príspevok tu.