Tôi có một máy ảo 64 bit tiêu chuẩn Server 2012 R2 đang hoạt động kỳ lạ. Các tập tin Bat hoạt động tốt và cửa sổ CMD đóng bình thường; nhưng nếu thư mục chứa tệp bat bị đóng trong khi thực hiện tệp bat thì nó sẽ kết thúc nhưng cửa sổ CMD không đóng. Tôi đã đơn giản hóa điều này đến mức có tập tin bat đơn giản nhất có thể. Nó chứa 1 dòng. tạm ngừng
- Mở thư mục chứa tệp bat với Windows Explorer
- Bắt đầu tập tin bat bằng cách nhấp đúp vào nó
- Đóng cửa sổ Windows Explorer
- Nhấn phím bất kỳ trong cửa sổ CMD
- Con trỏ di chuyển đến dòng tiếp theo khi tập tin bat kết thúc
- Cửa sổ CMD vẫn còn
Điều này chỉ xảy ra trên một máy. Có ai biết tại sao điều này có thể được? Nó là một VM thử nghiệm và có lẽ chỉ nên được xây dựng lại, nhưng nó khiến tôi tò mò. Cảm ơn
Tôi đã thay thế tập tin bat đơn giản của mình bằng một tập tin có chứa như sau:
@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
Kết quả được hiển thị dưới đây:
.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 . . .
Dòng lệnh
13/03/2016 Tôi đã tìm hiểu thêm một chút bằng cách xem Trình quản lý tác vụ trong khi thực hiện việc này. Khi tôi khởi động tập tin bat, 2 dòng xuất hiện trong Trình quản lý tác vụ - Cửa sổ chi tiết ... 1 cho cmd.exe và 1 cho conhost.exe. Khi dơi kết thúc cmd.exe, nhưng conhost.exe vẫn còn. Một điều khác tôi nhận thấy là bạn không thực sự phải thoát khỏi thư mục Windows Explorer như tôi đã nói trước đây ... tất cả những gì bạn phải làm là nhấp vào bất cứ nơi nào trong cửa sổ Explorer. Nếu tôi không nhấp vào bất cứ nơi nào trong cửa sổ Explorer, cửa sổ CMD cho tệp bat sẽ đóng bình thường và cả hai tác vụ đều biến mất khỏi cửa sổ chi tiết như chúng ta mong đợi.
exit
lệnh để đóng cửa sổ CMD. Có thể điều này có thể giúp đỡ.