Powiedz, jeśli mam
- foo.exe
- bar.exe
- baz.exe
Jak uruchomić je wszystkie z pliku wsadowego asynchronicznie, tzn. Bez czekania na zatrzymanie się poprzedniego programu?
batch-file
cmd
RichN
źródło
źródło
help
uważnie przeczytać każdy wpis . :)Łącząc kilka poprzednich odpowiedzi, możesz spróbować
start /b cmd /c foo.exe
.Na przykład, jeśli chcesz wydrukować wersje java / groovy / grails / gradle, możesz to zrobić w pliku wsadowym:
Jeśli masz coś takiego jak Process Explorer (Sysinternals), zobaczysz kilka potomnych procesów cmd.exe, każdy z procesem java (zgodnie z powyższymi poleceniami). Dane wyjściowe zostaną wydrukowane na ekranie w dowolnej kolejności.
źródło
echo off
na początku, które po uruchomieniu skryptu zapobiegną odbiciu wszystkich poleceń na konsoli.@
Jest podobny, ale tylko dla tego jednego polecenia. Czasami więc zobaczysz@echo off
.Możesz użyć polecenia start, aby spawnować procesy w tle bez uruchamiania nowych okien:
start /b foo.exe
Nowy proces nie będzie przerywany za pomocą CTRL-C; możesz go zabić tylko za pomocą CTRL-BREAK (lub zamykając okno lub za pomocą Menedżera zadań).
źródło
BREAK
klawiatura?Utwórz plik wsadowy z następującymi wierszami:
Polecenie start uruchamia polecenie w nowym oknie, aby wszystkie 3 polecenia działały asynchronicznie.
źródło
Użyj polecenia START :
Jeśli ścieżka do programu zawiera spacje, pamiętaj o dodaniu cudzysłowów. W takim przypadku musisz także podać tytuł otwierającego okna konsoli
Jeśli musisz podać argumenty, dołącz je na końcu (poza cudzysłowami poleceń)
Użyj opcji / b, aby uniknąć otwierania nowego okna konsoli (ale w takim przypadku nie można przerwać aplikacji za pomocą CTRL-C
źródło
Istnieje trzecia (i potencjalnie znacznie łatwiejsza) opcja. Jeśli chcesz rozdzielić wiele wystąpień jednego programu, użycie procesora poleceń w stylu uniksowym, takiego jak Xargs lub GNU Parallel, może uczynić ten proces dość prostym.
Istnieje klon Xargs win32 o nazwie PPX2, który czyni to dość prostym.
Na przykład, jeśli chcesz transkodować katalog plików wideo, możesz uruchomić polecenie:
Po oddzieleniu tego,
dir /b *.mpg
pobiera listę plików .mpg w moim bieżącym katalogu,|
operator przesyła tę listę do ppx2, który następnie buduje serię poleceń do wykonania równoległego; 4 na raz, jak określono tutaj przez-P 4
operatora.-L 1
Operator mówi ppx2 aby wysłać tylko jedną linię naszego katalogu nieruchomość ffmpeg naraz.Następnie wystarczy napisać wiersz poleceń (
ffmpeg.exe -i "{}" -quality:v 1 "{}.mp4"
) i{}
zostanie automatycznie podstawiony dla każdego wiersza listy katalogów.Nie jest to uniwersalne zastosowanie do każdego przypadku, ale jest o wiele łatwiejsze niż użycie opisanych powyżej obejść pliku wsadowego. Oczywiście, jeśli nie masz do czynienia z listą plików, możesz również potokować zawartość pliku tekstowego lub innego programu do wejścia pxx2.
źródło
Nie mogłem dostać niczego do pracy Skończyło się na tym, że używałem programu PowerShell do uruchamiania skryptów bat .. Czasami nawet uruchomienie cmd / c nie działa, nie wiem dlaczego .. Próbowałem nawet takich rzeczy, jak uruchomienie cmd / c Notatnik i wyjście
źródło