Szukam sposobu na uruchomienie pliku wsadowego (.bat) bez niczego widocznego dla użytkownika (bez okna, bez nazwy paska zadań, .etc ..).
Nie chcę używać do tego żadnego programu, szukam czegoś czystszego. Znalazłem rozwiązanie, które używa VBScript, ale tak naprawdę nie lubię używać VBS.
windows
command-line
batch-file
Moayad Mardini
źródło
źródło
Odpowiedzi:
Rozwiązanie 1:
Zapisz ten jeden wiersz tekstu jako plik
invisible.vbs
:Aby uruchomić dowolny program lub plik wsadowy niewidocznie, użyj go w następujący sposób:
Aby móc przekazywać / przekazywać listę argumentów, użyj tylko dwóch podwójnych cudzysłowów
Przykład:
Invisible.vbs "Kill.vbs ME.exe"
Rozwiązanie 2:
Użyj narzędzia wiersza polecenia, aby cicho uruchomić proces: Quiet , hidecon lub hideexec .
źródło
&
oznacza konkatenację łańcuchów. Ciągi są ujęte w podwójne cudzysłowy ("
). Kolejne podwójne cudzysłowy (""
) wewnątrz ograniczników ciągów oznaczają dosłowne podwójne cudzysłowy ("
). Tak więc cztery podwójne cudzysłowy (""""
) byłyby dosłownym ciągiem jednego znaku, podwójnego cudzysłowu ("
). Złóż go razem, i"""" & WScript.Arguments(0) & """"
stanie się"<argument>"
, gdzie<argument>
jest pierwszy argument wiersza poleceń przekazywany do skryptu.wscript.exe "C:\Wherever\invisible.vbs" ...
środku?Aby ukryć pliki wsadowe lub pliki poleceń lub dowolne pliki ... Użyj wbudowanego
IExpress.exe
narzędzia systemu Windows XP , aby zbudować plik .EXE z pliku wsadowego. Korzystając zIExpress
tej opcji, zaznacz opcję Uruchom ukryty i zaznacz wszystkie pola, aby nic nie pokazywać. Po utworzeniu pliku .exe umieść go w dowolnym folderze poleceń uruchamiania i nigdy go nie zobaczysz.źródło
use Cmdow to narzędzie wiersza polecenia Win32 dla NT4 / 2000 / XP / 2003, które pozwala wyświetlać okna, przenosić, zmieniać ich rozmiary, zmieniać nazwy, ukrywać / ukrywać, wyłączać / włączać, minimalizować, maksymalizować, przywracać, aktywować / dezaktywować, zamykać, zabijać i więcej.
Uruchom ukryty plik wsadowy przekazując mu parametry: -
źródło
Jeśli Twój plik wsadowy może zmieścić się w jednej linii i tak wielu znakach, po prostu użyj skrótu, klikając prawym przyciskiem myszy folder umieszczony w losowym katalogu i pomiń resztę kreatora, a na koniec kliknij prawym przyciskiem myszy właśnie utworzony skrót i kliknij właściwości i poniżej celu wprowadź to, co zwykle umieszczasz w pliku nietoperza. A Bobsleje twój wujek!
Plusy:
Cons:
źródło
Uruchom skrypt za pośrednictwem zadania, nie czyniąc go interaktywnym:
Inne rozwiązanie, jeśli nie masz nic przeciwko instalowaniu czegoś takiego jak Python, możesz po prostu utworzyć skrypt i uruchomić go za pomocą
pythonw
(połączonej wersji dla operacji GUI). Ponieważ nie używasz żadnych graficznych interfejsów API, okno nie zostanie wyświetlone. Wystarczy użyć wywołań do,os.system()
a naśladuje skrypt wsadowy, ponieważ jest to to samo, co wpisywanie ciągów w wierszu polecenia.Przykład:
źródło
Można go łatwo zminimalizować.
źródło
Korzystając z systemu Windows7, możesz użyć panelu sterowania „Zaplanowane zadanie”, aby zaplanować uruchamianie pliku wsadowego w sposób niewidoczny w tle z określonymi uprawnieniami, a nawet jako konto „SYSTEM”. Zobacz zrzut ekranu poniżej:
Ponadto, chociaż nie ma tak wielu możliwości, możesz również utworzyć niewidoczne zadanie skryptu wsadowego z wiersza poleceń, używając polecenia „AT.exe” bez opcji „/ interactive”.
źródło
Nie lubię rozwiązania VBScript.
Pobierz i skopiuj nircmd.exe do swojego
%systemroot%\system32
folderu, a następnie dodaj to polecenie do pierwszego wiersza partii:lub najpierw ustaw niestandardowy tytuł partii za pomocą
title
polecenia, aby uniknąć ukrywania wszystkichcmd
okien, w ten sposób:źródło
Wygląda na to, że ktoś sporządził listę 7-8 sposobów na „milczenie”:
źródło
Możesz także utworzyć skrypt AutoHotkey :
źródło
JESZCZE INNY sposób, z C / C ++, polega na użyciu funkcji CreateProcess z flagą CREATE_NO_WINDOW. Ma dużo dodatkowej mocy, której tu nie pokazano. To tylko minimum potrzebne do zastąpienia rodziny system () lub _spawn ().
źródło
Doskonały konwerter Bat To Exe konwertuje plik
.bat
lub.cmd
plik na.exe
plik.Ma prosty interfejs użytkownika. Możesz nie mieć okna konsoli, wybierając opcję „Niewidoczna aplikacja”. Pozwala także przypisać ikonę, spakować powiązane pliki i kilka innych opcji.
Oto zrzut ekranu głównego okna interfejsu:
Pamiętaj, że ten obraz jest nieaktualny. Pokazuje wersję 2.4.8, a od września 2018 r. Witryna oferuje wersję 3.0.10.0 (ostatnia aktualizacja 2018-03-23).
Ostrzeżenie: strona internetowa www.f2ko.de prowadzi do linku
coinhive.com
, który jest powszechnie określany jako złośliwe oprogramowanie .źródło
Zrobiłem to z nircmd w ten sposób:
nircmd.exe win hide ititle "cmd.exe"
Teraz będziesz mieć plik .exe, który po dwukrotnym kliknięciu i zainstalowaniu go, twój .bat będzie działał całkowicie ukryty.
źródło
źródło
'cmdow' is not recognized as an internal or external command, operable program or batch file.
Nie musisz robić żadnych specjalnych rzeczy.
Jeśli uruchamiasz pliki wsadowe z usługi Windows, powinny one być domyślnie ukryte, chyba że włączysz opcję „Zezwalaj usłudze na interakcję z komputerem”.
źródło
Utwórz skrypt wsadowy z logiką wsadową i zawartymi w nim poleceniami, a następnie utwórz nowy plik z
.VBS
rozszerzeniem, użyj poniższej logiki (przykład, który przedstawiłem poniżej) i po prostu podłącz pełną ścieżkę do pliku.CMD
lub.BAT
pliku za pomocąPING -t <IPAddress>
poleceń itp., Aby wykonuje partię w ukryty sposób, nie pokazując okna poleceń podczas jej wykonywania.Tam, gdzie logika w poniższym przykładzie określa
C:\Folder\BatchFileName.cmd
zmianę polegającą na wskazaniu skryptu wsadowego za pomocą poleceń uruchamianych ręcznie itp. Teraz.Zapisz
.VBS
plik i zaplanuj go zTask Scheduler
Problemy z planowaniem zadania w systemie Windows7 do uruchomienia w nieokreślonym harmonogramie dla twoich potrzeb.W przeciwnym razie kliknij dwukrotnie
.VBS
plik, aby uruchomić nieskończonePING
polecenie umieszczone w pliku wsadowym, który wskażesz w razie potrzeby.UWAGA: Wydaje mi się, że tutaj właśnie otrzymałem tę logikę skryptu, ale działa ona niezawodnie do tego samego celu, którego potrzebujesz tutaj, czyli do zapewnienia, że okno poleceń jest ukryte, gdy plik wsadowy jest uruchamiany Źródło błędu serwera
PRZYKŁAD VBS SCRIPT RUN COMMAND LINE SERIA UKRYWANIE OKNA CMD
źródło
Tutaj skompilowałem wszystkie sposoby, które znam, aby rozpocząć ukryty proces wsadowy bez zewnętrznych narzędzi. Z gotowymi do użycia skryptami (niektóre z nich dość bogate w opcje), a wszystkie z nich tworzą linię poleceń. Możliwe jest również Zwracany jest PID. Użyte narzędzia to IEXPRESS, SCHTASKS, WScript.Shell, Win32_Process i JScript.Net
źródło
Mimo że już odpowiedziałem na to, oto inne podejście. Różni się to tym, że skrypt wsadowy może sam się ukryć podczas uruchamiania. Potrzebne będą jednak dwa dodatkowe skrypty - windowMode.bat i getCMDPid.bat (oba zawierają
.net
kod). W jaki sposób można następnie użyć:źródło
Miałem ten sam problem, ale zrozumiałem:
Shell("filehere" & "parametersforbatchfilehere", vbHidden)
źródło
Zacząłem próbować to rozgryźć i tak naprawdę nigdy mi się nie udało. To było tak blisko, jak to możliwe:
źródło
Musiałem ukryć okno dla pliku wsadowego wywoływanego z menu kontekstowego eksploratora, a także potrzebowałem dodać cudzysłowy do parametru. Żadna z odpowiedzi nie zadziałała dla mnie, więc dodaję własne rozwiązanie.
Miałem to w „poleceniu” rejestru dla menu kontekstowego eksploratora:
Aby go wymienić, musiałem utworzyć VBS w następujący sposób:
Zapisz w takim miejscu
C:\mypath\myscript.vbs
i nazwij to w rejestrze:Zauważ, że ścieżka .bat nie może zawierać spacji, więc zastąp ją nazwą pliku 8.3. Na przykład
C:\Program Files\myprogram.bat
należy określić jakoC:\Progra~1\myprogram.bat
. Aby zobaczyć użycie nazwy pliku 8.3dir /x
źródło
Zostałem utworzony RunApp, aby wykonać takie zadanie, a także używać go w środowisku produkcyjnym, mam nadzieję, że to pomoże.
Konfiguracja jak poniżej:
plik: config.arg
I
runapp.exe
zamiast tego uruchom .źródło
Działa to w systemie Windows 8 (ewentualnie innych)
kliknij Zastosuj
Kliknij skrót, a uruchomi się, ale go nie zobaczysz :)
źródło