If-Koubou

Czy mogę uruchomić plik wsadowy Windows bez widocznego wiersza polecenia?

Czy mogę uruchomić plik wsadowy Windows bez widocznego wiersza polecenia? (Jak)

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.

Pytanie

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?

Odpowiedzi

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 zpoczątek dowództwo. Domyślnie,początekpowraca 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życiepoczą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 plikinvisible.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.