2011-07-15 58 views
10

Lệnh bắt đầu có thể khởi chạy một ứng dụng như notepad trong một tập tin thực thi như thế này:Đóng một ứng dụng đang chạy từ dòng lệnh DOS

start notepad 
start "my love.mp3" 

Nhưng làm thế nào để đóng ứng dụng đang chạy từ dòng lệnh? Tôi tìm thấy taskkill trong các tìm kiếm của mình nhưng tôi không nghĩ đó là lệnh đúng bởi vì nó không hoạt động — nó nói không có tệp như vậy.

Làm cách nào để đóng ứng dụng được khởi chạy với start?

+0

Niko bạn đang chạy phiên bản Windows nào? – ErikE

Trả lời

4

Taskkill là chính xác. Nhưng bạn phải giết quá trình chơi tập tin, chứ không phải tập tin. Việc tìm ra trình xử lý đã đăng ký cho các tệp mp3 từ một dấu nhắc lệnh sẽ hơi phức tạp một chút.

Nếu bạn biết điều đó thì bạn có thể giết quá trình đó.

Dưới đây là một kịch bản mà số liệu ra các ứng dụng đã đăng ký cho các tập tin mp3 và giết chết các nhiệm vụ:

@echo off 
if not .%1==. goto show 

:createtemp 
set tempfile="%temp%\temp-%random%-%time:~6,5%.bat" 
if exist %tempfile% goto :createtemp 

reg query HKEY_CLASSES_ROOT\mp3file\shell\play\command\ > %tempfile% 

for /F "skip=4 delims=> tokens=2 usebackq" %%e in (`type %tempfile%`) do call %0 %%e 

del %tempfile% > nul 
set tempfile= 
set handler= 
set teststring= 
set offset= 
set cmd= 
goto end 

:show 
set handler=%2 
set handler=%handler:~1,-1% 
set /A offset=-1 

:loop 
set cmd=set teststring=%%handler:~%offset%%% 
echo %cmd% > %tempfile% 
call %tempfile% 
if %teststring:~0,1%==\ goto complete 
set /A offset=offset-1 
goto loop 

:complete 
set /A offset=offset+1 
set cmd=set handler=%%handler:~%offset%%% 
echo %cmd% > %tempfile% 
call %tempfile% 
taskkill /IM %handler% > nul 

:end 

Nếu bạn lưu này như killmp3.bat hoặc một cái gì đó, bạn có thể gọi nó khi bạn muốn. Tất nhiên, hãy lưu ý rằng nếu chương trình đã chạy, hãy làm một cái gì đó khác, rằng nó sẽ được đóng lại.

Lưu ý rằng điều này phụ thuộc rất nhiều vào mục nhập trong sổ đăng ký để có đường dẫn thực thi bên trong dấu ngoặc kép. Nếu bạn không có điều đó và có không gian trong tên thực thi, nó sẽ thất bại.

Bạn có thể khái quát kỹ thuật của tôi để có thể vượt qua trong phần mở rộng tập tin (ví dụ như .mp3, mà bạn có thể tìm kiếm trong registry để tìm ra tên lớp mp3file và sau đó tìm handler từ đó.

Một giải pháp chung chung hơn lấy tên của tệp mà bạn đã bắt đầu và tìm ra phần mở rộng từ đó về mặt lý thuyết có thể nhưng rất khó khăn hơn trong trường hợp của notepad bạn phải tìm ra điều đó bằng cách tìm kiếm đường dẫn cho tất cả các tệp thi hành, v.v.

Điều này có thể đơn giản hơn nếu bạn đã tạo tệp mp3 cực ngắn mà bạn có thể bắt đầu. ding trên chương trình, nó có thể ngừng chơi các tập tin hiện tại và chuyển sang một tập tin mới, mà sẽ kết thúc gần như ngay lập tức và có hiệu quả ngừng phát lại.

+0

Cảm ơn bạn.Nhưng làm thế nào để tôi tìm ra Bạn có thể cho tôi bất kỳ tập tin thực thi mẫu nào không hoạt động? – niko

+0

xin vui lòng cho tôi biết làm thế nào để giết một ứng dụng nói một notepad bằng cách sử dụng taskkill.Làm thế nào để tôi tìm thấy một xử lý đăng ký? Bất kỳ lệnh nào để làm điều đó – niko

+0

@Niko xem chỉnh sửa – ErikE

16

Nhập taskkill /? cho cú pháp và một số ví dụ. Những gì bạn muốn làm là vượt qua đối số /IM bằng cách sử dụng tên chương trình bạn muốn giết. Ví dụ:

TASKKILL /F /IM notepad.exe 

sẽ giết notepad.exe.

TASKKILL /F /IM note* 

sẽ giết tất cả các quá trình bắt đầu bằng "ghi chú".

Các vấn đề liên quan