Pliki wsadowe są wygodnym sposobem na wykonanie szeregu poleceń w systemie Windows, ale czy mimo to można je uruchamiać niewidocznie w tle? Czytaj dalej, dowiedz się, jak to zrobić.
Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.
Czytnik SuperUser Jake chce niewidocznie uruchomić plik BAT, pisze:
Zainstalowałem rubinowy klejnot o nazwie Redcar, który jest uruchamiany z wiersza poleceń. Po uruchomieniu kradnie powłokę, dopóki się nie zakończy, więc muszę utworzyć nowe okno powłoki, aby kontynuować pracę z wierszem poleceń. Używam powłoki GitBash z MySysGit.
Znalazłem plik Redcar.bat, który ma uruchomić Redcar jako skrót, jak sądzę, ale nie chcę, aby dodatkowe okno wiersza polecenia otwierało się po każdym uruchomieniu pliku BAT.
Jak uruchomić BAT, nie widząc podpowiedzi?
Czy istnieje rozwiązanie dla skradającego się szybkiego pożądania Jake'a?
Pomocnik SuperUser Afrazier odpowiada kombinacją złych i dobrych wiadomości:
Nie można - wykonanie pliku wsadowego z wbudowanym wierszem poleceń spowoduje pozostawienie otwartego okna do momentu wyjścia z pliku wsadowego.
Co tymogą wykonaj kroki, aby upewnić się, że plik wsadowy zostanie zamknięty tak szybko, jak to możliwe. Jeśli to możliwe, zmodyfikuj plik wsadowy, aby uruchomić dowolny program z
początek
dowództwo. Domyślnie,początek
powraca natychmiast, nie czekając na zakończenie programu, więc plik wsadowy będzie nadal działał i prawdopodobnie natychmiast zakończy pracę. Połącz to, modyfikując skrót, tak aby plik wsadowy został zminimalizowany, a pasek zadań będzie widoczny tylko wtedy, gdy nie zobaczysz nawet okna na ekranie.Jedynym zastrzeżeniem jest to, że jeśli używasz programu w trybie konsoli, który jest używany przez wiele interpreterów skryptów, plik wsadowy czeka na zakończenie programu i użycie
początek
spowoduje utworzenie nowego okna konsoli. W tym przypadku musisz uruchomić wersję interpretera opartą na Windows zamiast konsoli - niepoczątek
niezbędny. Dla Perla uciekłbyśwperl.exe
zamiastperl.exe
. Dla Pythona jestpythonw.exe
zamiastpython.exe
. Stara dystrybucja Ruby Ruby, którą pobrałem, marubyw.exe
, co powinno zrobić to samo.Ostatnią możliwością jest użycie narzędzia innej firmy do uruchomienia wiersza polecenia z ukrytym oknem. Słyszałem o takich rzeczach, ale nigdy nie miałem z nich pożytku, więc nie wiem nic konkretnego, żeby ci wskazać.
Czytelnicy wskazali mu również inny wątek SuperUser, który pokazuje, w jaki sposób można użyć Skryptu Visual Basic, aby wyjść poza minimalizację widoczności i natychmiast ukryć monit CMD. W tym wątku Harry MC wyjaśnia:
Rozwiązanie 1:
Zapisz tę jedną linię tekstu jako plik
invisible.vbs
:CreateObject ("Wscript.Shell") Uruchom "" "" i WScript.Arguments (0) i "" "", 0, fałsz
Aby uruchomić dowolny program lub plik wsadowy niewidoczny, użyj go tak:
wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Some Other Place \ MyBatchFile.bat"
Aby móc przekazywać / przekazywać listę argumentów, używaj tylko dwóch podwójnych cudzysłowów
CreateObject ("Wscript.Shell"). Uruchom "" i WScript.Arguments (0) i "", 0, fałsz
eg: Invisible.vbs "Kill.vbs ME.exe"
Rozwiązanie 2:
Użyj narzędzia wiersza poleceń, aby cicho uruchomić proces: Cichy.
Wykorzystanie któregokolwiek z powyższych rozwiązań, w oparciu o Twój poziom komfortu przy użyciu VBS i narzędzi innych firm, spowoduje co najmniej zmniejszenie widoczności okna CMD lub całkowite usunięcie go.
Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.