To pytanie ma już odpowiedź tutaj:
- Uruchom plik wsadowy w całkowicie ukryty sposób 23 odpowiedzi
Czy w systemie Windows XP mogę uruchomić plik wsadowy (.bat lub .cmd) za pomocą skrótu bez „czarnego okna”?
To pytanie ma już odpowiedź tutaj:
Czy w systemie Windows XP mogę uruchomić plik wsadowy (.bat lub .cmd) za pomocą skrótu bez „czarnego okna”?
Odpowiedzi:
Zapisz następujące elementy jako wscript, na przykład hidecmd.vbs po zamianie pliku „testing.bat” na nazwę pliku wsadowego.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
Drugim parametrem oShell.Run
jest intWindowStyle
wartość wskazująca wygląd okna programu, a wartość zerowa dotyczy okna ukrytego.
Referencje znajdują się tutaj http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
.bat
plik jako administrator przy użyciu tej metody?
To tylko uproszczenie odpowiedzi Shaji. Możesz uruchomić skrypt wsadowy za pomocą skryptu VBScript (.vbs) w następujący sposób:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Spowoduje to wykonanie pliku wsadowego bez pokazanego okna poleceń.
.bat
plik jako administrator przy użyciu tej metody?
Aby rozwinąć odpowiedzi „Użyj skryptu systemu Windows” (które uważam za najlepsze, ponieważ jest już wbudowane), oto jak to zrobić, używając pojedynczego skryptu opakowania i przekazując nazwę „rzeczywistego” pliku wsadowego jako parametru. Dodatkowe parametry zostaną przekazane do pliku wsadowego.
If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
Tak np. Zapisz NoShell.vbs
gdzieś powyższy plik, a następnie wywołaj:
NoShell.vbs c:\foo\my_batch_file.bat
Wreszcie, jeśli chcesz uruchomić to z miejsca, które nie rozumie pliku .vbs (takiego jak „Narzędzia zewnętrzne” w Visual Studio), będziesz chciał wywołać C:\Windows\System32\wscript.exe
plik vbs jako pierwszy parametr, a Twój plik wsadowy jako drugi.
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
.
"C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Bez względu na to, czego szukam dla ścieżki - podwójne cudzysłowy wokół tego,% 20 zamiast miejsca lub kombinacja tych dwóch, nic nie działa. Otrzymuję komunikat o błędzie informujący, że nie można znaleźć pliku lub nic się nie dzieje. Czy jest to spowodowane błędem użytkownika po mojej stronie, ograniczeniem systemu Windows z polem docelowym dla skrótów lub problemem ze skryptem vbs, w którym nie obsługuje poprawnie ścieżek plików ze spacjami?
Możesz zmienić właściwości skrótu, aby uruchamiał się w trybie zminimalizowanym.
Aby uruchomić go całkowicie niewidocznie, potrzebujesz czegoś innego, takiego jak Windows Scripting.
Użyj opcji Rozpocznij z opcją „/ B”. Na przykład:
@echo off
start /B go.bat
start /b
po prostu uruchomi program w aktualnie przydzielonej konsoli zamiast odradzania nowej. I tak dostaniesz nowy, ponieważ partia musi działać z cmd (co z kolei [niespodzianka] otwiera konsolę).
SYSTEM
w C / C ++).
cmd /c foo.cmd
. W start
tych scenariuszach nie ma absolutnie żadnej potrzeby , i twierdzę, że system
nie należy tego używać na korzyść CreateProcess
. Uruchamiając plik wsadowy, jesteś już zależny od jednej platformy, możesz równie dobrze użyć lepszych narzędzi do tego zadania.
cmd /c
. Polecenie cmd jest tym, czego potrzebowałem w moim przypadku, ale wszystkie dotychczasowe odpowiedzi
start /b go.bat
nie przydzieli nowej konsoli (tj. instancji conhost.exe - lub wątku w csrss.exe przed Windows 7). Będzie to jednak bałagan, ponieważ skrypt wsadowy jest uruchamiany z nową instancją cmd.exe, która jest dołączona do tej samej konsoli . Oba wystąpienia powłoki będą konkurować o odczyt danych wejściowych z konsoli, zwykle naprzemiennie. Potrzebuje /w
(np. start /b /w go.bat
), Aby poczekać na drugą instancję, co jest podobne do używania, cmd /c
jeśli używa system
. Ponadto, jeśli dzwonisz CreateProcess
, uruchom go.bat
bezpośrednio. Nie ma takiej potrzeby cmd /c
.
Bezpłatne open source GPL „Utwórz ukryty proces”
http://www.commandline.co.uk/chp/
Microsoft Security Essentials i prawdopodobnie większość innych skanerów antywirusowych / złośliwych programów traktuje plik wykonywalny, chp.exe, jako wirusa, ponieważ ukrywa dowolny program przed wyświetlaniem okna lub przycisku paska zadań, tak jak robią to wirusy.
To nie jest wirus. Nie ukrywa na przykład procesu docelowego w menedżerze zadań. I oczywiście dołączony jest kod źródłowy, dzięki czemu można zobaczyć, że jest bardzo mały i nie robi nic, tylko uruchamia dowolny program, który mu dasz.
Nie musisz nawet ufać, że dołączony plik chp.exe naprawdę został zbudowany z tego źródła. Możesz odrzucić dołączony plik chp.exe i skompilować własny ze źródła, a wszystkie niezbędne do tego narzędzia są nawet darmowe i można je pobrać.
Możesz także utworzyć skrót do pliku .bat lub .cmd, a następnie kliknąć prawym przyciskiem myszy skrót, Właściwości, zakładkę Skrót, Uruchom: Zminimalizowany. Następnie w zaplanowanych zadaniach użyj bezpośrednio skrótu zamiast pliku .bat / .cmd. Zapobiegnie to wyskakiwaniu okna, ale nadal będzie wyświetlany przycisk paska zadań.
Możesz użyć skryptów okien, takich jak AutoIt .
Na przykład po prostu napisz to do edytora skryptów AutoIt. To dość proste
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Jeśli chcesz uruchomić go w pętli,
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
Skompiluj go jako .exe - i gotowe.
Podobnie w AutoHotkey :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Użyj ukrytego startu (kosztuje 20 USD)
Ukryty Start - uruchamiaj aplikacje i pliki wsadowe bez okna konsoli lub monitu UAC
Aplikacje konsolowe i pliki wsadowe są regularnie uruchamiane podczas uruchamiania systemu Windows lub zgodnie z harmonogramem. Główną niedogodnością tego jest to, że każda aplikacja otwiera okno konsoli, które migocze na ekranie. Hidden Start (lub Hstart) to lekkie narzędzie wiersza poleceń, które pozwala uruchamiać aplikacje konsoli i pliki wsadowe bez żadnego okna w tle, obsługiwać podniesienie uprawnień UAC w Windows 7 i Vista, uruchamiać wiele poleceń równolegle lub synchronicznie i wiele więcej .
Proste rozwiązanie bez użycia dodatkowych programów.
Powodzenia!