A mai Kérdések és válaszok munkamenetét a SuperUser - a Stack Exchange, a Q & A weboldalak közösség által irányított csoportosulásának részlegével - köszönheti.
A kérdés
A SuperUser olvasó Jake látszólag egy BAT fájlt szeretne futtatni, írja:
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?
Van megoldás Jake lopakodó vágyára?
A válaszok
A SuperUser közreműködője, Afrazier rossz és jó hír kombinációjával válaszol:
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
parancs. Alapértelmezés szerint,
start
azonnal visszatér a program kilépése nélküli várakozás nélkül, így a kötegelt fájl továbbra is fut, és valószínűleg azonnal kilép. Pár, hogy a parancsikon módosításával a kötegelt fájl futtatása minimálisra csökkent, és csak akkor látja a tálcát villogva anélkül, hogy ablakot látna a képernyőn.
Ennek egyik figyelmeztetése, hogy ha egy konzol módú programot futtat, amely sok szkriptterminál, akkor a kötegelt fájl várni fogja a program kilépését, és a
start
új konzol ablakot hoz létre. Ebben az esetben a konzol-alapú helyett a tolmács Windows-alapú verzióját kell futtatni
start
szükséges. Perl számára futni fogsz
wperl.exe
ahelyett
perl.exe
. Python számára ez
pythonw.exe
ahelyett
python.exe
. A régi win32 Ruby eloszlás, amit letöltöttem
rubyw.exe
amely ugyanezt teszi.
A végső lehetőség egy harmadik féltől származó eszköz használata a parancssori parancs futtatásához rejtett ablakban. Hallottam már ilyen dolgokról, de soha nem használtam őket, így nem tudok semmit, ami arra mutatna rád.
Az olvasók egy másik SuperUser szálra is rámutattak, amely rávilágít arra, hogyan használhatja a Visual Basic szkriptet, hogy túlléphesse a láthatóság minimalizálását és a CMD prompt azonnali elrejtését. Ebben a szálban Harry MC elmagyarázza:
Solution 1:
Save this one line of text as file
invisible.vbs
:
CreateObject ("Wscript.Shell") Run "" "" & WScript.Arguments (0) &"" "", 0, hamis
A program vagy a kötegelt fájl láthatatlan módon történő futtatásához használja ezt így:
wscript.exe "C: Bárhol invisible.vbs" "C: Néhány más hely MyBatchFile.bat"
Az argumentumok listájának áttöltéséhez / továbbításához is csak két kettős idézetet használjon
CreateObject ("Wscript.Shell") Run "" & WScript.Arguments (0) &"", 0, hamis
pl.: Invisible.vbs "Kill.vbs ME.exe"
2. megoldás:
Használjon parancssori eszközt a folyamat csendes indításához: Csendes.
A fenti megoldások közül bármelyik, a VBS és a harmadik fél eszközeinek használatával a kényelem szintjén alapulva minimálisra csökkenti a CMD ablak láthatóságát, vagy teljesen eltávolítja.
Van valami a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.