Plik wsadowy nie zostanie zamknięty po uruchomieniu (gdy pojawi się więcej niż jeden spawn)

0

Ten plik wsadowy (jakikolwiek inny) nie zostanie zamknięty po uruchomieniu, gdy odrodzi się więcej niż jeden.

Jestem doświadczonym programistą MS-DOS / Windows / Java i nigdy wcześniej nie widziałem takiego zachowania. Dzieje się coś bardzo dziwnego i doceniłbym obejście lub kilka wskazówek.

Jako przykład stworzyłem prosty skrypt testowy nietoperza o nazwie hung.bat Pracuję na komputerze z systemem Windows 8.1 (32-bitowym) z wiersza polecenia lub klikając plik:

@ECHO OFF
ECHO WELCOME TO HUNG
pause
ECHO HANGING UP
EXIT (**does not matter if this line is blank or EXIT or GOTO:EOF **)

Wchodzę do każdego terminala i naciskam klawisz, aby kontynuować. Potem wszyscy mówią „WIESZANIE”.

Nie zamkną się i nie zakończą po zakończeniu, jeśli otworzyłem więcej niż jeden. Dzieje się tak, gdy korzystam z polecenia „start hung.bat” z wiersza polecenia lub klikając plik wsadowy.

Zrobiłem ten prosty plik wsadowy, aby debugować problem z usługą serwera, który również mamy - serwer sieciowy używa pliku wsadowego, aby uzyskać pewne dane, a gdy ma wiele sesji, również przestają działać i nie kończą się.

Wydaje się, że dzieje się to niezależnie od pliku Jeśli utworzę dwie kopie pliku hung1.bat i hung2.bat i kliknę raz na każdym z nich, nastąpi takie samo zachowanie!

Inne zachowanie na komputerze domowym Skrypt wsadowy działa na moim domowym komputerze z systemem Windows (Windows 8.1 32-bit), ale nie na moim komputerze roboczym (także Windows 8.1 32-bit, instalacja nowej licencji Windows 8.1). Ale nadal nie działa na moim komputerze roboczym, nawet jeśli jestem administratorem i działam jako administrator.

Wyłączyłem nawet pliki w tym katalogu z Windows Defender.

Jeszcze dziwniejszy Kiedy otworzę dwa lub więcej okien poleceń (polecenie lub kliknij trzy razy), to ostatnie będzie działało poprawnie i zamykało się zgodnie z oczekiwaniami. Ale jeśli kliknę pierwsze okno (tzn. Ostatnie traci fokus), a następnie wrócę do ostatniego, to również nie działa poprawnie!

KONFIGURACJA Mój komputer domowy to Windows 8.1 32-bit, na procesorze AMD Phenom II x4, z 3 GB pamięci RAM. Mój komputer to 32-bitowy system Windows 8.1 z procesorem INter Core-i5-4570, z ramą 4,00 GB (3,32 użyteczne). Oba komputery używają tylko Windows Defender. Dzieje się tak nawet wtedy, gdy Defender jest wyłączony, a funkcja DEP jest włączona lub wyłączona.

AKTUALIZACJA Przeskanowaliśmy system za pomocą MalwareBytes, a także sprawdziliśmy integralność plików w systemie Windows. Wszystko sprawdzone jak poprzednio i problem nadal występuje.

Koordynator
źródło
Naprawdę nie widzę żadnego powodu, dla którego miałby nie wyjść. Nawet jeśli EXITpod poleceniem znajduje się polecenie ECHO HANGING UP(które, jak powiedziałeś, zostanie wykonane), wydaje się, że powinno ono zakończyć się.
joeeey,
Działa dobrze, gdy mieszkam na moim komputerze domowym, ale nie, gdy jestem w komputerze roboczym za pomocą logmein :( Ale wydaje się, że usługa na komputerze roboczym ma ten sam problem. Nie mam pojęcia ...
Koordynator
Moja odpowiedź oparta na wyłączeniu rozszerzeń poleceń GOTOnie rozpozna już :EOF faktu usunięcia etykiety . Uznany za bezużyteczny przez OP.
JosefZ
Dzięki. Doceniam pomoc. Wszelkie opinie i sugestie są zawsze mile widziane!
Koordynator

Odpowiedzi:

1

To był LogMeIn ...

Gdy zdalny użytkownik jest podłączony, zmienia zachowanie okna powłoki poleceń, aby nie zamykało się po zakończeniu skryptu - nawet jeśli skrypt jest wywoływany ze skrótu lub wywoływany w osobnym oknie za pomocą „start ... „

Odkryliśmy, że odłączyłem zdalnego użytkownika, a następnie wykonałem te same skrypty wsadowe i problem został rozwiązany.

ShowMyPc działało jednak dobrze. Nie testowaliśmy zdalnego komputera z systemem Windows.

LogMeIn jest więc winowajcą ...

Koordynator
źródło
1
To naprawdę mi pomogło - oderwałem włosy, próbując dowiedzieć się, dlaczego plik wsadowy nie wychodził. Ja również byłem zalogowany zdalnie przez LogMeIn. Problem nie istnieje w TeamViewer
Joe