Główna » jak » Czy mogę uruchomić plik wsadowy Windows bez widocznego wiersza polecenia?

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

    Pliki wsadowe to przydatny sposób 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, opartego na społecznościach grupowania witryn 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 uruchomieniu pliku BAT.

    Jak po prostu uruchomić BAT, nie widząc zachęty?

    Czy istnieje rozwiązanie dla ukradkowego, szybkiego pragnienia Jake'a?

    Odpowiedzi

    Pomocnik SuperUser Afrazier odpowiada kombinacją złych i dobrych wiadomości:

    Nie możesz - wykonanie pliku wsadowego z wbudowanym wierszem poleceń spowoduje pozostawienie otwartego okna do momentu wyjścia pliku wsadowego.

    Co ty mogą 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ę. Jeśli zmodyfikujesz skrót do uruchamiania pliku wsadowego, zminimalizujesz go, 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 będzie 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 - nie początek niezbędny. Dla Perla uciekłbyś wperl.exe zamiast perl.exe. Dla Pythona jest pythonw.exe zamiast python.exe. Stara dystrybucja Ruby Ruby, którą pobrałem, ma rubyw.exe, który powinien 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 także inny wątek SuperUser, który pokazuje, w jaki sposób można użyć skryptu Visual Basic, aby wyjść poza minimalizowanie widoczności i 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 w trybie cichym 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.