Mam 64-bitową maszynę wirtualną Server 2012 R2 Standard, która działa dziwnie. Pliki nietoperzy działają dobrze, a okno CMD zamyka się normalnie; ale jeśli folder zawierający plik nietoperza zostanie zamknięty podczas wykonywania pliku nietoperza, zakończy się, ale okno CMD nie zostanie zamknięte. Upraszczam to do tego stopnia, że mam najprostszy możliwy plik nietoperzy. Zawiera 1 linię. pauza
- Otwórz folder zawierający plik nietoperza za pomocą Eksploratora Windows
- Uruchom plik nietoperza, klikając go dwukrotnie
- Zamknij okno Eksploratora Windows
- Naciśnij dowolny klawisz w oknie CMD
- Kursor przechodzi do następnego wiersza po zakończeniu pliku nietoperza
- Okno CMD pozostaje
Dzieje się tak tylko na jednym komputerze. Czy ktoś wie, dlaczego tak się dzieje? Jest to testowa maszyna wirtualna i być może powinna zostać przebudowana, ale mnie ciekawi. Dzięki
Mój prosty plik nietoperza zastąpiłem plikiem zawierającym:
@assoc .bat
@for /F "tokens=1,* delims==" %%G in ('assoc .bat') do @ftype %%H
@reg query "HKLM\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@reg query "HKCU\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@echo please close Windows Explorer before continuing
@pause
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId, ProcessID
@pause
Wyniki pokazano poniżej:
.bat=batfile
batfile="%1" %*
CommandLine ParentProcessId ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" " 1608 8460
please close Windows Explorer before continuing
Press any key to continue . . .
CommandLine ParentProcessId ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" " 1608 8460
Press any key to continue . . .
Wiersz poleceń
13.04.2016 Dowiedziałem się nieco więcej, patrząc na Menedżera zadań. Po uruchomieniu pliku nietoperza w oknie Menedżer zadań - okno szczegółów pojawiają się 2 wiersze ... 1 dla cmd.exe i 1 dla conhost.exe. Po zakończeniu nietoperza cmd.exe znika, ale plik conhost.exe pozostaje. Inną rzeczą, którą zauważyłem, jest to, że tak naprawdę nie musisz wychodzić z folderu Eksploratora Windows, jak już wcześniej powiedziałem ... wystarczy, że klikniesz gdziekolwiek w oknie Eksploratora. Jeśli nie kliknę nigdzie w oknie Eksploratora, okno CMD pliku nietoperza zamyka się normalnie, a oba zadania znikają z okna szczegółów, jak można by się spodziewać.
źródło
exit
poleceniu zamknięcia okna CMD. Może to pomóc.Odpowiedzi:
Jest to mało prawdopodobne, ale wydaje się, że wykluczyłeś wszystkie prawdopodobne rzeczy. Sprawdź następujące dwa wpisy rejestru, aby zobaczyć, czy coś zawierają:
lub
Wszystko tam będzie wywoływane za każdym razem, gdy uruchomisz plik wsadowy i jeśli tak jest
cmd /k
, spowoduje to takie zachowanie.źródło
Próbowałeś tego?
Te same rzeczy, ale pozwalają na to samo co pauza i same wychodzą.
Ponadto, dlaczego umieszczasz @ przed wszystkim? Dlaczego nie użyć @echo przed pozostałymi poleceniami?
źródło