Днешната сесия за въпроси и отговори ни идва с любезното съдействие на SuperUser - подразделение на Stack Exchange - обединяване на уеб сайтове с въпроси и отговори.
Въпроса
Reader на SuperUser Джейк иска да види невидимо файл с BAT, пише:
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?
Има ли решение за ловкото желание на Джейк?
Отговорите
Contributor на SuperUser Afrazier отговаря с комбинация от лоши и добри новини:
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
команда. По подразбиране,
start
връща незабавно, без да чака програмата да излезе, така че партидният файл ще продължи да работи и вероятно ще излезе незабавно. Двойка, че с модифициране на вашия пряк път, за да стартирате пакета файла минимизирани, и ще видите лентата на задачите да мигат, без дори да видите прозорец на екрана.
Едно предупреждение за това е, че ако работите с конзолна програма, която има много интерпретатори на скриптове, партидният файл ще изчака програмата да излезе и да използва
start
ще създаде нов прозорец на конзолата. Това, което трябва да направите в този случай, е стартирането на базираната на Windows версия на интерпретатора, вместо на базата на конзолата - не
start
необходимо. За Перл ще тичаш
wperl.exe
вместо
perl.exe
За Питън, това е
pythonw.exe
вместо
python.exe
Старата win32 Ruby дистрибуция, която изтеглех има
rubyw.exe
което трябва да направи същото.
Последната възможност е да използвате инструмент от трета страна, за да стартирате командния ред със скрит прозорец. Чувал съм за такива неща, но никога не е имал полза за тях, така че не знам нищо особено да ви насочвам.
Читателите също го насочиха към друга тема на SuperUser, която подчертава как можете да използвате Visual Basic Script, за да отидете да минимизирате видимостта и да скриете CMD подкана. В тази тема Хари MC обяснява:
Solution 1:
Save this one line of text as file
invisible.vbs
:
CreateObject ("Wscript.Shell") Изпълнете "" "& WScript.Arguments (0) &" "", 0, False
За да стартирате невидима програма или партиден файл, използвайте я така:
wscript.exe "C: Където invisible.vbs" "C: Някои други места MyBatchFile.bat"
За да можете да предавате / препредавате списък от аргументи, използвайте само две двойни кавички
CreateObject ("Wscript.Shell") Изпълнете "" & WScript.Arguments (0) &"", 0, False
например: Invisible.vbs "Kill.vbs ME.exe"
Решение 2:
Използвайте инструмент за командния ред, за да стартирате безшумно процес: Тих.
Използването на някое от горепосочените решения, базирано на вашето ниво на комфорт, използващо или не VBS и други инструменти, ще намали видимостта на CMD прозореца или ще го премахне.
Имате ли нещо, което да добавите към обяснението? Звучи в коментарите. Искате ли да прочетете повече отговори от други потребители на Stack Exchange? Вижте цялата тема на дискусията тук.