To pytanie ma już odpowiedź tutaj:
Zainstalowałem rubinowy klejnot o nazwie Redcar, który jest uruchamiany z wiersza poleceń. Kiedy działa, kradnie powłokę, dopóki się nie skończy, więc muszę utworzyć nowe okno powłoki, aby kontynuować pracę z wierszem poleceń. Powłoka, której używam, to powłoka GITBash od MySysGit.
Znalazłem plik Redcar.bat, który ma uruchamiać Redcar jako skrót, jak sądzę, ale nie chcę, aby dodatkowe okno wiersza polecenia otwierało się przy każdym uruchomieniu pliku BAT.
Jak po prostu uruchomić BAT bez wyświetlania monitu?
windows
command-line
batch
Jake
źródło
źródło
set var1=hello.txt
linia 2:start "test" notepad.exe "%~dp0%var1%"
::
lub@REM
. Źródło: superuser.com/a/843754/101936Odpowiedzi:
Nie możesz - wykonanie pliku wsadowego za pomocą wbudowanego wiersza polecenia spowoduje, że okno pozostanie otwarte, dopóki plik wsadowy nie zostanie zamknięty.
Co można zrobić, to podjąć kroki, aby upewnić się, że plik wsadowy wychodzi tak szybko, jak to możliwe. Jeśli to możliwe, zmodyfikuj plik wsadowy, aby uruchomić dowolny program z
start
poleceniem. Domyślniestart
wraca natychmiast, nie czekając na zamknięcie programu, więc plik wsadowy będzie nadal działał i prawdopodobnie natychmiast zakończy działanie. W połączeniu ze zmodyfikowaniem skrótu, aby uruchomić plik wsadowy zminimalizowany, zobaczysz tylko pasek zadań migający, nawet nie widząc okna na ekranie.Jednym zastrzeżeniem jest to, że jeśli używasz programu w trybie konsoli, którym jest wiele interpreterów skryptów, plik wsadowy będzie czekał na zakończenie programu, a użycie
start
spowoduje odrodzenie nowego okna konsoli. W tym przypadku musisz uruchomić wersję interpretera opartą na Windows zamiast konsoli - nie jest tostart
konieczne. W przypadku Perla uruchomiłeśwperl.exe
zamiastperl.exe
. W przypadku Pythona jest topythonw.exe
zamiastpython.exe
. Pobrana przeze mnie stara dystrybucja Ruby Win32rubyw.exe
, która powinna 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 znam niczego konkretnego, co mogłoby cię wskazać.
źródło
Myślę, że jest to najłatwiejsze i najkrótsze rozwiązanie do uruchamiania pliku wsadowego bez otwierania okna DOS, może być bardzo rozpraszające, gdy chcesz zaplanować okresowe uruchamianie zestawu poleceń, więc okno DOS ciągle się wyświetla, oto twoje rozwiązanie . Użyj skryptu VB, aby wywołać plik wsadowy ...
Skopiuj powyższe wiersze do edytora i zapisz plik z rozszerzeniem .VBS. Edytuj odpowiednio nazwę pliku i ścieżkę .BAT. Następnie wystarczy uruchomić plik .vbs i magia się dzieje!
źródło
Możesz uruchomić inny plik wsadowy za pomocą START / MIN CMD.EXE / C mybatchfile.bat z poziomu wiersza polecenia.
Z zewnątrz pojawi się okno konsoli cmd, ale aby tego uniknąć, możesz utworzyć plik skrótu z właściwościami zmodyfikowanymi w celu zminimalizowania .
źródło
Aby to zrobić, użyj programu Bat To Exe Converter, aby przekonwertować plik wsadowy na plik wykonywalny.
Podczas konwersji do pliku wykonywalnego znajdziesz opcję uruchomienia pliku jako aplikacji niewidocznej w sekcji widoczności. Tak więc, kiedy go uruchomisz, będzie działał bez okna.
źródło
Kontynuując odpowiedź Dennisa Williamsona, możesz edytować plik wsadowy i dołączać (poprzedzać)
START /B
do wykonywanego polecenia.Na przykład mam plik wsadowy, który uruchamia szpachlę i miałem ten sam problem (dodatkowe CMD), więc tak to napisałem:
Działa idealnie.
źródło
Wypróbuj to:
notatka dodana przez barlop
początek /? mówi o / B
źródło
Nie jestem pewien co do twojego problemu, ale w przypadku niektórych moich plików wsadowych używam „manekina”, którego jedynym celem jest uruchomienie głównego pliku wsadowego.
GO.BAT będzie miał:
Wyjście zamyka okno wiersza poleceń, które w innym przypadku pozostałyby otwarte.
A GO2.BAT będzie zawierał zawartość pliku wsadowego, której chciałbym.
źródło
Możesz użyć RunHiddenConsole
hideExec.bat
źródło
Jeśli nadal nie chcesz pokazywać okna konsoli, oto rozwiązanie z stackoverflow, które działało dla mnie (w moim przypadku nie wpisałem niczego do rejestru, ale tam, gdzie było to potrzebne).
źródło
Wystarczy umieścić przełącznik / b przed ścieżką. Nie otworzy drugiego wiersza polecenia.
źródło
Jak dotąd odpowiedź Indago była dla mnie najlepszym rozwiązaniem. Plik VBS pozwala mi uruchomić funkcjonalność partii za pomocą skryptu, zapobiegając przede wszystkim działaniu okna CMD. Jest jednak kilka zastrzeżeń:
Jeśli partia wymaga uprawnień administratora, utwórz lub użyj istniejącej partii, która wywołuje VBS i uruchom ją jako Administrator.
Bez widoczności może być trudno stwierdzić, czy to, co próbujesz zrobić, działa tak, jak chcesz.
Mając to na uwadze, najpierw zintegruję trochę próbnej konfiguracji / testu jednostkowego, aby upewnić się, że działa dokładnie tak, jak chcesz, zanim go zintegrujesz.
źródło
Użyłem cmdow w przeszłości, i wydaje się, że pracował na to, co chcę.
Prawdopodobnie będziesz chciał użyć jednej z następujących opcji:
CMDOW [window] /HID
/HID
ukrywa określone oknoCMDOW [window] /END
/END
zamyka określone oknoCMDOW [window] /CLS
/CLS
uprzejmie poprosił okno o zamknięcie (niektóre okna mogą otwierać okno dialogowe)Mam nadzieję że to pomoże.
źródło
Po prostu zrób skrót do pliku wsadowego, kliknij go prawym przyciskiem myszy, kliknij
Properties
, przejdź doGeneral
karty, zaznacz pole o nazwieHidden
, kliknij,Apply
a następnieOK
.Teraz, gdy otworzysz skrót, uruchomi on plik wsadowy Ukryty.
źródło