
Dnešná relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, skupín webových stránok týkajúcich sa otázok a odpovedí.
Otázka
Reader SuperUser Jake chce spustiť súbor BAT neviditeľne, píše:
I have installed a ruby gem called Redcar, which is launched from the command line. When it runs, it steals the shell until it terminates, so I have to create a new shell window to continue doing command line work. The shell I’m using is the GITBash shell from MySysGit.
I found a Redcar.bat file which is meant to launch Redcar as a shortcut, I presume, but I don’t want the extra command prompt window to open whenever I launch the BAT file.
How do I just run the BAT without seeing the prompt?
Existuje riešenie pre skrytú túžbu Jakeho?
Odpovede
Dodávateľ SuperUser Afrazier reaguje kombináciou zlých a dobrých správ:
You can’t - executing a batch file with the built in Command Prompt is going to keep a window open until the batch file exits.
What you can do is take steps to make sure that the batch file exits as quickly as possible. If at all possible, modify the batch file to run whatever program with the
start
Príkaz. Predvolene,
start
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 vystúpiť. Pár, ktoré s úpravou skratky pre spustenie dávkového súboru minimalizované, a uvidíte len na hlavnom paneli blikať, bez toho, aby sa dokonca ani vidieť okno na obrazovke.
Jedna upozornenie na túto skutočnosť spočíva v tom, že ak používate program v režime konzoly, čo je mnoho interpretov skriptov, dávkový súbor čaká na ukončenie programu a použitie
start
vytvorí nové okno konzoly. Čo musíte urobiť v tomto prípade, je spustiť verziu interpreta pre systém Windows namiesto konzoly - nie
start
nevyhnutné. Pre Perl by ste bežali
wperl.exe
namiesto
perl.exe
Pre Python je to
pythonw.exe
namiesto
python.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ýchto veciach, ale nikdy som ich nepoužíval, 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 tomto texte vysvetľuje Harry MC:
Solution 1:
Save this one line of text as file
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"
Ak chcete takisto preniesť / odovzdať zoznam argumentov, použite len dve dvojité úvodzovky
CreateObject ("Wscript.Shell") Spustite "" & WScript.Arguments (0) &"", 0, False
napr.: Invisible.vbs "Kill.vbs ME.exe"
Riešenie 2:
Pomocou príkazového riadku spustite tichý proces: Ticho.
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? Zvuk vypnúť v komentároch. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.